当我运行代码时,python只是坐在那里,不打印任何东西

当我运行代码时,python只是坐在那里,不打印任何东西,python,function,loops,nested,average,Python,Function,Loops,Nested,Average,练习:从字符串后面开始,找出可能导致大于或等于100的数字的所有数字,然后停下来,找出之前数字的平均值 def avgBackwList(值): 总数=0 对于范围(1,len(值)+1)内的i: while values[-i]函数中的while循环计算布尔值[-1]您已经创建了一个无限while循环。while循环的条件是: while values[-i] <= 100: 换言之,for循环到达值'a',然后while循环完成0-4,只有到那时外部for循环才能到达'b',依此类推

练习:从字符串后面开始,找出可能导致大于或等于100的数字的所有数字,然后停下来,找出之前数字的平均值

def avgBackwList(值):
总数=0
对于范围(1,len(值)+1)内的i:

while values[-i]函数中的while循环计算布尔值[-1]您已经创建了一个无限
while
循环。while循环的条件是:

while values[-i] <= 100:
换言之,for循环到达值
'a'
,然后while循环完成0-4,只有到那时外部for循环才能到达
'b'
,依此类推。看在你的份上,我不想帮你解决家庭作业。不过,我要说的是,关于您当前的代码,您需要找到一种方法,使您的
while
条件最终
为False
,而不依赖外部for循环生成的值的更改

线路

        while values[-i] <= 100:

。。。它至少有终止的机会,因为
total
while
块中被更改。

请阅读,如果您想“halp”,请正确格式化您的问题……除非我弄错了,否则您的while循环将永远不会结束,除非您传入一个最终值>100的列表,并在while循环中添加类似于I+=1的内容,所以i的值以另一种方式增加,循环是无穷大的,我认为在OP卡在while循环中时,它将计算
值[-1]不是真的。您可以通过打印值[-i]来测试这一点。也许你把索引-1和对象i混淆了。他的代码从索引-2开始遍历列表,然后进入while循环。我一定是误会你了。我想说的是,对于范围(1,len(values)+1)内的I,第一次通过循环
I
的值将是
1
,因此
-I
将是
-1
。此外,
-2
索引处的值为
2
4
索引处的值为
-1
。如果您不相信我,请打开python解释器并打印([110,2,4][2])
。此外,您还可以尝试对范围(1,len(值)+1)中的i执行
:打印(i,-i)
,您将看到
1
-1
。我并没有否决你的答案,因为你的逻辑是正确的,我只是建议你修正错误。谢谢!那么,将while循环更改为if语句是否应该是一个更好的选择呢?试试看:-)老实说,我认为从代码到工作解决方案需要几次迭代。。。由于这显然是一项任务,我更愿意指出阻碍您的直接问题,而不是提供一个完整的工作解决方案。
In [8]: for i in ['a', 'b', 'c']:
   ...:     print(i)
   ...:     j = 0
   ...:     while j < 5:
   ...:         print(j)
   ...:         j += 1

a
0
1
2
3
4
b
0
1
2
3
4
c
0
1
2
3
4
        while values[-i] <= 100:
        while total <= 100: