我正在尝试实现基本的堆栈操作。问题是我需要循环继续要求输入选择并想继续执行直到我输入 1、2、3 以外的数字。当我运行这段代码时,在输入选项 1 后,它会一次又一次地调用 if 语句。我希望 if 语句在调用函数一次后停止,直到我再次调用它。我知道代码有些混乱,我只想要堆栈操作的基本实现。def create_stack(): stack = [] return stackdef check_empty(stack): return len(stack) == 0def 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 Falsestack = []stack_op()
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
第二个while
循环是不必要的,它重复运行相同的 if 块而不要求新的输入。
只需删除整个while choice < 4:
语句并缩进下面的 if 块。然后,它起作用了。break
或者,您可以在每个 if 和 elif 命令块中包含一个,以在处理输入后终止不必要的 while 循环。
添加回答
举报
0/150
提交
取消