【问题标题】:How to print return value of method in Python?如何在 Python 中打印方法的返回值?
【发布时间】:2014-09-28 23:17:18
【问题描述】:
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)

您好团队, 我正在尝试上面的代码来检查队列,在这里我想打印哪个值正在删除每个周期。打印时我没有得到任何东西,请帮助我为我的期望做些什么改变。

【问题讨论】:

  • 你为什么不用collections.deque
  • 这段代码对我有用。没有None
  • 提示:return 语句上方的循环有什么作用?
  • 嗨丹尼尔,谢谢你的回复,是的,这段代码也适用于我,它最终会返回 C,但我想一个一个地打印每一个删除的项目,打印 Q.Dequeue,当把它放在程序中,我得到 C 和 None

标签: python python-2.7 python-3.x return ipython


【解决方案1】:

如果您想知道将要返回的内容,则需要将其保存在本地,打印您保存的内容,然后返回您保存的内容。比如:

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

【讨论】:

    【解决方案2】:

    当您将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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多