Fehler in python: ein Schwimmer ist erforderlich

Ich bin neu hier, und ich bin immer verwendet, um die Programmierung mit Python. Ich habe die Suche durch das web nach nützlichen Antworten, aber es war unmöglich, eine Lösung zu finden für mein problem.

Hier geht es:

radiation=1.3888 
n=17
LAT=51.05

def dec(n):
    if 0<n<365:
        dec=23.45*math.sin(math.radians(360*(284+n)/365))
        print(dec)
    else:
        print('the day',n,'is not valid')

def wss(LAT,dec):
    wss=math.degrees(math.acos(((math.tan(math.radians(LAT)))*math.tan(math.radians(dec)))))
    print(wss)

--- Wenn ich diesen code ausführen, dies ist, was ich erhalten:

>>> dec(n)
-20.91696257447642

>>> wss(LAT,dec)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:/Users/Gerard/Dropbox/Master Thesis Gerard Pujol/Master Thesis Work/work hourly radiation OK.py", line 25, in wss
    wss=math.degrees(math.acos(-((math.tan(math.radians(LAT)))*math.tan(math.radians(dec)))))
TypeError: a float is required

Ich weiß nicht, warum die Python gibt mir diese Art von Fehler: "ein Schwimmer ist erforderlich".

Ich habe versucht, eine Menge von änderungen, aber nutzlos gewesen. Ich hoffe, jemand hat eine Lösung für mein problem. Ich danke Ihnen sehr!

  • fixieren Sie die Formatierung des Codes
  • (Ich habe den code in code-Blöcke, aber es ist auch falsch eingerückt)
  • Es sieht aus wie Sie sind gefordert math.radians(dec); dec ist eine Funktion, kein Wert; vielleicht haben Sie gedacht, zu nennen dec(something)?
  • eine weitere mögliche Verbesserung: 360*(284+n)/365 thats int-division, sollten Sie dividieren durch 365.0 oder so, denn sonst werden Sie am Ende mit Mühe (obwohl ich denke, dass in 3.x sollte es funktionieren, aber ich gehe davon aus, dass Sie 2.x)
  • dieses Problem beheben def wss(LAT,dec(n)):
  • hast du eigentlich versucht, Ihren Vorschlag ? Ich denke nicht...
  • desthuilliers ich verpasst, dass dec(n) hat keinen Rückgabewert, ich denke, das ist auch das problem, aber die fix ich geschrieben habe, ist auch nötig.

InformationsquelleAutor gpujol | 2013-10-15
Schreibe einen Kommentar