[Python] 循环语句
循环语句就是在符合条件的情况下,重复执行一个代码段
1.while循环
while语句可用于在条件为真时反复执行代码块
语法格式
while 条件语句:
执行语句
当条件语句为真(True)时,就会执行while循环下的语句
示例
实现1到100 的累加并输出求和结果
sum = 0
i = 1
while i <= 100:
sum = sum+i
i = i + 1
# 5050
print(sum)
提示Tips
① Python没有 i++或 i--这种自增或自减运算符,需要使用 i = i + 1或者 i = i - 1进行替代
② while循环必须要设置循环终止的条件,否则会陷入死循环
不过我们可以使用死循环来确保用户输入自己的名字
name = ''
while not name or name.isspace():
name = input('Please enter your name: ')
print('Hello, {}!'.format(name))
while循环也可以进行嵌套使用
示例
使用while循环输出九九乘法表
i = 0
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={j*i}\t", end = ' ')
j = j + 1
i = i + 1
print()
代码运行结果如下所示
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
2.for循环
语法格式
for <variable> in <sequence>:
<statements>
示例
使用for循环计算1-10的整数之和
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
# 55
print(sum)
for x in ...循环就是把列表中的每个元素代入变量 x,然后执行缩进语句sum = sum + x
如果计算1-100的整数之和,按上述方式在列表中从1枚举到100有点困难,Python提供了一个创建范围的内置函数range()
语法格式
range(start, stop[, step])
start: 计数从 start 开始,默认是从 0 开始
stop: 计数到 stop 结束,但不包括 stop
step: 步长,默认为1,可选参数
range()函数可以生成一个整数序列,再通过list()函数可以转换为list列表的数据结构
# range(0, 5)
range(5)
# [0, 1, 2, 3, 4]
list(range(5))
示例
使用for循环计算1-100的整数之和
sum = 0
for x in range(1, 101):
sum = sum + x
# 5050
print(sum)
我们也可以使用for循环迭代字典
dicts = {'x':1, 'y':2, 'z':3}
'''
x
y
z
'''
for key in dicts.keys():
print(key)
'''
1
2
3
'''
for value in dicts.values():
print(value)
'''
x corresponds to 1
y corresponds to 2
z corresponds to 3
'''
for key, value in dicts.items():
print(key, 'corresponds to', value)
for循环语句也可以进行嵌套使用,我们将上述使用while循环输出九九乘法表替换成使用for循环实现,代码如下所示
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={j*i}",end='\t')
print(" ")
print("\n")
3.跳出循环
通常循环会不断地执行代码块,直到条件为假或使用完序列中所有元素,但在有些情况下,可能会想中短循环或直接结束循环,这时我们就可以使用continue或break关键字实现跳出循环的功能
在循环过程中,可以通过continue语句,跳过当前的这次循环,直接开始下一次循环
for循环结合continue使用
students = ['Andy','Jack','Bob','Rita','Odin','Harry']
for i in students:
if i == 'Rita':
continue
print(i)
执行结果如下所示
Andy
Jack
Bob
Odin
Harry
while循环结合continue使用
'''
1
2
4
5
'''
n = 0
while n < 5:
n += 1
if n == 3:
continue
print(n)
如果想要提前结束循环,可以使用break语句(在循环体内遇到break则会跳出循环,终止循环并且不论循环的条件是否为真,都不再继续循环 )
for循环结合break使用
students = ['Andy','Jack','Bob','Rita','Odin','Harry']
for i in students:
if i == 'Rita':
break
print(i)
执行结果如下所示
Andy
Jack
Bob
while循环结合break使用
while True:
flag = input('是否要退出程序?(y/n)')
print(flag)
if flag == 'y':
break
执行结果如下所示