我是 phyton 的初學者,我正在嘗試創建一個函式,如果偶數是真還是假,它會指示是真還是假。
這個函式已經在作業了,但現在我試圖通過輸入函式給定一個值來傳遞函式。
這是我的代碼:
def isprime (value):
value=int(input("Enter a number: "))
if value < 2:
return False
else:
for count in range (2, value):
if value % count == 0:
return False
return True
isprime ()
當我運行 isprime () 時,我收到以下錯誤訊息
型別錯誤:isprime() 缺少 1 個必需的位置引數:“值”
請注意,如果我不輸入輸入部分并且我運行 isprime (3) 之類的函式,我的輸出為 TRUE。
你能幫我讓我知道我做錯了什么嗎?
uj5u.com熱心網友回復:
您只需要使用引數int(input("Enter a number: "))呼叫該函式,因此您的代碼可能是:
def isprime(value):
if value < 2:
return False
else:
for count in range (2, value):
if value % count == 0:
return False
return True
isprime(int(input("Enter a number: ")))
uj5u.com熱心網友回復:
這里的問題是您需要傳遞值才能使代碼正常作業。但是,您正在函式內部進行輸入。因此,您需要在函式之外進行輸入。
value = int(input("Enter a number: "))
isprime(value)
uj5u.com熱心網友回復:
你的函式需要一個引數,但你不給它。嘗試這個:
def isprime (value):
if value < 2:
return False
else:
for count in range (2, value):
if value % count == 0:
return False
return True
value = int(input("Enter a number: "))
isprime (value)
uj5u.com熱心網友回復:
似乎您正在定義函式所需的輸入,但使用來自標準輸入的輸入覆寫它。那么你想使用函式的輸入還是丟棄它?如果您想保留函式的輸入可選,請嘗試
def isprime (value = None):
if value is None:
value=int(input("Enter a number: "))
if value < 2:
return False
else:
for count in range (2, value):
if value % count == 0:
return False
return True
“無”類似于 python 中的“空”值。Python 中的 NoneType 是一種資料型別,僅顯示物件沒有值/值為 None。通過設定value = None,您允許可選輸入。
在這種情況下,如果你執行isprime()它會要求用戶輸入,因為 value = None。如果你執行isprime(some_integer)它將使用 value = some_integer。
順便說一句,如果你想檢查一個數字是否是素數,有一種更優雅的方法可以使用recursion。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/519548.html
標籤:Python功能输入
上一篇:Java 資料型別
