簡體   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