繁体   English   中英

*:'NoneType'和'NoneType'(Python)不受支持的操作数类型

[英]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 因此,当您将xy传递给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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM