7.2.1 理解循环控制
循环意指往复回旋,指事物周而复始地运动或变化,或反复地连续做某事
那么,放到编程语言中进行类比,则很容易理解循环控制:通过某些指令来控制程序反复地执行。通过控制程序指令反复地执行,可以将程序员从繁琐的代码编写工作中解放出来。同学们先思考下面这个问题:
计算1到10之间的所有自然数的和
sum = 1+2+3+4+5+6+7+8+9+10
7.2.2 for循环结构
同学们可以在交互模式中查找for,while等关键字的定义与用法,要养成在交互模式中进行查找的良好习惯。例如查找for关键字的定义及用法:help("for")。
for target_list in expression_list: pass else: pass
1,2,3,4,5
for number in 1,2,3,4,5: print(number)
1 2 3 4 5
以逗号分隔的表达式其实是Python中的元组类型,在后面介绍数据类型时,会对元组类型进行详细讲解。
for number in 1,2,3,4,5: print(number) else: print("for循环正常退出")
1 2 3 4 5 for循环正常退出
break命令只能用于循环结构中,如果用在其它的地方,Python会抛出语法错误的异常信息。
for number in 1,2,3,4,5: print(number) # 如果当前number指向的值大于3,就执行break退出循环 if number > 3: break else: # 如果for循环非正常退出 # 就不会执行else语句下面的代码 print("for循环正常退出")
程序输出为:
1 2 3 4
range(start, stop[, step])
0,1,2,3,4
0,2,4 # 起始数字为0,所以下一个数字为0+2,也就是2。 # 2的下一个数字为2+2,也就是4。同学们可以此类推。
代码实例:
for number in range(5, 0, -1): print(number)
程序输出为:
5 4 3 2 1
# 定义变量total,用来保存累加的和 total = 0 # range(1, 100001)会生成从1到10000之间的所有自然数 for number in range(1, 100001): # 在循环中不断地进行累加 # 先取出变量total指向的值,然后与number变量指向的值相加 # 最后将相加的值再赋值给变量total,以此实现了累加 total = total + number else: print(total)
程序输出为:
50005000
7.2.3 while循环结构
while expression: pass else: pass
在交互模式中查看while关键字的定义和用法:help("while")
while 0: print("这行代码永远不会执行") while "": print("这行代码永远不会执行")
while中的表达式为0, 0值为假值,所以不会执行while循环中的print函数。
在迄今学过的内容中,0值和空字符串都为假值。空字符串即为引号内部不包含任何字符。例如""就是空字符串。
x = 3 y = 3 while x+y > 0: # 先取出变量x指向的值,然后与1进行相减 # 最后将相减的值再赋值给变量x,以此实现了自减 x = x-1 y = y-1 print("x+y=", x+y)
x+y=4 x+y=2 x+y=0
x与y的初始值都为3,x+y的值为6,所以x+y > 0的值为真值。在while循环中不断将x与y的值减-1,当x与y的值都为0时,x+y=0,那么表达式x+y > 0的值为假值,所以不会运行循环体中的代码。
7.2.4 循环结构可以嵌套
# 定义变量sum_of_numbers用来保存所有合数的和 sum_of_numbers = 0 # 合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数 # 所以首先排除1和2 number = 3 while number <=10: # 通过for循环和range来遍历从2到number之间的所有自然数 for _ in range(2, number): # % 是Python中的求余计算符号 if number % _ == 0: # number能被其他数整除时,余数为0 # 如果余数为0,说明为合数 sum_of_numbers = sum_of_numbers + number break # 不断进行自加,当number指向的值大于10时,会退出循环 number = number +1 else: print(sum_of_numbers)
在上文的代码实例中,在while循环中嵌套了for循环,同样可以在while中嵌套while循环,在for循环中嵌套while循环,for循环。同学们可将上文中的代码实例全部改成for循环结构,以比较while循环与for循环的使用区别。
7.2.5 知识要点
(1) 循环控制是指通过指令来控制程序反复地执行
(2) Python通过for,while来实现循环控制
(3) 在循环中使用了break时表示非正常退出
(4) 循环结构中的else语句用来定义循环正常退出后的操作
(5) Python内置的range类型,可以用来生成一个整数序列
7.2.6 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师:
已有7位薯条发表了看法:
访客 评论于 2020-06-03 11:52:33 回复
代码实例:x=3 y=3 while x + y ˃ 0 ... 这个例子中的程序输出有误,应该还要加上一行 x+y = 0,请验证一下。
薯条老师 评论于 2020-06-03 12:04:35 回复
是的,这里的程序输出有误,已加上这一行输出 。
访客 评论于 2020-07-09 17:18:53 回复
x = 3
y = 3
while x+y ˃ 0:
x = x-1
y = y-1
print("x+y=", x+y)
这个代码输出的结果少逗号,输出应该是
('x+y=', 4)
('x+y=', 2)
('x+y=', 0)
访客 评论于 2020-08-01 10:07:03 回复
你运行一下试试。
访客 评论于 2020-07-13 15:46:14 回复
代码实例-计算1到10之间的所有合数的和的最后没有输出值,需要加上一个print输出:
if is_composite_number:
sum_of_numbers = sum_of_numbers + number
print(sum_of_numbers)
访客 评论于 2021-09-28 10:54:29 回复
if条件后面的语句执行完毕后,如果break没有缩进跟前面的if平齐,程序也能执行,但是结果合数9没有加进去,看了半天没弄懂原因
访客 评论于 2021-09-28 10:54:34 回复
if条件后面的语句执行完毕后,如果break没有缩进跟前面的if平齐,程序也能执行,但是结果合数9没有加进去,看了半天没弄懂原因