[英]Unsupported operand type error when trying to multiply function parameter by an integer
我正在嘗試制作一個簡單的 function ,它接受一個參數並將其乘以 integer 以多次返回它。 我嘗試使用如下所示的 python 3 代碼來執行此操作:
def user_input(x):
print(x)
def repeat(y):
return 5*y
repeat(user_input(input('Get input ')))
此代碼應該采用參數y
,在這種情況下, user_input
function 並將其乘以 5,因此它應該重復 5 次。 但是每當我運行程序時,我都會收到以下錯誤:
TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'
這個錯誤發生在return 5*y
中,我知道由於某種原因它將y
解釋為None
類型。 我如何將其解釋為適當的類型?
在編程語言中,我們使用函數來做兩件事:
他們的副作用
這包括以下內容:
它們的返回值
這是函數“返回”的值(就像數學函數一樣)。
您有一個具有副作用(打印到屏幕)但沒有返回值的 function。 如果 function 沒有顯式返回任何內容,則 python 返回值“None”。
如果您想使用第一個 function 中的值作為第二個參數,您可以執行以下操作:
def user_input(x):
return x
def repeat(x):
return x*5
print(repeat(user_input("this is some user input")))
這將打印出repeat的返回值,它接收用戶輸入的返回值,它接收一個字符串。
作為旁注,用戶輸入 function 現在什么都不做,它只是返回它傳遞的值,因此您可以執行以下操作:
def repeat(x):
return x*5
print(repeat(input(">>> ")))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.