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()
并不是不能执行,而是 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]