我有以下代碼:的Python:爲什麼返回實際上並不返回任何東西,我可以看到
def is_prime(n):
limit = (n**0.5) + 1
q = 2
p = 1
while p != 0 and q < limit:
p = n % q
q = q + 1
if p == 0 and n != 2:
return 'false'
else:
return 'true'
但是,當我在一個整數發送,沒有什麼返回。控制檯簡單地移動到一個新的命令行。這裏有什麼問題?
編輯1: 以下是不同場景的截圖。我想這樣做,我用一個特定的號碼調用函數,函數將返回「真」或「假」,這取決於發送到函數中的數字的原始性。我想我真的不太瞭解返回功能非常好。
此外,請注意,當我送入測試9時,它會返回true,儘管9相當肯定是一個複合數字...... if/else位應該在while循環之外嗎?
關鍵下面圖像:
1:這是代碼,因爲它是上面和如何調用它在Spyder的控制檯
2:添加打印語句的函數外
3 :這是由教授
提供了一個簡單的階乘函數編輯2:
我做了一個快速改變的代碼結構。我真的不明白爲什麼,這使得它的工作,但把如果while循環外/ else語句使事情得到預期的真/假輸出
def is_prime(n):
limit = (n**0.5)+1
q=2
p=1
while p!=0 and q<limit:
p = n%q
q = q+1
if p==0 and n!=2:
return 'false'
else:
return 'true'
而且,我使用is_prime調用該函數的控制檯(int_of_choice)
感謝您的有益建議
適合初學者,修復您的縮進。然後,逐步運行,並查看每行的每個變量的值。 – njzk2
因爲您甚至需要打印返回值,即使您調用該函數。 –
我用另一個打印語句測試了你的代碼,除了'n = 1'之外,一切正常。 – albert