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

Ошибка с кодом пайтон. пайтон чистый

фан спора и слендрины Профи (660), закрыт 1 неделю назад
 a = (" ")
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
v1 = (f"[{a2}*{b2}_{c2}*{d2}]"); v2 = (f"[{a2}-{b2}_{c2}-{d2}]"); v3 = (f"[{a2}.{b2}_{c2}.{d2}]")
sitost = int(10)
vbase = v1
print("привет, добро пожаловать в тамагочи в пайтон")
x = input("какое имя для своего питомца ты выберешь?")
name = x
print(f"твой питомец {vbase}, его зовут {name}")
while True:
if sitost == 0:
print(f"{name} умер :(")
exit()
else:
x = input("введи своё действие")
if x == "налево":
a2 = (""); b2 = (" "); c2 = (""); d2 = (" ")
print(vbase)
sitost = sitost - int(1)
elif x == "направо":
a2 = (" "); b2 = (""); c2 = (" "); d2 = ("")
print(vbase)
sitost = sitost - int(1)
elif x == "прямо":
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
print(vbase)
sitost = sitost - int(1)
elif x == "спать":
vbase = v2
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
print(vbase)
sitost = sitost - int(1)
elif x == "проснуться":
vbase = v1
print(vbase)
sitost = sitost - int(1)
elif x == "сытость":
print(f"сытость = {sitost}")
elif x == "покормить":
sitost = sitost + int(2)
if sitost < 11:
print(f"вы успешно покормили {name}")
print(f"текущая сытность {sitost}")
if sitost > 10:
print(f"{name} умер :(")
exit()
в строках 16 - 27 когда я к примеру ввожу "направо" то питомец не поворачивается а остаётся в таком же положении. когда я запускаю код то ошибки не пишет. и просто в вс код не показывает ошибки. что делать?
Лучший ответ
Любовь Олифиренко Знаток (428) 1 месяц назад
Проблема в том, что вы присваиваете значения переменным a2, b2, c2 и d2 перед циклом while. Однако, когда вы изменяете значения этих переменных внутри операторов if, изменения не отражаются в переменной vbase.

Чтобы исправить эту проблему, необходимо обновлять переменную vbase внутри каждого оператора if после изменения значений a2, b2, c2 и d2. Вот обновленный код (я ещё немного поправила текст, если вы не против):
 a = (" ") 
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
v1 = (f"[{a2}*{b2}_{c2}*{d2}]"); v2 = (f"[{a2}-{b2}_{c2}-{d2}]"); v3 = (f"[{a2}.{b2}_{c2}.{d2}]")
sitost = int(10)
vbase = v1
print("Привет! Добро пожаловать в Тамагочи на Python!")
x = input("Какое имя для своего питомца ты выберешь? Введи его имя: ")
name = x
print(f"Твой питомец - {vbase}, его зовут {name}!")
while True:
if sitost == 0:
print(f"{name} умер! :(")
exit()
else:
x = input("Введи своё действие: ")
if x == "налево":
a2 = (""); b2 = (" "); c2 = (""); d2 = (" ")
vbase = (f"[{a2}*{b2}_{c2}*{d2}]")
print(vbase)
sitost = sitost - int(1)
elif x == "направо":
a2 = (" "); b2 = (""); c2 = (" "); d2 = ("")
vbase = (f"[{a2}*{b2}_{c2}*{d2}]")
print(vbase)
sitost = sitost - int(1)
elif x == "прямо":
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
vbase = (f"[{a2}*{b2}_{c2}*{d2}]")
print(vbase)
sitost = sitost - int(1)
elif x == "спать":
vbase = v2
a2 = (" "); b2 = (" "); c2 = (" "); d2 = (" ")
print(vbase)
sitost = sitost - int(1)
elif x == "проснуться":
vbase = v1
print(vbase)
sitost = sitost - int(1)
elif x == "сытость":
print(f"Сытость: {sitost}")
elif x == "покормить":
sitost = sitost + int(2)
if sitost < 11:
print(f"Вы успешно покормили {name}!")
print(f"Текущая сытность: {sitost}")
if sitost > 10:
print(f"{name} умер! :(")
exit()
Остальные ответы
Похожие вопросы