Выбор Тамагочи | Python 3.0 | Начинающим - PullRequest
0 голосов
/ 11 сентября 2018

Ну, я пытаюсь сделать первоначальный выбор тамагочи (игнорировать имена, просто тестирование), но у меня ничего не получается.

Когда я набираю 2 или 3 или любое другое имя, кроме Rattatouie, я получаю: «Rattatouie é o seu novo Tamagochi!».На английском языке это будет "Rattatouie ваш новый тамагочи!"(Я бразилец)

def pick_tamagochi():
    print('*'*20,"Tamagochi 2018",20*'*')
    print('1 - Rattatouie')
    print('2 - Rabbitack')
    print('3 - Sonic Hedgehog')
    TamagochiSelect = input('>>> Escolha seu Tamagochi:')

    if TamagochiSelect == '1' or 'Rattatouie':
        TamagochiSelect = 'Rattaouie'
        print('Rattatouie é o seu novo Tamagochi!')
    elif TamagochiSelect == '2' or 'Rabbitack':
        TamagochiSelect = 'Rabbitack'
        print('Rabbitack é o seu novo Tamagochi! ')
    elif TamagochiSelect == '3' or 'Sonic Hedgehog':
        TamagochiSelect = 'Sonic'
        print('Sonic é o seu novo Tamagochi!')
    else: 
        print('Nome não compatível')

print(pick_tamagochi())

Кто-нибудь знает, как я могу это решить?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Ваше условие должно быть записано как:

if TamagochiSelect == '1' or TamagochiSelect == 'Rattatouie':

В противном случае Python интерпретирует его как (if TamagochiSelect == '1') or (TamagochiSelect), а непустые строки оцениваются как True (вы можете проверить это, набрав bool('some string') и bool(''))

0 голосов
/ 11 сентября 2018

проблема в том, что ваш логический оператор (ИЛИ) не помещен правильно, он проверяет слева и видит

TamagochiSelect == '1'

, это возвращает False, но справа он видит

'Rattatouie'

что всегда верно.Решение будет

if TamagochiSelect == '1' or TamagochiSelect == 'Rattatouie':
0 голосов
/ 11 сентября 2018

Вы должны использовать оператор in для проверки нескольких значений:

if TamagochiSelect in ('1', 'Rattatouie'):

В противном случае TamagochiSelect == '1' or 'Rattatouie' просто означает, что TamagochiSelect равно '1' или 'Rattatouie'равно True, что 'Rattatouie' всегда (потому что это непустая строка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...