为什么Python不打印返回值?

6qfn3psc  于 2023-01-29  发布在  Python
关注(0)|答案(3)|浏览(269)

我在上算法和数据结构的课(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
lyfkaqu1

lyfkaqu11#

在交互式解释器中,Python会打印出表达式值的repr(除了None),在脚本中,你必须手动打印,因为自动打印在脚本中会非常不方便。

w8ntj3qf

w8ntj3qf2#

如果您没有告诉它打印,为什么要打印?尝试:

print(s.size())
print(s.isEmpty())
print(s.peek())
zf9nrax1

zf9nrax13#

我假设你的输入文件中有代码,比如a.py,在这种情况下,s.size()等的值会被忽略,另一方面,如果你在交互式Python会话中键入类似的内容,这些值会自动打印出来,尝试所有这些调用的最好方法是:从输入文件中删除对s的所有操作,只留下Stack定义。

python -i a.py

这将使用Stack定义加载您的文件,然后交互模式(所谓的REPL)将可用,您可以尝试s = Stack(); s.push(5)等。

相关问题