[求助]for...else语句的困惑!!!
本帖最后由 LEEFEI571 于 2022-11-22 21:47 编辑请教各位大神:
在<零基础入门学习Python>第4章-<了不起的分支和循环>中,在第35页讲到else语句时,其中for...else语法如下标注:
for 变量 in 可迭代对象:
循环体
else:
条件不成立时执行的内容
问题1:对于for循环语句,出现何种情景时for语句条件不成立?(如对于的while循环语句,则有while True/False)
在后面的p4_14.py例子中:
sum = 0
for in in range(101):
sum += 1
else:
print(sum)
运行结果为何是101,而不是5050? 本帖最后由 jackz007 于 2022-11-23 00:03 编辑
1、for 循环只要不是 break 退出,最后都能进 else,当然,如果一开始就不满足循环条件,也是直接进 else,就是说,不能进入 for 循环和循环自然结束,都会进入 else。
2、for in in range(101): 在这里保留字 in 在首次循环中被赋值为 0,使 for 语句失去作用,从而直接进入 else
for 不能进入:
for x in range(3 , 1):
pass
else :
print('Bingo!')
for 自然结束:
for x in range(1 , 3):
pass
else :
print('Bingo!')
又不是sum+=i,是sum+=1,每次循环sum加一,一共101次,那不就是101么 你的 for……else 应该是没有问题的,就是:
sum += 1
朋友,这里是 sum += 1,不是 sum += i,测测视力好吗{:10_250:} jackz007 发表于 2022-11-22 22:15
for 不能进入:
for 自然结束:
请教一下为啥当break退出时,就无法进else语句? LEEFEI571 发表于 2022-11-23 15:46
请教一下为啥当break退出时,就无法进else语句?
因为 break 不是通过 for 的条件判断退出循环的。 jackz007 发表于 2022-11-23 15:49
因为 break 不是通过 for 的条件判断退出循环的。
for 的条件判断具体是指啥?这块儿我一直理解不透. LEEFEI571 发表于 2022-11-23 15:51
for 的条件判断具体是指啥?这块儿我一直理解不透.
指不能进入循环,我不是给你举例了吗? jackz007 发表于 2022-11-23 16:15
指不能进入循环,我不是给你举例了吗?
清楚了,非常感谢!!!
页:
[1]