for循环
for 确定循环次数
while 不确定循环次数
格式:
for 临时变量 in 可迭代对象:
重复执行的代码1
重复执行的代码2
……
for i in str_data: # 从左往右获取数据
if i == 'b':
pass
else:
print(i)
作用:
1. 提取容器里面的所有数据输出
2. 循环做某个事情
序列的长度决定循环的次数
range使用
range(start,stop,步长)
range(10) 等同于 range(0,10,1) 区间为(0,9)
左闭右开
# 打印5遍你好!
for _ in range(5):
# 只使用了循环 没用到循环出来的数据
# 约定俗成 把变量写成一个下划线
print('你好!')
# 计算1-4的和
total = 0
for i in range(1, 5):
total += i
print(total)
# 计算 1-101 中偶数的和
total = 0
for i in range(0, 101, 2):
total += i
print(total)
循环控制语句
只能在while和for里面使用
break 语句 终止循环,并且跳出整个循环
continue 语句 终止当前循环,跳出该次循环,执行下一次循环
for i in range(1, 11):
if i == 5:
print('这碗饭是生米,不吃了')
continue # 不运行这次 循环剩下的代码
if i == 8:
print('吃不下了!')
break
print(f'吃{i}碗饭')
吃1碗饭
吃2碗饭
吃3碗饭
吃4碗饭
这碗饭是生米,不吃了
吃6碗饭
吃7碗饭
吃不下了!
for-else使用
# 找数据
data = None
for i in range(10):
if i == 5:
print('找到数据')
data = i
break
else: # else 当代码正常退出的时候执行 一般配合break使用
print('没有找到数据')
print(data)
找到数据
5
for循环嵌套
for i in range(5):
print(i)
for j in range(5):
print(j, end='')
print()
# 5*5
0
01234
1
01234
2
01234
3
01234
4
01234
for i in range(6):
for j in range(5):
print('*', end='')
print()
# 6*5
*****
*****
*****
*****
*****
*****
# 打印三角形
a = 4
for i in range(1, a + 1): # 决定行数
for i in range(1, i + 1): # 1 2 3 4 #决定列数
print('*', end='') # 把*打印在一行 但是没有换行
print() # 换行 让下次的数据输出到下一行
*
**
***
****
# 打印99乘法表
a = 9
for j in range(1, a + 1): # 决定行数
for i in range(1, j + 1): # 1 2 3 4 #决定列数
print(f'{i}x{j}={i * j} ', end='') # i*j打印在一行 但是没有换行
print() # 换行 让下次的数据输出到下一行
# 打印空心矩形
a = 5
for i in range(1, a + 1): # 决定列数
if i == 1:
print('*' * a) # 打印第一行
elif i == a:
print('*' * a) # 打印最后一行
else:
print('*' + ' ' * (a - 2) + '*') # 打印空心行
*****
* *
* *
* *
*****