Python 为什么这个反弹计数器没有更新并创建一个无限循环?
反弹计数器未更新,而反弹高度也未更新。这将导致一个无限的while循环Python 为什么这个反弹计数器没有更新并创建一个无限循环?,python,while-loop,infinite-loop,Python,While Loop,Infinite Loop,反弹计数器未更新,而反弹高度也未更新。这将导致一个无限的while循环 def bounce_counter (drop_height, minimum_height, energy_loss): bounce = 0 bounce_height = drop_height*(energy_loss**bounce) number_of_bounces = bounce - 1 while bounce_height > minimum_height:
def bounce_counter (drop_height, minimum_height, energy_loss):
bounce = 0
bounce_height = drop_height*(energy_loss**bounce)
number_of_bounces = bounce - 1
while bounce_height > minimum_height:
bounce = bounce + 1
我的输入都是浮点数,如果我将初始跌落高度设置为小于最小高度,则else语句会立即中断循环。您需要在循环外部声明
bounce\u height
变量,然后在循环内部更新它。下面是一个例子(不确定这是否是您想要的确切结果):
def反弹计数器(下降高度、最小高度、能量损失):
反弹=0
反弹高度=下降高度
#反弹次数=反弹-1
反弹高度>最小高度时:
打印(“反弹”+str(反弹高度))
反弹高度=下降高度*(能量损失**反弹)
反弹=反弹+1
如果名称=“\uuuuu main\uuuuuuuu”:
反弹计数器(2,0.1,0.5)
用你自己的话来说,是什么导致弹跳高度>最小高度
不再为真?变量不会自动更新其值(这就是函数的作用)。你需要将弹跳高度
计算放在循环中。