好吧,我正在尝试进行初步的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())
有人知道我该怎么解决吗?
答案 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':