Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с кодом на питоне

Илья Власов Ученик (181), на голосовании 1 год назад
Написал код, кампилятор отрабатывает полностью но ругается на переменную x
print('Вы в подземелье. Перед вами 3 пути.\n \
Куда вы пойдёте "налево", "прямо", "направо"?\n \
Внимание! вводите направление без кавычек.')
z = input()
if z == 'налево':
x = 1

elif z == 'прямо':
x = 2

elif z == 'направо':
x = 3
else:
print('ОШИБКА!')

if x == 1:
print('Пройдя немного, вы попали в комнату с сундуком.\n \
Откроете ли вы его "да", "нет"?\n \
Внимание! вводите ответ без кавычек.')
elif x == 2:
print('Пройдя немного, вы попадаете в комнату чарадея.\n \
Он предлагает вам выпить одно из двух зелий.\n \
Какое вы выпьете "фиолетовое", "зелёное".\n \
Внимание! вводите цвет без кавычек.')
elif x == 3:
print('Пройдя немного вы упали в яму.\n \
Вы проиграли!\n \
Для завершения нажмите Entr')
z = input()
if z == 'да':
print('Это был мимик. Он вас съел.\n \
Вы проиграли!')
elif z == 'нет':
print('Вы не стали открывать сундук и стали возвращаться обратно.\n \
Но вы наступили на ловушку. Шипы вонзились в вас и вы погибли.\n \
Вы проиграли!')
elif z == 'фиолетовое':
print('Это было зелье телепортации.\n \
Вас телепортировало на поверхность\n \
Вы выйграли!')
elif z == 'зелёное':
print('Это был яд.\n \
Вы проиграли!')
elif z == '':
print('')
else:
print('ОШИБКА!')
Голосование за лучший ответ
Sergio 2.1 Оракул (67485) 1 год назад
 print('Вы в подземелье. Перед вами 3 пути.\n \  
Куда вы пойдёте "налево", "прямо", "направо"?\n \
Внимание! вводите направление без кавычек.')
z = input()
x = 0
if z == 'налево':
x = 1
elif z == 'прямо':
x = 2
elif z == 'направо':
x = 3
else:
print('ОШИБКА!')

if x == 1:
print('Пройдя немного, вы попали в комнату с сундуком.\n \
Откроете ли вы его "да", "нет"?\n \
Внимание! вводите ответ без кавычек.')
elif x == 2:
print('Пройдя немного, вы попадаете в комнату чарадея.\n \
Он предлагает вам выпить одно из двух зелий.\n \
Какое вы выпьете "фиолетовое", "зелёное".\n \
Внимание! вводите цвет без кавычек.')
elif x == 3:
print('Пройдя немного вы упали в яму.\n \
Вы проиграли!\n \
Для завершения нажмите Entr')

z = input()

if z == 'да':
print('Это был мимик. Он вас съел.\n \
Вы проиграли!')
elif z == 'нет':
print('Вы не стали открывать сундук и стали возвращаться обратно.\n \
Но вы наступили на ловушку. Шипы вонзились в вас и вы погибли.\n \
Вы проиграли!')
elif z == 'фиолетовое':
print('Это было зелье телепортации.\n \
Вас телепортировало на поверхность\n \
Вы выйграли!')
elif z == 'зелёное':
print('Это был яд.\n \
Вы проиграли!')

else:
print('ОШИБКА!')
Илья ВласовУченик (181) 1 год назад
Спасибо
Дмитрий Педагогов Ученик (86) 1 год назад
Проблема в вашем коде связана с областью видимости переменной x. Если пользователь вводит некорректное направление, переменной x не присваивается значение, и при попытке использовать x в последующем коде возникает ошибка. Чтобы исправить это, вы можете объявить переменную x до начала блока условий. Вот исправленный код:

print('Вы в подземелье. Перед вами 3 пути.\n \
Куда вы пойдёте "налево", "прямо", "направо"?\n \
Внимание! вводите направление без кавычек.')
z = input()
x = 0

if z == 'налево':
x = 1
elif z == 'прямо':
x = 2
elif z == 'направо':
x = 3
else:
print('ОШИБКА!')

if x == 1:
print('Пройдя немного, вы попали в комнату с сундуком.\n \
Откроете ли вы его "да", "нет"?\n \
Внимание! вводите ответ без кавычек.')
elif x == 2:
print('Пройдя немного, вы попадаете в комнату чарадея.\n \
Он предлагает вам выпить одно из двух зелий.\n \
Какое вы выпьете "фиолетовое", "зелёное".\n \
Внимание! вводите цвет без кавычек.')
elif x == 3:
print('Пройдя немного вы упали в яму.\n \
Вы проиграли!\n \
Для завершения нажмите Entr')
z = input()

if z == 'да':
print('Это был мимик. Он вас съел.\n \
Вы проиграли!')
elif z == 'нет':
print('Вы не стали открывать сундук и стали возвращаться обратно.\n \
Но вы наступили на ловушку. Шипы вонзились в вас и вы погибли.\n \
Вы проиграли!')
elif z == 'фиолетовое':
print('Это было зелье телепортации.\n \
Вас телепортировало на поверхность\n \
Вы выиграли!')
elif z == 'зелёное':
print('Это был яд.\n \
Вы проиграли!')
elif z == '':
print('')
else:
print('ОШИБКА!')


Теперь переменная x будет иметь значение по умолчанию, и код будет работать корректно, даже если пользователь вводит некорректное направление.
Похожие вопросы