*的操作数类型不受支持:';非类型';和';非类型';(Python)
我目前只是在玩弄定义函数,我得到了这个错误。我只是想做一个简单的函数,用户输入两个数字,然后将它们相乘。另外,请尽可能简单地解释我做错了什么。(我是个笨蛋)*的操作数类型不受支持:';非类型';和';非类型';(Python),python,Python,我目前只是在玩弄定义函数,我得到了这个错误。我只是想做一个简单的函数,用户输入两个数字,然后将它们相乘。另外,请尽可能简单地解释我做错了什么。(我是个笨蛋) 在函数userinput()中,您永远不会返回number,因此python默认为返回None。因此,当您将x和y传递到multiply()时,您试图执行None*None,因此出现错误 userinput()中的try/except结构之后的returnnumber 如果还要检查浮动,可以执行以下操作: while True:
在函数
userinput()
中,您永远不会返回number
,因此python默认为返回None
。因此,当您将x
和y
传递到multiply()
时,您试图执行None*None
,因此出现错误
userinput()中的try/except结构之后的returnnumber
如果还要检查浮动,可以执行以下操作:
while True:
number = input("Number: ")
try:
return int(number)
except ValueError:
try:
return float(number)
except ValueError:
print("NOPE...")
非常感谢!:)@不客气!别忘了!或者更好的是,不要费心创建number
变量。只需返回int(输入(“数字”)
。那么,就不需要中断符了。@Haidro还有,我该怎么做才能让他们输入一个十进制数呢?当我现在运行代码时,每次我输入一个小数点,它都不接受它并停留在循环中。@Suds2在except:
中,您可以执行另一个try/except
结构:。我会编辑我的答案,你可以再次执行如果。lower()==“no”:
并捕获所有类型的“no”,包括“no”和“no”。此外,所有这些代码都在一个函数中吗?否则,上一个if
块中的中断
。
while True:
number = input("Number: ")
try:
return int(number)
except ValueError:
try:
return float(number)
except ValueError:
print("NOPE...")