简介
while
在给定的判断条件为 true 时执行循环体,否则退出循环体。
语法
while 判断条件(condition): 执行语句(statements)……
实例
# 实例1
a,b = 0,1 while a<10: print(a,end=',') a,b = b,a+b # 解析 ''' 第一次循环: a=0,a<10,print(0) a=b,b=a+b 所以a=1,b=1 第二次循环: a=1,a<10,print(1) a=b,b=a+b 所以a=1,b=2 第三次循环: a=1,a<10,print(1) a=b,b=a+b 所以a=2,b=3 第四次循环: a=2,a<10,print(2) a=b,b=a+b 所以a=3,b=5 第五次循环: a=3,a<10,print(3) a=b,b=a+b 所以a=5,b=8 第六次循环: a=5,a<10,print(5) a=b,b=a+b 所以a=8,b=13 第七次循环: a=8,a<10,print(8) a=b,b=a+b 所以a=13,b=21 第八次循环: a=13,a>10,不执行下方语句,结束循环 '''
# >>> 0,1,1,2,3,5,8,
# 实例2
numbers = [12,37,5,42,8,3] even = [] # 空列表 odd = [] # 空列表 while len(numbers) > 0:# 判断numbers中的长度是否大于0 num = numbers.pop()# 将numbers中的值随机删除一个,并将这个删除的值赋值给num if(num % 2 == 0):#如果被删除的这个值取余2等于0 even.append(num)#说明这个值是偶数,将其写到列表even中 print('even:%s' %(even))#输出even列表 else: odd.append(num)#如果被删除的这个值取余2不等于0,说明这个值是偶数,将其写到列表odd中 print('odd:%s' %(odd))##输出even列表
for
语法
Python 的 for 语句与 C 或 java 中的不同。Python 的 for 语句不迭代算术递增数值(如 java),或是给予用户定义迭代步骤和暂停条件的能力(如 C),而是迭代列表或字符串等任意序列,元素的迭代顺序与在序列中出现的顺序一致
for iterating_var in sequence:#可以直接指定一个循环数值,或者一个列表等 statements(s)
实例
range()内置函数
print(range(10)) # 单独打印range的值,会展示这个的循环区间,输出结果:range(0, 10)
print(sum(range(10))) #输出相加的值0+1+2+3+4+5+6+7+8+9
print(list(range(10))) # range生成列表
for i in range(5,10):# 输出5-10的值(前包后不包) print(i) for i in range(1,10,3):# 输出1-10的值(前包后不包),步长为3.结果:1,4,7 print(i) for i in range(-10,-200,-30):# 输出-10~-200的值,步长为-30。结果:-10,-40,-70,-100,-130,-160,-190, print(i,end=',')
range() 和 len() 组合在一起,可以按索引迭代序列:
#实例1 words = ['cat', 'window', 'defenestrate'] for w in words:# words中有几个数值,就循环几次 print(w, len(w))# 输出每次循环取到的值,和每个值的长度 #实例2 for w in['cat', 'window', 'defenestrate']:# 还可以写成这种写法 print(w, len(w)) #实例3 for w in range(len(words)):# 或者写成这种方式 print(w, words[w])
三元表达式
语法
实例
result = [str(i).zfill(2) for i in range(1,20) if i<8] print(result)result = [str(i).zfill(2) for i in range(1,20) if i<8] print(result) # 等同于 result2 = [] for i in range(1,20): if i < 8: j = str(i).zfill(2) result2.append(j) print(result2)
嵌套循环
语法
实例
循环控制语句
break
在语句块执行过程中终止循环,并且跳出整个循环。
for letter in 'Python': # 第一个实例 if letter == 'h': break print('当前字母 :', letter) var = 10 # 第二个实例 while var > 0: print('当前变量值 :', var) var = var - 1 if var == 5: # 当变量 var 等于 5 时退出循环 break n = 1 # 第三个实例 while 1: # 循环条件为1必定成立 print('n:%s'%(n)) # 输出1~10 n += 1 if n > 10: # 当i大于10时跳出循环 break # 输出1,2,4,5,6,7,8,9,10
continue
跳过当前循环的剩余语句,然后继续进行下一轮循环。
i = 1 while i < 10: i += 1# 意思是i=i+1 if i % 2 > 0: continue # 符合上边的条件时,跳出本次循环,否则执行print print('i:%s'%(i)) # 输出双数2、4、6、8、10
pass
pass是空语句,是为了保持程序结构的完整性。
pass不做任何事情,一般用做占位语句。
pass语句不执行任何操作。语法上需要一个语句,但程序不实际执行任何动作时,可以使用该语句。
while True:# 让程序一直执行 pass