Python 中的堆栈操作

我正在尝试实现基本的堆栈操作。


问题是我需要循环继续要求输入选择并想继续执行直到我输入 1、2、3 以外的数字。当我运行这段代码时,在输入选项 1 后,它会一次又一次地调用 if 语句。我希望 if 语句在调用函数一次后停止,直到我再次调用它。我知道代码有些混乱,我只想要堆栈操作的基本实现。


def create_stack():

    stack = []

    return stack


def check_empty(stack):

    return len(stack) == 0


def push(stack, item):

    stack.append(item)

    print("Item pushed")


def pop(stack):

    if check_empty(stack):

        return "Stack is empty"

    return stack.pop()



def display(stack):

    for i in stack:

        print(i, end = ' ')



def stack_op():

    while True:

        choice = int(input("Enter the choice "))

        while choice < 4:

            if choice == 1:

                item = int(input("Enter the item :"))

                push(stack, item)

            elif choice == 2:

                pop(stack)

            elif choice == 3:

                display(stack)  

            else:

                break

    return False


stack = []

stack_op()


白猪掌柜的
浏览 115回答 1
1回答

守候你守候我

第二个while循环是不必要的,它重复运行相同的 if 块而不要求新的输入。只需删除整个while choice < 4:语句并缩进下面的 if 块。然后,它起作用了。break或者,您可以在每个 if 和 elif 命令块中包含一个,以在处理输入后终止不必要的 while 循环。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python