Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个反弹计数器没有更新并创建一个无限循环?_Python_While Loop_Infinite Loop - Fatal编程技术网

Python 为什么这个反弹计数器没有更新并创建一个无限循环?

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:

反弹计数器未更新,而反弹高度也未更新。这将导致一个无限的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:
        bounce = bounce + 1

我的输入都是浮点数,如果我将初始跌落高度设置为小于最小高度,则else语句会立即中断循环。

您需要在循环外部声明
bounce\u height
变量,然后在循环内部更新它。下面是一个例子(不确定这是否是您想要的确切结果):

def反弹计数器(下降高度、最小高度、能量损失):
反弹=0
反弹高度=下降高度
#反弹次数=反弹-1
反弹高度>最小高度时:
打印(“反弹”+str(反弹高度))
反弹高度=下降高度*(能量损失**反弹)
反弹=反弹+1
如果名称=“\uuuuu main\uuuuuuuu”:
反弹计数器(2,0.1,0.5)

用你自己的话来说,是什么导致
弹跳高度>最小高度
不再为真?变量不会自动更新其值(这就是函数的作用)。你需要将
弹跳高度
计算放在循环中。