Предмет: Информатика, автор: mayyalovalova

Пишу код в python. В любом случае выполняется первое условие, даже если выпадает человек, орк или вампир. Помогите пожалуйста
Вот код:

race =['fary', 'elf', 'dwarf', 'human', 'ork', 'vampire']
race1 =[random.choice(race) for i in range (1)]
print (race1)
if race1 == 'fary' or 'elf' or 'human':
print 'aaa'
else:
print 'bbb'

Вместо else писала elif, но тоже не помогает. Версия python 2.7.18

Ответы

Автор ответа: tutu007
1

Ответ:

import random

race =['fary', 'elf', 'dwarf', 'human', 'ork', 'vampire']

race1 =random.choice(race)

print (race1)

if race1 == 'fary' or race1 == 'elf' or race1 == 'human':

   print("aaa")

else:

   print("bbb")

Объяснение:

Вы зачем то сделали список из 1 элемента, к тому же условие в if некорректное, "elf" и "human" ни к чему не привязаны и сами являются логическими высказываниями(истинными) и из-за этого всегда возвращалось ааа

Я писал на 3.x питоне, могут вылезти ошибки у вас - скиньте их


mayyalovalova: Спасибо за ваш ответ) Попробовала, как вы сказали, но появилась другая проблема. Теперь выполняется только второе условие
tutu007: Вы точно все верно переписали? У меня все нормально работает
mayyalovalova: А, всё, теперь полностью скопировала, наконец заработало) Несколько дней с этим мучалась... Ещё раз огромное спасибо за помощь)
tutu007: Советую вам почитать документацию по языку или какие нибудь гайды, сама логика действий построена верна, но ошибки в синтаксисе препятствуют нормальной работе программы
Похожие вопросы