[英]True while loop python
我一直在嘗試理解這一點,但我不明白為什么當check()
function 返回False
值並一次又一次地詢問input(ie "enter input")
時,真正的 while 循環沒有退出,但是它在func()
function 的 else 語句返回False
值時退出。 無論如何,據我所知,當返回的值為 false 時,while 循環應該停止或退出,但這里不是這種情況。 我不打算修改代碼,只是想了解這背后的概念。 請幫我。 謝謝。 提前。
def check(num):
if(num%2==0):
return True
else:
return False
def func():
temp=[str(i) for i in range(1,51)]
while True:
c=input("enter input: ")
if c in temp:
c=int(c)
if check(c):
print(c)
break
else:
print("input invalid, enter only digits from 1 to 50")
return False
這很可能是由於 func() function 中使用的 while true 循環是該 function 的本地循環,因此當您嘗試使用其他 ZC1C425268E68385D1AB5074F14Z 時,它實際上無法更改值 94D1AB5074C1 . 它只能對包含在同一個 function 中的 while 循環返回 false 或 true。
要在 function 之外退出循環(for 或 while)或在函數內退出但只退出循環,您應該使用break
而不是return
。
您擁有的空白退貨實際上並沒有做任何事情。
你將不得不break
循環。
它適用於第二種情況,因為您實際上返回了一個類似False
的值
你可以嘗試這樣做:
loop = True
def check(num):
global loop
if(num%2==0):
loop = False
else:
loop = False
def func():
global loop
temp=[str(i) for i in range(1,51)]
while loop:
c=input("enter input: ")
if c in temp:
c=int(c)
if check(c):
print(c)
loop = False
else:
print("input invalid, enter only digits from 1 to 50")
loop = False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.