我的函数在PYTHON中不起作用时,我不知道出了什么问题

我的函数在PYTHON中不起作用时,我不知道出了什么问题,python,python-3.x,while-loop,Python,Python 3.x,While Loop,我在下面创建了这个while循环,但它只打印一次,而它应该打印两次,请帮助: count = 6 item = 3 while count - item > 0: print count count -= item print count if count == 0: print "hey" 开始时,计数是6,然后是3,但它永远不会达到0,这是什么意思?hey应该只打印一次 我想你的意思是 count = 6 item = 3 whil

我在下面创建了这个while循环,但它只打印一次,而它应该打印两次,请帮助:

count = 6
item = 3

while count - item > 0:
    print count
    count -= item
    print count
    if count == 0:
        print "hey"
开始时,计数是6,然后是3,但它永远不会达到0,这是什么意思?hey应该只打印一次

我想你的意思是

count = 6
item = 3

while count > 0:
    count -= item
    print count - item
    if count == 0:
        print "hey"
在您的情况下,它正在检查计数项是否大于0。

是否应该

让我们分析代码流。初始计数和项目设置为:

count = 6; item = 3
这意味着计数项是3,所以我们进入循环。在循环中,我们将计数更新为3,因此:

这意味着打印count-item是0,但count本身是3,因此if语句失败,我们根本不打印hey

现在,while循环检查count-item是否大于0(不再是这种情况),因此它停止

在此处打印hey两次的最小修复程序是:

将while循环中的检查设置为count-item>=0;和 在循环中打印hey,无论count的值是什么,例如:
计数仅为0一次…为什么您希望它打印两次?请尝试在上或在调试器中单步执行此操作,或仅通过添加更多打印信息(例如,打印计数、项目、计数-项目)来执行此操作,应该可以清楚地看到发生了什么。第一次,6-3>0是真的。第二次3-3>0为假。这就是它的全部。至于如何修复它,这取决于你对什么感到困惑。如果,比方说,您希望它工作,因为3-3>=0是真的,这是一个微不足道的打字错误;你只是做了>而不是>=。如果它是其他东西,则修复是其他东西。它不会打印“嘿,一点也不…”。。。
count = 3; item = 3
count = 6
item = 3

while count - item >= 0:
    count -= item
    print "hey"