2017-01-15 4 views
-3

Mit diesem Code versuche ich einfache Multiplikationstabellen zu generieren. Das Programm sollte nach einer Eingabe und einem Vielfachen dieser Zahl in einem Bereich bis zu 15 fragen und die Multiplikationstabelle für die Zahl erzeugen. Nach dem if_name_ == 'Haupt': Zeile habe ich nach dem Doppelpunkt mit einem Syntaxfehler enden. Ich programmiere normalerweise in Python 2, also ist Python 3 ein bisschen neu für mich, aber ich bin mir nicht sicher, was der Unterschied ist. Im Folgenden habe ich den kurzen aber vollständigen Code aufgeführt. Jede Hilfe würde sehr geschätzt werden.Python 3 Syntaxfehler ungültige Syntax

'''Multiplication Table''' 

def multi_table(a): 
    for i in range(1,16): 
     print(' {0} x {1} = {2} '.format(a, i, a*i)) 



if_name_ == '_main_': 
    a = input('Enter a number: ') 
    multi_table(float(a)) 
+3

'if_name_'? Meintest du "if __name__ ==" __main __ "'? – Maroun

+0

Nun ja, aber ich bekomme den Fehler direkt nach dem Doppelpunkt. – Bbrown

+1

Sie erhalten den Fehler am Doppelpunkt, weil Sie keine ordnungsgemäße 'if'-Anweisung haben. Ihre Syntax ist falsch, daher der Fehler * syntax *. – excaza

Antwort

0

Wie @ Maroun Maroun sagte, muss es if __name__ == "__main__" sein. Aber du wirst es nicht brauchen. Schreiben Sie es einfach an der Unterseite:

'''Multiplication Table''' 

def multi_table(a): 
    for i in range(1,16): 
     print(' {0} x {1} = {2} '.format(a, i, a*i)) 

a = input('Enter a number: ') 
multi_table(float(a)) 

Sollte funktionieren, auch.

EDIT: In den offiziellen Dokumente:

https://docs.python.org/3/library/main.html

if __name__ == "__main__":

+0

Der Nachteil davon ist, dass, wenn Sie später die 'multi_table' Funktion für den Einsatz irgendwo 'importieren' wollen, wird es bei der Eingabe blockieren. Siehe z.B. [* "Was bedeutet' if __name__ == "__main __": 'do?"] (Http://stackoverflow.com/q/419163/3001761). – jonrsharpe

+0

Das ist wahr, @jonrsharpe, aber wenn es eine Bibliothek sein sollte, hätte er es nicht in die gleiche Datei wie die Eingabe gesetzt – user7185318

+0

Also funktionierte es gut ohne diese Zeile, aber selbst wenn ich die Zeile änderte um zwei Unterstriche zu haben Ich hatte immer noch einen Syntaxfehler. Ich versuche zu verstehen, warum. – Bbrown

3
if_name_ == '_main_': 
    a = input('Enter a number: ') 
    multi_table(float(a)) 

sollte sein:

if __name__ == "__main__": 
    a = input('Enter a number: ') 
    multi_table(float(a)) 

Beachten Sie, dass sowohl variable __name__ und __main__ um sie herum zwei Unterstrichen hat und dass es einen Raum zwischen dem if Schlüsselwort und der Beginn der Erkrankung sein.

+0

'== '__main __':' - Notiz # von Unterstrichen – jonrsharpe

+0

Ja, ich habe noch meine Antwort bearbeitet. – Inconnu

+0

* beide Variable '__name__' und' __main__' * Ich bezweifle, dass '__main__' eine Variable ist. – iBug