Написание консольного меню в Python

Хочу создать активное консольное меню из двух пунктов.

  1. Input users name and age
  2. Показать всех пользователей.
    Результат - list_users и цикл

Помогите пожалуйста дописать код консольного меню чтоб был цикл вопроса выбора. А также сохранение введенных данных список и последующий их вывод в пункте 2.

print("Выберите пункт меню : ")
print(" 1 - добавить нового пользователя ")
print(" 2 - информация о всех пользователях ")

class User:

    def __init__(self):
        self.lastname = input('Enter last name:  ')
        self.firstname = input('Enter first name:  ')
        self.age = input("Enter age: ")

    def user_info(self):
        print("Lastname:", self.lastname, "Name:", self.firstname, "Age: ", self.age)

    user1 = User()
    user1.user_info()
    print() 

Ответы (2 шт):

Автор решения: Eziz Gapbarov
__author__ = 'Gapbarov Eziz'

users_dict = {}

def add_user(dct):
    lastname = input('Enter last name:  ')
    firstname = input('Enter first name:  ')
    age = input("Enter age: ")
    
    concatenate = lastname + ' ' + firstname
    dct[concatenate] = age
    
def user_info(dct):

    for i,j in enumerate(dct.items()):
        nm, lnm = j[0].split()[0], j[0].split()[1]
        ag = j[1]
        print(f'User N{i+1}. Name: {nm.capitalize()}, Lastname: {lnm.capitalize()}, Age: {ag}')

print('''Выберите пункт меню :
1 - добавить нового пользователя ")
2 - информация о всех пользователях ")
3 - Выход
''')

while True:
    menu = input('Введите пункт меню >>> ')
    if menu == '1':
        add_user(users_dict)

    elif menu == '2':
        user_info(users_dict)

    elif menu == '3':
        raise SystemExit

    else: print('Не существующий пункт') 
→ Ссылка
Автор решения: Hamlet Sargsyan

Вы можете использовать библиотеку inquirer для создания интерактивного консольного меню на Python. Вот пример кода:

from inquirer import prompt
import inquirer

class User:
    def __init__(self, lastname, firstname, age):
        self.lastname = lastname
        self.firstname = firstname
        self.age = age

    def user_info(self):
        print("Lastname:", self.lastname, "Name:", self.firstname, "Age:", self.age)

users_list = []

while True:
    questions = [
        inquirer.List('choice',
                      message="Выберите пункт меню:",
                      choices=['Добавить нового пользователя', 'Информация о всех пользователях', 'Выход'])
    ]
    
    choice = prompt(questions)['choice']

    if choice == 'Добавить нового пользователя':
        lastname = input('Введите фамилию: ')
        firstname = input('Введите имя: ')
        age = input('Введите возраст: ')

        user = User(lastname, firstname, age)
        users_list.append(user)
        print("Пользователь успешно добавлен!\n")

    elif choice == 'Информация о всех пользователях':
        print("\nИнформация о всех пользователях:")
        for user in users_list:
            user.user_info()
        print()

    elif choice == 'Выход':
        print("Выход из программы.")
        break

Этот код демонстрирует создание консольного меню с использованием библиотеки inquirer. Пользователь может выбрать действие с помощью стрелок вверх и вниз на клавиатуре для навигации по меню.

Не забудьте установить библиотеку inquirer, выполнив pip install inquirer.

→ Ссылка