个人主页:丷从心
系列专栏:Python基础
学习指南:Python学习指南
print('宝宝, 我错了')
print('宝宝, 我错了')
print('宝宝, 我错了')
# 此处省略 9997 行 print('宝宝, 我错了')
i = 0
while i < 10000:
print('宝宝, 我错了')
i += 1
Python
中的循环方式Python
中只有两种循环方式
while
循环for
循环while
循环while 条件:
条件为真时, 需要运行的代码
i = 0
while i < 5:
print('-' * 15)
print(f'这是第 {i + 1} 次循环')
print(f'此时 i 的值为 {i}')
i += 1
---------------
这是第 1 次循环
此时 i 的值为 0
---------------
这是第 2 次循环
此时 i 的值为 1
---------------
这是第 3 次循环
此时 i 的值为 2
---------------
这是第 4 次循环
此时 i 的值为 3
---------------
这是第 5 次循环
此时 i 的值为 4
i < 5
成立,因为最开始i = 0
,然后执行while
循环内部的代码i + 1
次循环以及当前i
的值i
进行加
1
1
1操作(注意Python
语言中没有i++
操作,只能使用i += 1
或i = i + 1
),第一次循环结束时i
的值变为
1
1
1,然后继续判断i < 5
是否成立,如果成立则进入下一次循环i += 1
后i
的值变为
5
5
5时,之后再对条件i < 5
进行判断,此时条件i < 5
不成立,循环结束sum = 0
i = 1
while i <= 100:
if i % 2 == 0:
sum += i
i += 1
print(f'区间 [1, 100] 内偶数的累积和为 {sum}')
区间 [1, 100] 内偶数的累积和为 2550
while
语句中可以包含if
判断语句,对一定的条件进行判断while
循环嵌套while
循环内部代码可以包含while
循环,称为循环嵌套*
* *
* * *
* * * *
* * * * *
i = 1
while i <= 5:
j = 1
while j <= i:
print('* ', end='')
j += 1
print() # 用于换行
i += 1
*
* *
* * *
* * * *
* * * * *
i = 1
while i <= 9:
j = 1
while j <= i:
print(f'{j}*{i}={j * i}\t', end='')
j += 1
print() # 用于换行
i += 1
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for
循环while
循环一样,for
也可以完成循环功能for
循环可以遍历任何序列数据类型,如string
、list
、tuple
、dict
、set
等数据类型for 临时变量 in 可迭代对象:
满足循环条件时, 需要运行的代码
for i in range(5):
print(i)
0
1
2
3
4
range
的用法range
函数用于生成一个range
类型生成器,可以理解为生成一个列表,至于什么是生成器,将在生成器章节进行讲解range(x)
range()
时,range(x)
返回
0
0
0,
1
1
1,
?
\cdots
?,
x
?
1
x - 1
x?1,for
循环对这些数据逐个进行提取,保存到临时变量中for i in range(5):
print(i)
0
1
2
3
4
range(x, y)
range()
时,range(x, y)
返回
x
x
x,
x
+
1
x + 1
x+1,
?
\cdots
?,
y
?
1
y - 1
y?1for i in range(5, 10):
print(i)
5
6
7
8
9
range(x, y, z)
range()
时,range(x, y, z)
返回从
x
x
x到
y
?
1
y - 1
y?1的数据,以
z
z
z为步长,即每隔
z
z
z取一个数据for i in range(1, 10, 2):
print(i)
1
3
5
7
9
for i in range(10, 1, -2):
print(i)
10
8
6
4
2
sum = 0
for i in range(1, 101):
sum += i
print(f'区间 [1, 100] 内整数的累积和为 {sum}')
区间 [1, 100] 内整数的累积和为 5050
break
与continue
break
用于结束整个循环,continue
用于结束本次循环break
break
不能单独使用,只能在循环内部使用while
循环中的break
break
i = 0
while i < 5:
print(i)
i += 1
0
1
2
3
4
break
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
0
1
2
i
增加到
3
3
3时,此时继续循环会判断i
的值是否等于
3
3
3,如果是则执行break
,结束整个循环,所以
3
3
3和
4
4
4没有被打印for
循环中的break
url = 'www.baidu.com'
for char in url:
if char == '.':
break
print(char)
w
w
w
continue
continue
不能单独使用,只能在循环内部使用while
循环中的continue
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
1
2
4
5
i
增加到
3
3
3时,之后会判断i
的值是否等于
3
3
3,如果是则执行continue
,结束本次循环,后面的print(i)
语句没有被执行,所以
3
3
3没有被打印,然后进入下一次循环for
循环中的continue
url = 'www.baidu.com'
for char in url:
if char == 'w':
continue
print(char)
.
b
a
i
d
u
.
c
o
m
break
与continue
在循环嵌套中的使用break
和continue
时会发生什么呢?break
i = 0
while i < 3:
print(i)
j = 0
while j < 3:
print(f'({i}, {j})')
j += 1
i += 1
0
(0, 0)
(0, 1)
(0, 2)
1
(1, 0)
(1, 1)
(1, 2)
2
(2, 0)
(2, 1)
(2, 2)
break
i = 0
while i < 3:
print(i)
j = 0
while j < 3:
if j == 1:
break
print(f'({i}, {j})')
j += 1
i += 1
0
(0, 0)
1
(1, 0)
2
(2, 0)
j
的值为
1
1
1时,内层while
循环终止,外层while
循环仍继续运行continue
i = 0
while i < 3:
print(i)
j = 0
while j < 3:
j += 1
if j == 1:
continue
print(f'({i}, {j})')
i += 1
0
(0, 2)
(0, 3)
1
(1, 2)
(1, 3)
2
(2, 2)
(2, 3)
j
的值为
1
1
1时,内层while
循环的当前一次循环终止,外层while
循环仍继续运行break
用于结束整个循环,只对它所在的循环内部起作用continue
用于结束本次循环,只对它所在的循环内部起作用else
语句else
语句可以搭配循环进行使用,当循环并没有因为break
终止时,在循环结束后会执行else
语句中的代码while
循环中的else
break
而终止时i = 0
while i < 5:
print(i)
i += 1
else:
print('循环结束')
0
1
2
3
4
循环结束
while
循环运行过程中并没有因为break
而终止,当while
循环结束后,执行了else
语句break
终止时i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else:
print('循环结束')
0
1
2
while
循环因为break
而终止,else
语句并没有被执行for
循环中的else
break
而终止时for i in range(5):
print(i)
else:
print('循环结束')
0
1
2
3
4
循环结束
break
终止时for i in range(5):
if i == 3:
print('要 break 喽 ~')
break
print(i)
else:
print('循环结束')
0
1
2
要 break 喽 ~