簡體   English   中英

為什么我不能突圍?

[英]Why Can't I break out of the loop?

Python初學者在這里。 抱歉,這是基本的python概念

over = False

def run():
    user_input = input("Over? (y/n): ")
    if(user_input == 'y'):
        over = True

while not over:
    run()

盡管輸入為“ y”,循環不會停止。

您需要編寫global over ,因此函數run()將更改全局變量

over = False

def run():
    global over
    user_input = input("Over? (y/n): ")
    if(user_input == 'y'):
        over = True

while not over:
    run()

您不應該在這里使用全局變量。 返回一個布爾值,並調用run作為循環的條件。 (此時,您可能還需要重新考慮run名稱。)

def run():
    user_input = input("Over? (y/n)")
    return user_input == 'y'

while run():
    ...

要設置局部變量over函數內部run()但你不能傳遞出來,從它被調用的范圍。 而是將值返回到調用范圍,如下所示:

over = False

def run():
    user_input = input("Over? (y/n): ")
    if(user_input == 'y'):
        over = True
    else:
        over = False
    return over

while not over:
    over = run()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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