每当我运行我创建的评分程序时,它工作正常,但文本“无”一直显示,我不知道为什么。这是代码:
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
答案 0 :(得分:4)
这一行:
Grade_in=input(print("Enter Your Grade (Only Upper Case):"))
应该是:
Grade_in=input("Enter Your Grade (Only Upper Case):")
您的原始代码与此相同:
ret = print("Enter Your Grade (Only Upper Case):")
Grade_in = input(ret)
print
始终返回None
,因此ret
为None
,因此您对input
的调用会打印出None
。
您根本不需要print
,因为input
已经打印出您传入的内容。
答案 1 :(得分:2)
查看print()
函数的返回类型:
>>> type(print())
=> <class 'NoneType'>
所以当你说
时Grade_in=input(print("Enter Your Grade (Only Upper Case):"))
input
以字符串作为参数,自动打印。因此,由于您的打印statement
首先执行,然后返回None
,然后由input
函数打印,因此您也会打印None
。
你做的额外事实是print
函数中的input
语句。只需删除它,它就可以正常工作。
Grade_in=input("Enter Your Grade (Only Upper Case):")
答案 2 :(得分:0)
我知道每个人都这么说,但是是的,您应该删除输入函数中的打印语句。删除后,您的代码应该可以工作。而且,我以前也遇到过这种情况,还有其他一些方法可以解决此类问题。
这是我的代码:
from rich import print
while True:
command = input(print("[green](CMD)[red]~$"))
每当我运行该代码时,就会发生以下情况:
(CMD)~$
None
所以我更改了代码,而不是在输入中打印,我使用了打印然后是空输入:
print("[green](CMD)[red]~$", end=" ")
command = input("")
在此之后,我的代码工作了。如果您想将颜色放入代码中,您可以这样做。这样你才能让你的代码正常工作。