一、循环语句之while【重点掌握】
1.嵌套循环
类似于嵌套if语句
语法:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88while 表达式1: while 表达式2: 语句 # 1.基本使用 """ while 表达式1: while 表达式2: 语句 工作流程:当进行第一次外层循环时,内层循环会全部执行完毕 当进行第二次外层循环时,内层循环会全部执行完毕 .... """ n = 0 while n < 3: print(n) # 0 1 2 ---->3 n += 1 m = 0 while m < 5: print(m) # 0 1 2 3 4---->5 m += 1 print("*" * 50) # 查看代码的执行顺序:debug # 外层循环:执行3次 n = 0 while n < 3: # 内层循环:执行5次 m = 0 while m < 5: print(n,m) m += 1 n += 1 # 15 # 注意:无论代码如何嵌套,但凡遇到循环,都是执行完循环语句之后,后面的代码才有执行的机会 print("*" * 50) # 2.应用:打印九九乘法表 """ 行 列 1x1=1 1 1 1x2=2 2x2=4 2 2 1x3=3 2x3=6 3x3=9 3 3 .... 1x9=9 2x9=18 3x9=27 ....... 7x9=63 8x9=72 9x9=81 9 9 规律: a.行的取值范围:1~9 i b.列的取值范围:1~i j c.表达式的格式:列x行=乘积 """ # 外层循环:控制的是行 row = 1 while row <= 9: # 内层循环:控制的是列 col = 1 while col <= row: print(col,'x',row,'=',row * col,end=" ",sep='') # print(f"{col}x{row}={row * col}",end=' ') col += 1 # 换行 print() row += 1 # 3.练习:求1/1! + 1/2! + 1/3! + ....+ 1/20!的结果 # 5! = 5 * 4 * 3 * 2 * 1 # 外层循环:控制的是1~20的数字,求和 num = 1 total = 0 # 记录和 while num <= 20: # 内存循环:分母的阶乘,求阶乘 m = 1 mul = 1 # 记录阶乘 while m <= num: mul *= m m += 1 total += 1 / mul num += 1 print(total) # 自己实现:一层循环
二、循环语句之for【重点掌握】
1.基本语法
语法:
复制代码
1
2
3for 变量名 in 序列: 循环体
功能:for循环主要用于遍历任何序列【容器】,比如列表,字符串,元组,字典和集合等
遍历:指的是依次访问序列中的每一个元素,获取每个元素值
说明:按照顺序获取序列中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完序列中所有的元素为止
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60# 1.字符串 for i in "hello": print(i) # 2.列表 for n in [10,23,45,6,7,34,5,6,8,1]: print('hello world') print("*" * 50) # 3.range(start,end,step) """ range(start,end,step) :根据具体的需求生成一个具有指定规律数据的容器 start:开始数字,可以省略,默认为0,如果不省略,包含在内 end:结束数字,不能省略,不包括在内 step:步长,可以省略,默认为1 包头不包尾/前闭后开区间 """ # a for m in range(4): print(m) print("*" * 50) # b for m in range(5,10): print(m) print("*" * 50) # c for m in range(1,10,2): print(m) print("*" * 50) # d for m in range(10,1,-2): print(m) print("*" * 50) # e.start为0,end为10,step为2 # 注意:如果end和step同时出现,则不能省略start # for m in range(10,2): # print(m) print("*" * 50) """ 注意: 1.如果容器已知,则for循环的次数是由容器中数据的个数决定的 2.如果需要使用连续数字 或者 控制循环的次数,可以使用range() 3.for循环和while循环的使用场景 a.如果不确定循环的次数,则使用while b.如果确定循环的次数,则使用for """
2.使用
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110# 1.计算从1到1000以内所有奇数的和并输出 n = 1 total = 0 while n <= 1000: if n % 2 == 1: # n % 2 != 0 total += n n += 1 print(total) n = 1 total = 0 while n <= 1000: total += n n += 2 # step print(total) total = 0 for n in range(1,1001): if n % 2 == 1: total += n print(total) total = 0 for n in range(1,1001,2): total += n print(total) # 2.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数 m = 1 count = 0 while m <= 100: if (m % 7 == 0 or m % 3 == 0) and not (m % 7 == 0 and m % 3 == 0): count += 1 m += 1 print(count) m = 1 count = 0 while m <= 100: if (m % 7 == 0 or m % 3 == 0) and m % 21 != 0: count += 1 m += 1 print(count) count = 0 for m in range(1,101): if (m % 7 == 0 or m % 3 == 0) and m % 21 != 0: count += 1 print(count) # 3.计算1到500以内能被7整除但不是偶数的数的个数 m = 1 count = 0 while m <= 500: if m % 7 == 0 and m % 2 != 0: count += 1 m += 1 print(count) count = 0 for m in range(1,501): if m % 7 == 0 and m % 2 != 0: count += 1 print(count) # 4.求1-2+3-4………+97-98+99-100的结果 n = 1 total = 0 while n <= 100: if n % 2 == 1: total += n else: total -= n n += 1 print(total) total = 0 for n in range(1,101): if n % 2 == 1: total += n else: total -= n print(total) # 5.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是 ⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153 num = 100 while num < 1000: bw = num // 100 sw = num // 10 % 10 gw = num % 10 total = gw ** 3 + sw ** 3 + bw ** 3 if total == num: print(num) num += 1 print("*" * 30) for num in range(100,1000): bw = num // 100 sw = num // 10 % 10 gw = num % 10 total = gw ** 3 + sw ** 3 + bw ** 3 if total == num: print(num)
三、break和continue【重点掌握】
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50""" 【面试题】简述break和continue的区别 break:结束break所在的循环 continue:结束本次正在执行的循环,继续下一次循环 """ # 1. n = 0 while n < 10: print(n) n += 1 # 0-9 n = 0 while n < 10: print(n) if n == 5: break n += 1 # 0-5 # n = 0 # while n < 10: # print(n) # if n == 5: # continue # n += 1 # 0~55555.。。死循环 # for循环中,加1的操作是由range()控制的,所以适用于中间某个值不需要执行的情况 for i in range(10): print(i) if i == 5: continue print("over",i) # 2.break应用在嵌套循环中,结束的是当前循环【就近原则】 m = 0 while m < 3: n = 0 while n < 5: print(m,n) if n == 2: break n += 1 m += 1 # 说明:在实际项目开发中,break应用最多,一般使用break用于提前结束循环,也可以结合死循环使用
四、死循环和else分支【重点掌握】
死循环:在循环语句中,表达式永远为真的循环
语法:
复制代码
1
2
3
4
5while 表达式: 语句1 else: 语句2
说明:和if-else语句中的作用一样,表示当表达式的值为假的时候,执行else后面的语句2
1.基本使用
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55# 1.while死循环 # while 1: # pass # # while True: # pass # pass:占位语句,没有实际意义,但是可以保证代码结构的完整性,一般用于代码块中 # 2.else分支 """ while 条件: pass else: pass for 变量 in 容器: pass else: pass """ # a.一般情况下,while-else,for-else,不管循环的条件是否成立,else都会被执行 n = 0 while n < 5: print(n) n += 1 else: print("11111111") for n in range(5): print(n) else: print('222222') print("*" * 50) # b.二般情况下,while-else和for-else结合break使用 # 当while或for中的break被执行,则else没有执行的机会 n = 0 while n < 5: print(n) if n == 3: break n += 1 else: print("11111111") for n in range(5): print(n) if n > 10: break else: print('222222')
2.练习
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13# 练习:模拟用户的登录过程:让用户输入自己的用户名和密码,如果用户名为root,密码为abc,则表示登录成功 # 允许错误三次,如果连续三次输入有误,则禁止登录 for i in range(3): username = input("请输入你的用户名:") pwd = input("请输入你的密码:") if username == 'root' and pwd == 'abc': print("登录成功!") break else: print("用户名或密码有误,请重新输入") else: print("连续输入错误三次,禁止输入")
最后
以上就是俭朴毛豆最近收集整理的关于Python笔记5-while嵌套循环&for循环&break和continue的全部内容,更多相关Python笔记5-while嵌套循环&for循环&break和continue内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复