Стек, созданный в python с помощью оператора switch - PullRequest
0 голосов
/ 02 января 2019

Я создал стековую программу, используя переключатель, но кажется, что она не работает должным образом. Он продолжает повторять метод push. Это даже не выход из программы.

global a
a=[]
def push():
    push_no=int(input("Enter number you want to push"))
    a.append(push_no)

def pop():
    poped_item=a.pop()
    print("Poped item {}".format(poped_item))


def display():
    print(a)  

def numbers_to_strings(a1): 
    switcher = { 
        1: push(), 
        2: pop(), 
        3: display(),
        4: quit()
    } 
    return switcher.get(a1, "nothing")


# Driver program 
if __name__ == "__main__": 
    while True:
        a1=int(input("ENTER WHICH OPERATION YOU WANT OT PERFORM 1-Push, 2-POP, 3-Display 4-quit"))
        numbers_to_strings(a1) 

1 Ответ

0 голосов
/ 02 января 2019

В своем определении numbers_to_strings вы уже оценили функции в своем словаре.Попробуйте:

def numbers_to_strings(a1): 
    switcher = { 
        1: push, 
        2: pop, 
        3: display,
        4: quit
    } 
    return switcher.get(a1, "nothing")()  # get the function object, then evalutate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...