2017-02-07 18 views
0

Я использую оператор break внутри цикла while, чтобы выйти из цикла while. Но это дает неправильный результат. Я не знаю, почему это происходит. Вот код, который я использовал:Программа Python дает неправильный вывод, когда используется оператор break внутри while loop

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" 

Update:

Когда я кладу Да он должен дать:
Вы ввели да, но управление переходит к break заявление. Зачем?

ответ

1

Вы не должны использовать 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" 
+0

@ZK спасибо. Он работает по-разному. – Primo

+0

Не используйте txtspeak для переполнения стека. –

+0

@primo приветствуется –

0

Изменить

if t=='r': 

в

if t==r: 

Это то, что вы хотите?

+1

в соответствии с u Я изменил его, но все же он дает неправильный вывод – Primo

0

Во-первых, вы проверяете, если 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" 
-1

При выполнении т == «г» вы сравниваете переменную в строки г (это точно только один символ), а не переменной г.

 Смежные вопросы

  • Нет связанных вопросов^_^