如何打印Python中方法的返回值?

1 投票
2 回答
7761 浏览
提问于 2025-04-18 16:11
class Queue():
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def Enqueue(self,item):
        return self.items.insert(0, item)

    def Size(self):
        return len(self.items)

    def Dequeue(self):
        return self.items.pop()

Q = Queue()    
def Hotpot(namelist,num):

    for name in namelist:
        Q.Enqueue(name)

    while Q.Size() > 1:
        for i in range(num):
           Q.Enqueue(Q.Dequeue())
        Q.Dequeue()
    return Q.Dequeue() # I would like to print and see what is getting removed, I tried with x = Q.Dequeue(), print x and print Q.Dequeue() but im getting "None"



print Hotpot(['A','B','C','D','E','F'],7)

嗨,团队,
我正在尝试上面的代码来检查队列。在这里,我想打印出每个循环中正在移除的值。但是在打印时,我只得到了“none”。请帮我看看我需要做什么更改才能达到我的期望。

2 个回答

-1

你的代码在我这儿能正常运行,不过你需要把 Q.Dequeue() 改成 print Q.Dequeue()。这样写会更符合 Python 的风格:

from collections import deque

def hotspot(names, num):
    queue = deque(reversed(names))
    while len(queue)>1:
        queue.rotate(num)
        print queue.pop()
    return queue.pop()

print hotspot(['A','B','C','D','E','F'], 7)
2

如果你想知道会返回什么,你需要先把它保存到本地,然后打印出你保存的内容,最后再返回你保存的东西。可以这样做:

    x = Q.Dequeue()
    print(x)
    return x

撰写回答