我在上算法和数据结构的课(Python).书中有一个“堆栈”的例子,其中有返回某些值的方法,书中这些值在方法被调用时打印出来,然而,当我运行程序时什么都没有打印出来,我必须自己打印返回值,这是Python 2和3的区别吗,还是我做错了什么,这是代码
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
s = Stack()
s.push(5)
s.size()
s.isEmpty()
s.peek()
所以,它应该打印这个,但是它没有:
1
False
5
3条答案
按热度按时间lyfkaqu11#
在交互式解释器中,Python会打印出表达式值的
repr
(除了None
),在脚本中,你必须手动打印,因为自动打印在脚本中会非常不方便。w8ntj3qf2#
如果您没有告诉它打印,为什么要打印?尝试:
zf9nrax13#
我假设你的输入文件中有代码,比如
a.py
,在这种情况下,s.size()
等的值会被忽略,另一方面,如果你在交互式Python会话中键入类似的内容,这些值会自动打印出来,尝试所有这些调用的最好方法是:从输入文件中删除对s
的所有操作,只留下Stack
定义。这将使用
Stack
定义加载您的文件,然后交互模式(所谓的REPL)将可用,您可以尝试s = Stack(); s.push(5)
等。