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.

  • Iterate über verschachtelte Listen, Tupel und Wörterbücher
  • Wie korrigiere ich dies für Loop-Over-Tupel-Funktion in Python?
  • Wie fügt man jedem Element in einer Liste eine Ganzzahl hinzu?
  • Python Tkinter Coords Funktion nicht bewegte Leinwand Objekte innerhalb Schleife
  • Matplotlib: subplot
  • (Python) Stuck auf Skipping-Bereich Werte für die Summe einer Randzahl-Liste
  • Wie man ein multiples Teil in einem gleichen Modell in abaqus mit abaqus Skript zu erstellen
  • Faktorisierung einer Zahl in Python
  • Wie schreibe ich eine rekursive Funktion um eine Schleife zu verwenden?
  • Python Progamming Loop
  • Python: Fortsetzung der nächsten Iteration in der äußeren Schleife
  • Python ist die beste Programmiersprache der Welt.