1.pass 过 ( 在代码块中无代码可写时,用pass占位)
if 5 == 5:
pass
2.break 终止当前循环,只能应用在循环里
# 打印1 ~ 10 ,遇到5 终止循环
单循环
i = 1
while i<=10:
if i == 5:
break
print(i)
i+=1
多循环(终止当前循环)
i = 1
while i<=3:
j = 1
while j <= 3:
if j == 2:
break
print(i,j)
j+=1
i+=1
3.continue 跳过当前循环,从下一次开始,只能应用在循环里
# 打印1~10 不要5
i = 1
while i<=10:
if i == 5:
# 手动加1,防止跳过下面的代码,产生没有自增的情况,出现死循环
i+=1
continue
print(i)
i+=1
打印 1 ~ 100 所有不含有4的数字
"""
94 % 10 4
94 // 10 9
"""
方法一
i = 1
while i<=100:
if i % 10 == 4 or i // 10 == 4:
i+=1
continue
print(i)
i+=1
方法二
print("<=======11122233>")
# 个位含有4 十位含有4 in not in
i = 1
while i <= 100:
strvar = str(i)
if "4" in strvar:
i+=1
continue
print(i)
i+=1
for … in 循环
"""遍历,循环,迭代 都是把容器中的数据一个一个获取出来"""
lst = [1,2,3,4,5]
# lst = {"a","b","c"}
i = 0
while i<len(lst):
print(lst[i])
i+=1
如果数据是无序的,while不能够遍历数据,for循环应用而生
语法:
for 变量 in 可迭代对象:
code …
可迭代的对象(容器类型数据 , range对象 , 迭代器)
遍历集合
container = {"朱佳怡","黄俊","张恒","魏小林","刘伟","王振"}
遍历列表
container = ["朱佳怡","黄俊","张恒","魏小林","刘伟","王振"]
遍历元组
container = ("朱佳怡","黄俊","张恒","魏小林","刘伟","王振")
遍历字符串
container = "alex是最帅的"
遍历字典 ( 默认遍历的是字典的键)
container = {"ww":"风流倜傥","alex":"英明神武"}
for i in container:
print(i)
遍历等长的二级容器
lst = [("王健林","王思聪","王美丽"), ("马云","马化腾","马冬梅"),("王宝强","马蓉","宋小宝") ]
for i in lst:
# print(i)
'''
('王健林', '王思聪', '王美丽')
('马云', '马化腾', '马冬梅')
('王宝强', '马蓉', '宋小宝')
'''
for j in i:
print(j)
变量的解包
a,b = 1,2
a,b = [3,4]
a,b = {"a":111,"b":222}
a,b,c = ('王健林', '王思聪', '王美丽')
print(a,b,c)
print("<=====>")
for a,b,c in lst:
print(a,b,c)
遍历不等长的二级容器
print("<===>")
lst = [("王健林","王思聪","王美丽"), ("马云","马化腾"),("王宝强",) ]
for i in lst:
for j in i:
print(j)
range对象(配合for循环使用)
"""
range(start,end,step)
start : 开始值
end : 结束值( 最大值获取不到 , 获取到end 这个数之前那个
step : 步长
"""
res = range(10)
print(res)
### 默认从0开始遍历
for i in range(10):
print(i)
最大值获取不到
for i in range(1,10):
print(i)
step=3 代表一次加3 => 1 4 7
for i in range(1,10,3):
print(i)
倒序 10 ~ 1
for i in range(10,0,-1):
print(i)
# 总结:
"""
while 一般用于复杂的逻辑操作
for 一般用在数据的遍历
多数情况下 while和for可以通用;
"""
i = 1
while i <= 9 :
j = 1
while j<=i:
print("%d*%d=%2d " % (i,j,i*j) ,end="")
j+=1
print()
i+=1
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d " % (i,j,i*j) ,end="")
print()
while 和 for 写法上的对比
i = 1
while i<=10:
if i == 5:
# 手动加1,防止跳过下面的代码,产生没有自增的情况,出现死循环
i+=1
continue
print(i)
i+=1
for i in range(1,11):
if i == 5:
continue
print(i)