![](/img/trans.png)
[英]Python: Unsupported operand type(s) for &: 'NoneType' and 'NoneType' whilst using lambda
[英]Unsupported operand type(s) for *: 'NoneType' and 'NoneType' (Python)
我目前只是在玩弄定义函数,并且遇到了这个错误。 我只是想做一个简单的功能,用户输入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
在函数userinput()
,您永远不会返回number
,因此python默认return None
。 因此,当您将x
和y
传递给multiply()
,您尝试执行None * None
,因此会出现错误。
在userinput()
的try / except结构之后return number
如果您还想检查浮点数,则可以执行以下操作:
while True:
number = input("Number: ")
try:
return int(number)
except ValueError:
try:
return float(number)
except ValueError:
print("NOPE...")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.