簡體   English   中英

真正的while循環python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM