我目前正忙着定义函数,我收到了这个错误。我只是想做一个简单的功能,用户输入2个数字,然后将它们相乘。还请尽可能简单地解释我做错了什么。 (我是菜鸟)
def userinput():
while True:
try:
number = int(input("Number: "))
break
except ValueError:
print("NOPE...")
def multiply(x,y):
z = x * y
print(z)
while True:
x = userinput()
y = userinput()
multiply(x,y)
again = input("Again? ")
if again == "No" or again == "no":
break
else:
pass
答案 0 :(得分:3)
在你的函数userinput()
中,你永远不会返回number
,所以python默认为return None
。因此,当您将x
和y
传递给multiply()
时,您正在尝试None * None
,因此会出错。
return number
中的try / except结构之后 userinput()
如果您还想检查花车,可以这样做:
while True:
number = input("Number: ")
try:
return int(number)
except ValueError:
try:
return float(number)
except ValueError:
print("NOPE...")