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