循环结构中辅助控制break,continue,pass,else

break与continue

  • break语句是结束整个循环的过程,不在判断执行循环的条件是否成立;continue语句只结束本次循环,并不终止整个循环的执行。
for i in range(5):
    print('i=',i,end=',')
    for j in range(10):
        if j==5:
            break
        print('j=',j,end=',')
    print()
 ......
 i= 0,j= 0,j= 1,j= 2,j= 3,j= 4,
i= 1,j= 0,j= 1,j= 2,j= 3,j= 4,
i= 2,j= 0,j= 1,j= 2,j= 3,j= 4,
i= 3,j= 0,j= 1,j= 2,j= 3,j= 4,
i= 4,j= 0,j= 1,j= 2,j= 3,j= 4,
   

break跳出内存循环只打印0~5,但依然执行外部循环

  • continue语句是只结束本次循环,并不终止整个循环的执行。
for i in range(5):
    print('i=',i,end=',')
    for j in range(10):
        if j==5:
            continue
        print('j=',j,end=',')
    print()
 ......
 i= 0,j= 0,j= 1,j= 2,j= 3,j= 4,j= 6,j= 7,j= 8,j= 9,
i= 1,j= 0,j= 1,j= 2,j= 3,j= 4,j= 6,j= 7,j= 8,j= 9,
i= 2,j= 0,j= 1,j= 2,j= 3,j= 4,j= 6,j= 7,j= 8,j= 9,
i= 3,j= 0,j= 1,j= 2,j= 3,j= 4,j= 6,j= 7,j= 8,j= 9,
i= 4,j= 0,j= 1,j= 2,j= 3,j= 4,j= 6,j= 7,j= 8,j= 9,

内部跳过5这次循环,继续下一轮循环

pass

只起占位作用,循环中使用 pass 不会跳出循环

for i in range(5):
    print('i=',i,end=',')
    for j in range(10):
        if j==5:
            pass
        print('j=',j,end=',')
    print()
 ......
 i= 0,j= 0,j= 1,j= 2,j= 3,j= 4,j= 5,j= 6,j= 7,j= 8,j= 9,
i= 1,j= 0,j= 1,j= 2,j= 3,j= 4,j= 5,j= 6,j= 7,j= 8,j= 9,
i= 2,j= 0,j= 1,j= 2,j= 3,j= 4,j= 5,j= 6,j= 7,j= 8,j= 9,
i= 3,j= 0,j= 1,j= 2,j= 3,j= 4,j= 5,j= 6,j= 7,j= 8,j= 9,
i= 4,j= 0,j= 1,j= 2,j= 3,j= 4,j= 5,j= 6,j= 7,j= 8,j= 9,

全部输出

for、while循环中的else扩展用法

else中的程序只在一种条件下执行,即循环正常遍历所有内容或者由于条件不成立而结束循环,没有因break或者return而退出循环。continue对else没影响

for i in range(10):
    if i==5:
        break
    print('i=',i,end=',')
else:
    print('success')#不输出
 ......
 i= 0,i= 1,i= 2,i= 3,i= 4,

在for循环中含有break时则直接终止循环,并不会执行else子句。

for i in range(10):
    if i==5:
        continue
    print('i=',i,end=',')
else:
    print('success')#输出
......

continue不影响

综合实例

将Python的合法标识符改为只允许采用大写字母、小写字母、数字和下划线且标识符的首字符不能是数字。现在需要写一段程序来判断给定的标识符是否合法。
程序的输入要求为:第一行为一个正整数n,后边是n行,每行一个字符串。输出为n行,与输入的n行字符串对应,如果输入的字符串是合法的标识符则输出yes,否则输出no。

n=int(input('n='))
for i in range(n):
   identifier=input()
   for ch in identifier:
       if ch.isalpha() or ch.isdigit() or ch =='_':
           continue
       break
   else:
        if identifier[0].isdigit():
            print('no')
        else:
            print('yes')
        continue
   print('no')
发布了23 篇原创文章 · 获赞 19 · 访问量 3007

猜你喜欢

转载自blog.csdn.net/komorebi6/article/details/105115683