玉ago选| Python 3.0 |初学者

时间:2018-09-11 15:12:39

标签: python-3.x function

好吧,我正在尝试进行初步的tamagochi选择(忽略名称,只是进行测试),但是我没有用。

当我键入2或3或Rattatouie以外的任何其他名称时,我得到:“ Rattatouieéo seu novo Tamagochi!”。用英语是“ Rattatouie是您的新Tamagochi!” (我是巴西人)

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 :(得分:2)

您必须使用in运算符来测试多个值:

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

否则,TamagochiSelect == '1' or 'Rattatouie'只是意味着测试TamagochiSelect是否等于'1''Rattatouie'是否为True'Rattatouie'始终为(因为它是一个非空字符串)。

答案 1 :(得分:2)

您的条件应写为:

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

否则,Python会将其解释为(if TamagochiSelect == '1') or (TamagochiSelect),并且非空字符串的计算结果为True(您可以通过键入bool('some string')bool('')进行验证)

答案 2 :(得分:1)

问题是您的布尔运算符(OR)放置不正确,它在左侧检查并看到

TamagochiSelect == '1'

这将返回False,但在右侧会看到

'Rattatouie'

始终为True。一个解决方案是

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