2016-08-15 3 views
-2
mark = raw_input 

if mark < 50: 
    print "your mark is unsatisfactory!" 

else: 
    print "your mark is satisfactory!" 

Ich möchte etwas erstellen, das eine Antwort gibt, abhängig davon, welche Nummer der Benutzer eingibt. Wenn ich jedoch den Code ausführe, wird nur angezeigt, dass Ihre Marke befriedigend ist! und ich kann nicht herausfinden, warum ich nicht eine Nummer eingeben darf.Warum ignoriert Python meine anderen Codezeilen?

+2

Sie müssen tatsächlich 'raw_input' aufrufen, wie' raw_input() '. Im Moment erstellen Sie nur einen Verweis auf die Funktion. –

+0

Kurze Antwort ist, dass 'raw_input()' (beachten Sie die Klammern!) Eine * Zeichenfolge * keine Ganzzahl zurückgibt. Das ist ein Duplikat, obwohl ich das Ziel nicht finden kann – Ajean

Antwort

0

Sie müssen raw_input anrufen. Im Moment nehmen Sie nur den Wert der Funktion, die immer True ist (weil für Python Funktionen truthy sind). Fügen Sie einige Klammern hinzu, um es raw_input() zu machen, um die Funktion tatsächlich aufzurufen. Auch wollen Sie int(raw_input()) aufrufen, um eine ganze Zahl aus der Zeichenfolge zu erhalten.

0

Anruf raw_input, wie

mark = int(raw_input("enter something")) 

if mark < 50: 
    print "your mark is unsatisfactory!" 
else: 
    print "your mark is satisfactory!" 

Notiere die Umwandlung in int, da raw_input einen String zurückgibt.

Im Moment alles, was Sie tun, ist die Schaffung eine weitere Variable, die raw_input auf die Funktion bezieht und es gegen 50

0

zu vergleichen ist, weil Sie nicht die Funktion aufrufen kann.

Sie zu tun haben:

answer = raw_input('your question') 

Auch der Typ des answerstr ist. Denn es sieht aus wie Sie es mit Nummer vergleichen wollen, müssen Sie in eine Zahl umwandeln:

answer = int(answer) # if you want an int 
answer = float(answer) # if you want a float 

Hinweis:

indem

mark = raw_input 

mark ist jetzt gleich der Funktion, hexe bedeutet, dass, wenn Sie mark('...') tun, würde es die gleiche Sache tun als raw_input('...')

Verwandte Themen