У меня есть программа для игры и там можно выбирать языки и там три языка и если пользователь выберет не существующий язык то срабатывает функция else которая доложит об ошибке и мне нужно что бы после else всё повторялось заново типо заново выбор и т.п. а то скопировать вставить долго и запутанно
def choose_language():
languages = ['English', 'Spanish', 'French'] # Доступные языки
while True: # Бесконечный цикл, который будет продолжаться до явного выхода
print("Выберите язык:"
for lang in languages:
print(lang)
choice = input("Введите язык: "
if choice in languages:
print(f"Вы выбрали язык: {choice}"
break # Выход из цикла, если выбор корректный
else:
print("Ошибка: выбранный язык не существует. Пожалуйста, попробуйте еще раз."
# Цикл продолжится, и пользователь сможет сделать выбор снова
def select_language():
"""Выбирает язык и возвращает его название."""
languages = {
1: "Русский",
2: "Английский",
3: "Немецкий",
}
while True:
print("Выберите язык:"
for key, value in languages.items():
print(f"{key}. {value}"
try:
choice = int(input("Введите номер языка: ")
if choice in languages:
return languages[choice] # Возвращаем название выбранного языка
else:
print("Ошибка: Неверный номер языка."
except ValueError:
print("Ошибка: Необходимо ввести число."
# Дальнейший код вашей игры, использующий selected_language
if selected_language == "Русский":
# ... код для русского языка ...
elif selected_language == "Английский":
# ... код для английского языка ...
elif selected_language == "Немецкий":
# ... код для немецкого языка ...
if выбор == "1":
print("Вы выбрали русский!"
break # Если выбор корректный, выходим из цикла
elif выбор == "2":
print("Вы выбрали английский!"
break
elif выбор == "3":
print("Вы выбрали французский!"
break
else:
print("Ошибка: такого языка нет. Попробуйте снова.\n"
# Цикл не прерывается, код после else ничего не вызывает,
# просто повторяется заново, так как находимся в while True