- Привет, Линус,
Ваша переменная
text_in_use
устанавливается только в том случае, если соблюдено ваше первое условие. Поэтому, если ваши коды пропустят это условие и перейдут к:
elif choice == 2
, переменная еще не установлена.
Поскольку функция рекурсивно вызывает себя после каждой опции, вы также можетеНе добавляйте переменную перед первым предложением, как я изначально предлагал.
Поэтому я изменяю свой ответ на следующее:
На этом этапе яТакже хотелось бы добавить, что функция без выхода не может быть тем, что вы в конечном итоге хотите использовать. Поэтому я закомментировал рекурсивный вызов в варианте 5.
Я предлагаю использовать простой класс:
class Menu:
def __init__(self):
self.text_in_use = ''
self.encrypt_key = ''
self.build_menu()
def build_menu(self):
choice = int(input(
"""
1: Input text to work with
2: Print the current text
3: Encrypt the current text
4: Decrypt the current text
5: Exit
Enter Choice:
"""
))
if choice == 1:
self.text_in_use = str(input("Enter Text: ")).upper()
print("Text to use was set to:", self.text_in_use)
self.build_menu()
elif choice == 2:
print(self.text_in_use)
self.build_menu()
elif choice == 3:
print("3")
self.build_menu()
elif choice == 4:
#decrypt()
print("4")
self.build_menu()
elif choice == 5:
#exit()
print("5")
# self.build_menu() do not call this again so it actually exits.
Menu()