2017-10-21 3 views
0

Immer wenn ich das Grading-Programm, das ich erstellt habe, laufen, funktioniert es gut, aber der Text "None" zeigt immer wieder und ich weiß nicht warum. Hier ist der Code:input() produziert immer "None"

Grade_in=input(print("Enter Your Grade (Only Upper Case):")) 
if (Grade_in=='A+') : 
    print ("Numeric Grade is 4") 
elif (Grade_in=='A'): 
    print("Numeric Grade is 4") 
elif (Grade_in=='A-'): 
    print("Numeric Grade is 4.3") 
elif (Grade_in=='B+'): 
    print ("Numeric Grade is 3.3") 
elif (Grade_in=='B'): 
    print ("Numeric Grade is 3") 
elif (Grade_in=='B-'): 
    print ("Numeric Grade is 2.7") 
elif (Grade_in=='C+'): 
    print ("Numeric Grade is 2.3") 
elif (Grade_in=='C'): 
    print ("Numeric Grade is 2") 
elif (Grade_in=='C-'): 
    print ("Numeric Grade is 1.7") 
elif (Grade_in=='D+'): 
    print ("Numeric Grade is 1.3") 
elif (Grade_in=='D'): 
    print ("Numeric Grade is 1") 
elif (Grade_in=='D-'): 
    print ("Numeric Grade is 0.7") 
elif (Grade_in=='F') : 
    print ("Numeric Grade is 0") 
else : 
    print ("Invalid Grade..!") 

OUTPUT : 
Enter Your Grade (Only Upper Case): 
NoneB- 
Numeric Grade is 2.7 
+7

Entfernen Sie die Funktion 'print' aus der 'Eingabe'-Funktion. – anupsabraham

Antwort

4

Diese Zeile:

Grade_in=input(print("Enter Your Grade (Only Upper Case):")) 

sollte sein:

Grade_in=input("Enter Your Grade (Only Upper Case):") 

Ihr Original-Code entspricht dies:

ret = print("Enter Your Grade (Only Upper Case):") 
Grade_in = input(ret) 

print immer wieder None , damit ret ist None, so dass Ihr Anruf an inputNone ausdruckt.

Sie brauchen die print überhaupt nicht, da input bereits ausdruckt, was Sie darin eingeben.

2

Werfen Sie einen Blick auf die Rückgabetyp print() Funktion:

>>> type(print()) 
=> <class 'NoneType'> 

Also, wenn Sie sagen

Grade_in=input(print("Enter Your Grade (Only Upper Case):")) 

input einen String als Argument, dies führt dann Druck automatisch. So, da Ihr Druck statement zuerst ausgeführt wird, und None zurückgibt, die dann von der input-Funktion gedruckt wird, daher haben Sie die None dort auch gedruckt.

Was Sie extra infact getan haben, war die print Anweisung innerhalb der input Funktion. Einfach entfernen, und es wird wie gewünscht funktionieren.

Grade_in=input("Enter Your Grade (Only Upper Case):") 
+0

Fügen Sie eine neue Zeile hinzu ('\ n'). –

Verwandte Themen