Словари в выражении if не работают - PullRequest
0 голосов
/ 30 октября 2018

Когда я печатаю ключи словаря клиентов с использованием опции 2, он отображается как [], даже если я уже добавил клиента. Может кто-нибудь помочь мне понять, что происходит не так?

def main():
    import sys
    Clients = {}

    choice = input(" Click 1 to add another client\n Click 2 to Check a Clients Balance\n Click 3 to change a Clients Balance ")

    if choice == "1":
            name = input('Add a Client\'s name : ')
            Clients.update({name.rstrip("\n"):0})
            print(name)
            print(Clients.keys())
            main()
    elif choice == "2":
            print(Clients.keys())
            main()
    elif choice == "3":
            print('Do it later')
            main()
    else:
            print('Please choose again')
            main()

main()

1 Ответ

0 голосов
/ 30 октября 2018

Вы звоните main снова и снова, каждый раз используя новый словарь, это называется рекурсией. Здесь вы должны использовать цикл while.

def main():
    clients = {}
    while True:
        choice = input("Click 1 to add another client\n Click 2 to Check a Clients Balance\n Click 3 to change a Clients Balance ")

        if choice == "1":
            name = input("Add a Client's name : ")
            clients[name.rstrip()] = 0
            print(name)
            print(clients.keys())
        elif choice == "2":
            print(clients.keys())
        elif choice == "3":
            print('Do it later')
        else:
            print('Please choose again')

main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...