簡體   English   中英

在while循環內使用break語句時,Python程序輸出錯誤

[英]Python program gives wrong output when use break statement inside while loop

我在while循環中使用break語句從while循環退出。 但是它給出了錯誤的輸出。 我不知道為什么會這樣。 這是我使用的代碼:

def func():
    print "You have entered yes"
t='yes' or 'Y' or 'y' or 'Yes' or 'YES'
while True:
    r=raw_input("Enter any number:")
    if t=='r':
        func()
    else:
        break
print "Program End"   

更新:

當我說“ 是”時,它應該給出:
您輸入了yes ,但是控制進入了break語句。 為什么?

您不應在代碼中使用t = 'y' or 'Y' ... ,因為當您使用or它會檢查有效性。 試試這個代碼,我很確定它會起作用。

 def func():
     print "You have entered yes"
 t=('yes', 'Y', 'y', 'Yes', 'YES')
 while True:
     r=raw_input("Enter any number:")
     if r in t:
         func()
     else:
         break
 print "Program End"   

更改

if t=='r':

if t==r:

那是你要的嗎?

首先,您要檢查t是否等於字符串文字'r'而不是變量r ,因此從理論上講, if t==r需要的是

但是,這不起作用。 您正在尋找的是一個列表,如下所示:

def func():
    print "You have entered yes"
t= ['yes','Y','y','Yes','YES']
while True:
    r=raw_input("Enter any number:")
    if r in t:
        func()
    else:
        break
print "Program End" 

當執行t =='r'時,您將變量與字符串 r(僅此一個字符)進行比較,而不是與r變量進行比較。

暫無
暫無

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

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