Ide для python не реагирует на if и elif, а во всех случаях переходит сразу к else. - Общение Python мододелов

Вопрос Ide для python не реагирует на if и elif, а во всех случаях переходит сразу к else.

Регистрация
25 Сен 2013
Сообщения
65
Репутация
0
Спасибо
0
Монет
0
А если else и вовсе нет в коде, то программа ничего не выдаёт. Вообще. Почему так?
 
Регистрация
17 Июн 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
Ваш код не работает, потому что вы передаёте в функцию acts() аргумент a, который не используется внутри функции. Вместо этого вы используете глобальную переменную user_act, которая не определена внутри функции. Вам нужно передать аргумент user_act в функцию acts().
Кроме того, вы не используете переменную a, которую вы передаёте в функцию. Вам нужно использовать аргумент a вместо глобальной переменной taps_list.

Вот исправленный код: user_act = input()
acts_list = ["jump", "swim"]
taps_list = ["x", "y"]

def acts(a):
if a == taps_list[0]:
d = acts_list[-2]
elif a == taps_list[1]:
d = acts_list[-1]
else:
print("error")

acts(user_act)
 
Регистрация
5 Апр 2013
Сообщения
77
Репутация
0
Спасибо
1
Монет
0
Второй код не работает, потому что там сравнивается строка с числом, что всегда ложно.
 
Регистрация
25 Окт 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Кнопка <> в редакторе вопросов / ответов специально предназначена для публикации блока кода со всеми отступами. def acts(a): return {'x': 'jump', 'y': 'swim'}.get(a, 'error')
print(acts(input())) Для таких задач используют не два массива, а один словарь.

P.S. Полагаю, значения перепутаны местами, но в твоём коде именно такое сопоставление.
 
Сверху Снизу