Вызов функции во вложенном IF в Python
Я должен взять вводимые пользователем имена птиц и проверить список bird_names.
Я попробовал следующий код:
первый вход: бабочка
выход:
2nd try fail, please do 3rd try
Со 2-й попытки
вход: попугай
выход: <
1st try fail, do 2nd try'
Код, выделенный курсивом, не работает.
Будьте добры, скажите мне, где я ошибаюсь в своей логике.
Заранее спасибо!
Что я уже пробовал:
bird_names=('crow', 'parrot', 'eagle') def bird_guess(): bird_guess1=input('Enter the bird guess :') return bird_guess1 bird_guess() if(bird_guess not in bird_names): print('1st try fail, do 2nd try') bird_guess() if(bird_guess not in bird_names): print('2nd try fail, please do 3rd try') bird_guess() if(bird_guess not in bird_names): print('Sorry, exhausted tries') else: print('corect on 3rd try') elif(bird_guess in bird_names): print('good work! correct on 2nd try') elif(bird_guess in bird_names): print('great work!, correct on 1st try itself') else: print('Not Valid')
Richard MacCutchan
Почему бы просто не использовать простой цикл, который подсчитывает количество попыток, и выйти из цикла, когда будет достигнуто максимальное количество попыток?
Кроме того, вы не фиксируете значение, возвращаемое вашей функцией.
Member 13842073
Привет Ричард,
Спасибо за ответ.
Я попытался захватить значение и все еще получаю тот же результат.
Я новичок в программировании и отстаю в некоторых концепциях.
Не могли бы вы подробнее объяснить это?
Спасибо снова
Member 13842073
Почему он обязан фиксировать возвращаемое значение функции?
Richard MacCutchan
Потому что вам нужно зафиксировать возвращаемое значение в переменной. Если вы этого не сделаете, то ценность будет выброшена. Подумайте об этом, как о том, чтобы попросить кого-то написать что-то на листе бумаги для вас. Когда они закончат, вам нужно взять бумагу, чтобы увидеть, что они написали.
Member 13842073
Круто! Большое вам спасибо за объяснение