2017-02-07 7 views
0

whileループからwhileループでbreak文を使用しています。しかし、それは間違った出力を与えます。なぜこれが起こるのか分かりません。ここで私が使用しているコードは次のとおりです。whileループ内でbreak文を使用すると、Pythonプログラムが間違った出力を返します

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" 

アップデート:私は入れ

はい、それは与えるべきである:
を[はいを入力しましたが、コントロールがに行きます休憩声明。どうして?

if t==r: 

答えて

1

。このコードを試してみて、それがうまくいくと確信しています。

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" 
+0

@ZKありがとうございます。それは中心的に働く。 – Primo

+0

Stack Overflowでtxtspeakを使用しないでください。 –

+0

@primoあなたの歓迎 –

0

変更

if t=='r': 

は何をしたいということですか? tが変数r'r'リテラルではなく、文字列に等しい場合はif t==r

であるあなたが欲しいものを理論的になるよう

+1

私はそれを変更しましたが、それでも間違った出力を与えます – Primo

0

まず、あなたがチェックしている、これは動作しません。あなたが探しているのは、次のようなリストである:あなたがorを使用する場合、それは妥当性をチェックするためにあなたのコード内でt = 'y' or 'Y' ...を使うべきではありません

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" 
-1

トン== 'R' あなたは文字列 R(これだけ正確に1文字)に、いないR変数に変数を比較しているを実行します。

関連する問題