input() 总是产生“无”

Sam*_*uel 1 python python-3.x

每当我运行我创建的评分程序时,它都能正常工作,但文本“无”一直显示,我不知道为什么。这是代码:

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
Run Code Online (Sandbox Code Playgroud)

use*_*559 6

这一行:

Grade_in=input(print("Enter Your Grade (Only Upper Case):"))
Run Code Online (Sandbox Code Playgroud)

应该:

Grade_in=input("Enter Your Grade (Only Upper Case):")
Run Code Online (Sandbox Code Playgroud)

您的原始代码等效于:

ret = print("Enter Your Grade (Only Upper Case):")
Grade_in = input(ret)
Run Code Online (Sandbox Code Playgroud)

print总回报率None,那么retNone,让您的来电input打印出来None

您根本不需要print,因为input已经打印出您传递给它的内容。