一 while循环
语法:
while condition:
block
当条件满足,即condition为Ture,进入循环体,执行block
例:
flag = 10
while flag:
print(flag)
flag -= 1
其执行结果为
10 9 8 7 6 5 4 3 2 1
解释:首先flag为10,在condition中为10,condition is ture, 则执行block,随后,flag-1,变为9了,condition is true,打印,随后循环此条件,直到condition is faluese,终止循环,即flag=0的时候,while flag则不进入循环
下面思考若是flag=-10是怎样的?
flag=-10
while flag:
print(flag)
flag += 1
此时为-10了,执行结果+1,才不会进入死循环.
二* for 循环
语法:
for element in iteratable:
block
当迭代对象中有元素可以迭代,进入循环体,执行block
iteratable:可迭代的
例:
for i in range(10):
print(i)
打印了1~10 理解可迭代对象为0之后,则循环终止了
考虑为什么,如果倒序打印要怎么打印?
倒序打印我的方法是包含乘法的,不太好,如下
if i in range(10):
print((i-10)*(-1))
了解下面的意思:
if i in range(5):
print('welcome')
在这里面没有引用i,而是用的'welcome' ,这表示i只是记个数嘛
下面是倒序打印简单的方法:
for i in range(10,0,-1):
print(i)
让其步跳为-1,打印10-0出来
循环中的continue语句:终端当前循环的当次执行,继续下一次循环.
例:计算十以内的偶数
方法一
for i in range(0,11,2):
print(i)
方法二
for i in range(10):
if not i%2:
print(i)
双重否定表示肯定, if not i%2 ,众所周知,if后面的condition需要为True方才执行,当对把i除以2取余数的时候,余数为0,则表示i为偶数,但if后为0表示Faluse, if不执行,所以在i的后面加not表示不是0,反之亦然.
方法三 利用continue
for i in rang(10):
if i%2:
continue
else:
print(i)
解释:让前者执行的block全部不打印,打印剩下的,前面打印出来的是奇数
可以更精简一点
for i in range(10):
if i%2:
continue
print(i)
其他方法:
for i in range(10):
if i&0x01:
continue
print(i)
此方法为按位与,用1和符合条件的其他任何数字按位相与,筛选奇偶只需要末位相与,和1末位相与后,打印出来的为奇数,故continue,直接打印偶数,这种方法在计算机中运算速度很快.
可精简为:
for i in range (10):
if i & 1:
continue
print(i)
循环中的break语句:终止当前循环
例:计算1000以内的能被7整除的前20个数;
count = 0
for i in range(0,1000,7):
print(i)
count += 1
if count >= 20:
break
总结:
1. continue和break是循环的控制语句,只影响当前循环,包括if和while循环.
2. 如果循环嵌套,continue和break也只影响语句所在的那一层.
3.continue和break不是跳出语句块,所以if condition: break不是跳出if,而是终止if外的break所在的循环.