2012-04-12 3 views
1

Ich bekomme einen Syntaxfehler in der letzten Zeile - Zeile 14. Ich kann aber nicht sehen warum, wie es scheint, eine einfache Druckanweisung zu sein.Wo ist der Syntaxfehler in diesem Python-Code?

cel = "c" 
far = "f" 
cdegrees = 0 
fdegrees = 0 
temp_system = input ("Convert to Celsius or Fahrenheit?") 
if temp_system == cel: 
    cdegrees = input ("How many degrees Fahrenheit to convert to Celsius?") 
    output = 5/9 * (fdegrees - 32) 
    print "That's " + output + " degrees Celsius!" 
elif temp_system == far: 
    fdegrees = input ("How many degrees Celsius to convert to Fahrenheit?") 
    output = (32 - 5/9)/cdegrees 
    print "That's " + output + " degrees Fahrenheit!" 
else print "I'm not following your banter old chap. Please try again." 
+5

Bitte legen Sie immer die vollständige Rückverfolgung des Fehlers. –

Antwort

8

Sie haben vergessen, den Doppelpunkt (:) nach dem letzten else.

auch:

input ("Convert to Celsius or Fahrenheit?") 

sollte

raw_input ("Convert to Celsius or Fahrenheit?") 

als input() versucht geändert werden, um die Eingabe zu bewerten, während raw_input einen 'raw' String nimmt. Wenn Sie c zum Beispiel in die input() eingeben, versucht es, den Ausdruck c so auszuwerten, als ob es Python-Code wäre, der nach einer Variablen c sucht, während raw_input einfach die Zeichenkette nimmt, ohne zu versuchen, sie auszuwerten.

Sie können auch keine Strings mit Ganzzahlen verketten (addieren), wie Sie es in diesem Fall tun, wenn output eine Zahl ist.

ändern es zu

print "That's " + str(output) + " degrees Celsius!" 

oder

print "That's %d degrees Celsius!" % output 
+0

Oh Entschuldigung gemeint 'Doppelpunkt' haha ​​ – jamylak

+0

Danke - Ich wusste nicht, das: war optional. Ich bekomme immer noch Fehler in diesem einfachen Programm. Ich möchte celsius auswählen, also gebe ich nach der ersten Eingabeaufforderung ein: c. Traceback (jüngste Aufforderung zuletzt): File "", Linie 5, in File "" Linie 1 in Nameerror: name 'c' ist nicht nicht definiert Hat definiere ich diese am Anfang? – Calydon

+0

Ich fügte diesen Teil auch hinzu. Jetzt merke ich, dass es viele andere Fehler gibt ... – jamylak