9.循环语句
大约 3 分钟学习笔记Python基础
一、 while 循环
while 循环:检查一个条件表达式,只要条件表达式结果为 True ,就执行下面缩进的代码,直到条件表达式结果为 False 时,结束循环。
i=1
while i<=10:
    if i==10:
        print(i)
    else:
        print(i, end=',')
    i+=1
# 1,2,3,4,5,6,7,8,9,10注意
while 循环条件设置不当时,可能导致死循环。
i = 1
while i <= 100:
    print(i)二、for 循环
for 循环一般用于从 字符串、 列表 、 元组 等中依次取出每个元素进行操作。
studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
for student in studentAges:
    print(student)
# 小王:17,小赵:16,小李:17,小孙:16,小徐:18,三、range 函数
range 函数:根据输入的 int 数字,会生成一个可以被 for 循环遍历的列表。
range 函数参数:( 开始值 = 0,结束值,步长 )
提示
当 range 函数 只有一个参数时,生成的列表从 0 开始,到 参数值 -1 结束。
for n in range(10, 20, 5):
    print(n, end=',')
# 10,15,四、 enumerate 函数
enumerate 函数:在 for 循环时可以同时返回 列表中的元素 和它的 下标 。
# 找出下面列表中年龄大于17岁的学员,打印出他们在列表中的索引
studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
for idx, student in enumerate(studentAges):
    print(idx,student)
    if int(student.split(':')[-1]) > 17:
        print(idx)
# 4五、 break 终止循环
break :在循环中,如果遇到 break ,则该循环体立即终止
注意
- 在函数中 ,break必须在return的上方,负责无效。
- 多个 break必须位于不同的分支。
- break和- return都可以让 循环结束 。
def inputCommand():
    while True:
        command = input("请输入命令:")
        if command == 'exit':
            break
        print(f'输入的命令是{command}')
	return
    print('末尾语句')
inputCommand()六、 continue 跳过循环
continue :在循环中,如果满足某种条件,可以 跳过当前循环而不退出循环体,继续执行后面的循环。
while True:
    command = input("请输入命令:")
    if command == 'exit':
        break
    if command == 'cont':
        continue
    print(f'输入的命令是{command}')
print('程序结束')七、 列表推导式
列表推导式:将列表中的元素依次经过 相同的处理 得到新的列表。
格式:[ 循环体 for 局部变量 in 原列表]
list1 = [1,2,3,4,5,6]
list2 = [num**3 for num in list1]
print(list2)		# [1, 8, 27, 64, 125, 216]八、 循环嵌套
多个循环可以嵌套使用
# 打印99乘法表
for i in range(1, 10):
    for j in range(1, 10):
        if i >= j:
            print(f"{j} * {i} = {i*j:2}", end='    ')
        else:
            continue
    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九、 冒泡排序
冒泡排序:通过依次取出数据,两两进行比较后排序
def dataSort(data):
    for i in range(len(data)):
        for j in range(i):
            if i != j and data[i] < data[j]:
                data[i], data[j] = data[j], data[i]
    return data
arr = [23, 41, 25, 54, 18, 14]
print(dataSort(arr))	# [14, 18, 23, 25, 41, 54]