Python 如何正确地将列表项添加到while循环?

Python 如何正确地将列表项添加到while循环?,python,python-3.x,Python,Python 3.x,我正在努力将元素列表正确地添加到下面的while语句中。 我有一个预定义的元素列表,其中包括蜗牛每天爬的天数。 使用下面的代码,我试图用列表创建一个while循环,但是,它似乎不正确。 蜗牛逃井 """ 一只蜗牛落在一口125厘米深的井底。 蜗牛每天上升30厘米。 但是在晚上睡觉的时候,因为墙壁是湿的,所以会滑20厘米。 蜗牛要多少天才能从井里逃出来? 提示:当蜗牛超过125厘米的高度时,它就会从井里出来。 “”“ ''' 循环:当 条件语句:if-else 功能:打印() ''' ''' 将质

我正在努力将元素列表正确地添加到下面的while语句中。 我有一个预定义的元素列表,其中包括蜗牛每天爬的天数。 使用下面的代码,我试图用列表创建一个while循环,但是,它似乎不正确。 蜗牛逃井 """ 一只蜗牛落在一口125厘米深的井底。 蜗牛每天上升30厘米。 但是在晚上睡觉的时候,因为墙壁是湿的,所以会滑20厘米。 蜗牛要多少天才能从井里逃出来? 提示:当蜗牛超过125厘米的高度时,它就会从井里出来。 “”“

''' 循环:当 条件语句:if-else 功能:打印() '''

''' 将质询数据分配给具有代表性名称的变量: 嗯!, 每日距离, 夜间距离和蜗牛位置。 ''' 进阶厘米=[30,21,33,77,44,45,23,45,12,34,55] ''' 奖金 蜗牛每天行走的距离现在由一个列表定义。 '''

井高=125
#每日距离=30
夜间距离=20
蜗牛位置=0
notEscaped=True
#创建要保留的可变天数
#数一数蜗牛从井里逃出来的日子
天数=0
全天距离=前进距离\u厘米[0]-夜间距离
当蜗牛位置<井高度:
如果天数==1:
打印(str(天)+“过去的一天”)
其他:
打印(str(天)+“过去的天”)
蜗牛位置+=前进厘米[天]
如果蜗牛位置<井高度:
蜗牛的位置-=每晚的距离-蜗牛在这里从井里滑下来
天数+=1
#打印解决方案。
其他:
打印(str(天)+“天,我从井里出来了!”)
#一天内最大排水量是多少?
打印(str(max(advance_cm))+“cm是蜗牛在一天内爬上的最大距离”)
#最低限度是多少?
#仅使用出井天数的移动距离计算位移。
打印(str(min(advance_cm))+“cm是蜗牛在一天内爬上的最小距离”)
#它的平均进度是多少?考虑到蜗牛在夜间滑动。
#平均进度=(总和(天)*范围(进度)-(总和(天)*夜间距离)
advSum=sum(预付款)
advCnt=len(前进厘米)
avgSpd=advSum/advCnt
打印(avgSpd)#它白天的平均速度是多少?
_STDEV=[(x-平均GSPD)**2表示提前x\u cm]
#白天位移的标准偏差是多少?
打印(_stdDev)

您只能使用
advance\u cm
中的第一个值,因为每次引用它时,您只是在执行
advance\u cm[0]
。您也没有在循环中使用
夜间距离
,这意味着蜗牛永远不会从井里滑下来。循环应如下所示:

while snail_position < well_height:
    if days == 1: # In yours, it would say "0 day gone", small correction
        print(str(days) + " day gone")
    else:
        print(str(days) + " days gone")
    snail_position += advance_cm[days] # Now it will use a different distance each day
    if snail_position < well_height:
        snail_postition -= nightly_distance # The snail slides down the well here
        days += 1
当蜗牛位置<井高度: 如果days==1:#在您的中,它会说“0天过去了”,这是一个小的修正 打印(str(天)+“过去的一天”) 其他: 打印(str(天)+“过去的天”) 蜗牛位置+=前进厘米[天]#现在它将每天使用不同的距离 如果蜗牛位置<井高度: 蜗牛的位置-=每晚的距离蜗牛从这里的井里滑下来 天数+=1
非常感谢,它工作得非常好!最后一个问题,你能用标准偏差计算向我解释一下吗?我不会为你做所有的工作,但是这里有一个关于标准偏差的简单而快速的解释:几个小提示:你可以使用内置的sum()和列表理解来轻松地处理标准偏差。您可以在此处阅读有关列表理解的信息:谢谢!我真的想到了这个,它似乎在逻辑上是正确的,但是,标准偏差现在是针对[advanced_cm]的整个长度计算的,而不是蜗牛逃走的天数。advSum=sum(advance\u cm)advCnt=len(advance\u cm)avgSpd=advSum/advCnt print(avgSpd)#它在一天中的平均速度是多少_stdDev=[(x-avgSpd)**2表示提前x#cm]#其白天位移的标准偏差是多少?打印(_stdDev)你知道它已经有多少天了,因为你从while循环中得到了它。您可以使用该数字获取列表的一部分。您可以使用
旅行天数=预付款\u cm[:(天数+1)]
来实现这一点。+1是因为只有当蜗牛不出来时,循环中的天数才会增加。
while snail_position < well_height:
    if days == 1: # In yours, it would say "0 day gone", small correction
        print(str(days) + " day gone")
    else:
        print(str(days) + " days gone")
    snail_position += advance_cm[days] # Now it will use a different distance each day
    if snail_position < well_height:
        snail_postition -= nightly_distance # The snail slides down the well here
        days += 1