Terence888 发表于 2024-8-13 11:26:21

python最新版课后作业42讲代码题:栈

下面代码为什么不能执行pop函数和top函数stack = []

def get_order():
    order = input("请输入指令(push/pop/top/exit):")
    return order

def push():
    n = int(input("请输入将要压入栈中的值:"))
    stack.append(n)
    for each in stack[::-1]:
      print(each)
   

def top(para):
    if para != []:
      return para[-1]
    return "栈已空~"

def pop(para):
    if para != []:
      return para.pop()
    return "栈已空~"


order = get_order()
while order != 'exit':
      if order == 'push':
            push()
            print(stack)
      elif order == 'pop':
            pop(stack)
      elif order == 'top':
            top(stack)
      order = get_order()

smallwh 发表于 2024-8-13 15:44:08

并不是不能执行,而是 pop 函数和 top 函数没有输入输出,不能直观地看到执行罢了。注意,只有在交互式环境下函数返回值才会被打印出来,而 py 文件执行时不会显示函数返回值的。
你可以使用 print 语句,直观感受一下:
order = get_order()
while order != 'exit':
      if order == 'push':
            push()
            print(stack)
      elif order == 'pop':
            print(pop(stack)) #显示 pop 的返回值
            print(stack) #显示 pop 后的栈
      elif order == 'top':
            print(top(stack)) #显示 top 的返回值
      order = get_order()
页: [1]
查看完整版本: python最新版课后作业42讲代码题:栈