2

我目前只是在玩弄定义函数,我收到了这个错误。我只是想制作一个简单的功能,用户输入 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
4

1 回答 1

5

在你的函数userinput()中,你永远不会返回number,所以 python 默认为return None. 因此,当您通过xandymultiply(),您正在尝试做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...")
于 2013-09-15T07:11:31.297 回答