Wenn sonst statement nicht nach dem elif korrekt folgt [duplizieren]

Diese Frage hat hier schon eine Antwort:

  • Wie teste ich eine Variable gegen mehrere Werte? 16 antworten

Ich erhielt die Aufgabe, ein Programm zu machen, das Benutzereingaben (eine Temperatur) nimmt und wenn die Temperatur Celsius in Fahrenheit umgewandelt wird und umgekehrt.

Das Problem ist, dass, wenn Sie etwas wie 35 eingeben: C das Programm nutzt die if myscale == "F" anstelle der elif myscale == "C", obwohl myscale ist C mein Code:

mytemp = 0.0 while mytemp != "quit": info = raw_input("Please enter a temperature and a scale. For example - 75:F " \ "for 75 degrees farenheit or 63:C for 63 degrees celcius "\ "celcious. ").split(":") mytemp = info[0] myscale = str(info[1]) if mytemp == "quit": "You have entered quit: " else: mytemp = float(mytemp) scale = myscale if myscale == "f" or "F": newtemp = round((5.0/9.0*(mytemp-32)),3) print "\n",mytemp,"degrees in farenheit is equal to",newtemp,"degrees in celcius. \n" elif: myscale == "c" or "C": newtemp = 9.0/5.0*mytemp+32 print "\n",mytemp,"degrees in celcius is equal to",newtemp,"degrees in farenheit. \n" else: print "There seems to have been an error; remember to place a colon (:) between "\ "The degrees and the letter representing the scale enter code here. " raw_input("Press enter to exit") 

2 Solutions collect form web for “Wenn sonst statement nicht nach dem elif korrekt folgt [duplizieren]”

Folgende:

  if myscale == "f" or "F": 

sollte lesen:

  if myscale == "f" or myscale == "F": 

oder

  if myscale in ("f", "F"): 

Oder (wenn Ihr Python ist neu genug, um Set Literale zu unterstützen):

  if myscale in {"f", "F"}: 

Das gleiche gilt für

  elif: myscale == "c" or "C": 

Auch gibt es einen elif nach dem elif .

Was hast du jetzt syntaktisch gültig, aber tut etwas anderes als was beabsichtigt ist.

Hier ist dein Problem:

 elif: myscale == "c" or "C": 

Beachten Sie die : nach dem elif

Sie sollten auch verwenden, wie von den anderen Antworten erwähnt.

  • Überprüfen Sie mehrere für Elemente in einer für Schleife Python
  • Wie korrigiere ich dies für Loop-Over-Tupel-Funktion in Python?
  • Python In-Between Dice Game Loops
  • Wie schreibe ich eine rekursive Funktion um eine Schleife zu verwenden?
  • Abflachen einer sehr verschachtelten Schleife
  • Tkinter verwaltet meine Event-Loops neben meinem mainloop
  • Für Loop iterate über Potenzen von 2
  • Raw_input und timeout [duplizieren]
  • (Python) Stuck auf Skipping-Bereich Werte für die Summe einer Randzahl-Liste
  • Python finden das Minimum für Loops? [abgeschlossen]
  • Programm, um die n-ten Primzahl zu finden
  • Python ist die beste Programmiersprache der Welt.