for…else语句在python循环使用else语句的用法,while…else语句相同。
- for 中的语句和普通的语句没有区别,else 中的语句会在循环正常执行完的情况下执行(while…else可理解为当表达式的值为假时,检查其后是否有else语句 )。
- 如果提前跳出for循环(例如使用break语句)时,则也会跳出else语句。相当于for…else作为一个整体,跳出for循环时也会跳出else
'''
输入两个正整数a、b(2≤a<b≤1000000),找出[a,b]之间的素数,由小到大输出。可会有多行输入。
'''
while 1:
str1 = input().split()
a = int(str1[0])
b = int(str1[1])
# 区分输入值的大小
if a>b:
a,b=b,a
else:
a,b=a,b
for i in range(a,b+1):
for j in range(2,i//2+1):
if i % j == 0:
# break 是:若i的值可以被整除,则执行break跳出循环,不执行下面的else语句
break
# else 是:在内在的for循环中j的值每次执行到最大后,会执行else语句
else:
print(i,end=' ')
print()
'''
例如输入: >>>2 11 则展示的结果为: > 2 3 5 7 11
当 i=2时,j没有值,故直接输出2
当 i=3时,j=2,if为flase
j已取到最后值,输出3
当 i=4时,j=2,if为true,执行break,跳出循环
当 i=5时,j=2,if为flase
j=3,if为flase
j=4,if为flase
j已取到最后值,输出5
当 i=6时,j=2,if为true,执行break,跳出循环
当 i=7时,j=2,if为flase
j=3,if为flase
j=4,if为flase
j=5,if为flase
j=6,if为flase
j已取到最后值,输出7
当 i=8时,j=2,if为true,执行break,跳出循环
当 i=9时,j=2,if为flase
j=3,if为true,执行break,跳出循环
当 i=10时,j=2,if为true,执行break,跳出循环
当 i=11时,j=2,if为flase
j=3,if为flase
j=4,if为flase
j=5,if为flase
j=6,if为flase
j=7,if为flase
j=8,if为flase
j=9,if为flase
j=10,if为flase
j已取到最后值,输出11 '''