2016-06-10 3 views
-2

mit einem Projekt in der Schule Brauchen Sie Hilfe, wo ich auf die folgenden Codezeilen eine Vertiefung Störung erhalte:Ich halte die gleiche Vertiefung Fehler immer nach Neuanordnung Code mehrfach

     #First question 
while numberofquestions <10: 
    operations = ['x', '-', '+'] 
    operation = random.choice(operations) 
    number1 = random.randrange(0,10) 
    number2 = random.randrange(0,10) 
    if operation == '+': 
     answer = number1 + number2 
    elif operation == '-': 
     answer = number1 - number2 
    elif operation == 'x': 
     answer = number1 * number2 
    while True: 
     try: 
       user_answer = input("What is " + str(number1) + " " + operation + " " + str(number2) + "?") 
       user_answer = float(user_answer) 
     except ValueError: 
       print("Sorry that was an incorrect input, please try again.") 
      else: 
       break 
    if user_answer == answer: 
     print("Well Done! You got it correct!") 
     score = score+1 
    else: 
     print("Sorry you got that wrong") 
    print ("***********-*-*-*-Your score so far is-*-*-*-*********** ") 
    print (score) 
    numberofquestions = numberofquestions+1 
print ("Well done, you have completed your test! Your final score was...") 
print (score) 

Die individuelle Fehler selbst ist in der Zeile:

while True: 
     try: 

Und die Fehler, die ich bekommen ist „unindent passen keine äußeren Einrückungsebene“

Hier ist ein Link mein ganzes Code enthält einhüllen es hilft: http://paste.ubuntu.com/17167322/

+0

Der Block beginnt in 'while True:' aber der Fehler ist auf die "else" -Linie, die hier und auch auf pasbin sichtbar schlecht ausgerichtet ist. Aber mein IDLE zeigte mir direkt die verletzende Linie ... –

Antwort

2

Diese Linien:

while True: 
     try: 
       user_answer = input("What is " + str(number1) + " " + operation + " " + str(number2) + "?") 
       user_answer = float(user_answer) 
     except ValueError: 
       print("Sorry that was an incorrect input, please try again.") 
      else: 
       break 

falsche Vertiefung haben.

Die beiden user_answer Linien haben eine zusätzliche Einrückung, und der Block hat elseiftry/except oder keine passenden Block.

2

Editor immer auf CONVERT TAB WHITESPACE setzen.

Nie Tab als Einrückung speichern, die meisten Parser, die sich mit dem Einzug beschäftigen, wissen nicht, wie man mit der Mischung aus Tab und Leerzeichen umgeht. Dies ist das häufigste Problem für alle neuen Entwickler, die mit Einrückungssyntax umgehen (Python, Yaml, etc)

Ich finde das Problem so schnell wie möglich, indem Sie Ihren Code in Notepad ++, schalten Sie "Zeige alle Zeichen". In den Zeilen 67 bis 74 verwenden Sie Leerzeichen als Einzug, während der Rest TAB verwendet. Hängt davon ab, Editor, die Funktion einige Aufruf als „durch Leerzeichen ersetzen Tab“, „Registerkarte Speichern als Raum“, „übersetzen Tabs zu Leerzeichen“

while True: 
    try: 
      .... 
    except ValueError: 
      print("Sorry that was an incorrect input, please try again.") 
    ###### Here is indentation error culprit, mostly due to tab/space mix. 
     else: 
      break 
Verwandte Themen