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')