龙空技术网

Python编程基础08:循环结构

Python智禅 228

前言:

当前朋友们对“c语言dowhile循环求水仙花数”大体比较注重,咱们都需要了解一些“c语言dowhile循环求水仙花数”的相关知识。那么小编在网摘上汇集了一些关于“c语言dowhile循环求水仙花数””的相关知识,希望兄弟们能喜欢,大家快快来学习一下吧!

一、为什么要用循环

现在有一个任务,要求你输出一百遍“好好学习,天天向上!”,想一想,你会怎么做?

(一)老老实实的笨方法

print("第1遍写:好好学习,天天向上!")

print("第2遍写:好好学习,天天向上!")

print("第3遍写:好好学习,天天向上!")

print("第4遍写:好好学习,天天向上!")

……

print("第100遍写:好好学习,天天向上!")

采用此方法,当然可以完成任务,但是显然很糟糕,如果要求你输出一万遍,那得有一万行打印语句,那样看起来岂不令人崩溃?

(二)采用循环结构的巧方法1、采用for循环输出百遍口号编写程序 - 采用for循环输出百遍口号.py

运行程序,查看结果

你看,两行代码,就可以输出百行口号,是不是感觉挺爽?2、采用while循环输出百遍口号编写程序 - 采用while循环输出百遍口号.py

运行程序,查看结果

你看,殊途同归,不一样的循环语句,一样的输出结果!二、条件循环 - while循环(一)语法格式一般格式

while 条件表达式:

循环体

具体格式

初始条件

while 循环条件:

循环体

[break|continue]

更新条件

(二)执行情况

当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。

现实生活中的例子来理解while循环的执行流程。在体育课上,体育老师要求同学们沿着环形操场跑圈,要求当听到老师吹的哨子声时就停下来。同学们每跑一圈,可能会请求一次老师吹哨子。如果老师吹哨子,则停下来,即循环结束,否则继续跑步,即执行循环。好友聚会,开怀畅饮,不醉不休。一杯接着一杯地喝下去,直到喝趴下,喝酒循环才结束。(三)案例演示任务1、永不消逝的电波 - 死循环编写程序 - 永不消逝的电波.py

循环永不结束,除非用户强制终止。任务2、采用while循环计算1 + 2 + 3 + …… + 100的值这是一个非常经典的数学计算问题:公差为1的等差数列求和。编写程序 - 采用while计算1 + 2 + 3 + …… + 100的值.py

只要i <= 100成立,循环都会继续,直到i = 101,不满足条件了,循环才终止运行程序,查看结果修改一下代码,输出循环结束后循环变量i的值

运行程序,查看结果课堂练习:采用while循环计算1 + 3 + 5 + …… + 99的值提示:有三种方法可以解决此问题。

(1)修改循环的更新条件:i = i + 2

(2)在循环结构里嵌套一个过滤器:if i % 2 == 1: sum = sum + i

(3)修改循环条件:i <= 50,修改累加语句 sum = sum + 2 * i - 1运行程序,查看结果任务3、采用while循环打印水仙花数

水仙花数:是指等于其各位数字立方和的三位数。

分析问题,首先水仙花数是三位数,那么我们可以确定范围:100~999,这个我们可以通过循环结构来搞定:

n = 100

while n <= 999:

n = n + 1

然后对于这个范围的每个数n,我们要去判断它是否等于其各位数字的立方和,这里的难点或关键在于如何分解一个三位数,得到它的每位数字。

假设我们已经把三位数n分解成百位数p3,十位数p2,个位数p1,

这样我们的筛选条件就可以写出来:n == p3 * p3 * p3 + p2 * p2 * p2 + p1 * p1 * p1。

如何拆分一个三位数n呢?

首先求n的个位数:n % 10

然后要将三位数变成两位数:n = n // 10

对于新的两位数n,又求它的个位数:n % 10

然后要将两位数变成一位数:n = n // 10

也就是说我们可以交替使用求余和整除运算将一个三位数拆分,得到它的个位数、十位数和百位数。当然这个分解方法可以推广到任何多位数的拆分。

编写程序 - 采用while循环打印水仙花数.py

运行程序,查看结果任务4、采用while循环破解令狐大侠难题编写程序 - 采用while循环破解令狐大侠难题.py

运行程序,查看结果

三、计数循环 - for循环(一)语法格式

for 迭代变量 in 对象:

循环体

for循环是一个依次重复执行的循环。通常适用于枚举或遍历序列,以及迭代对象中的元素。(二)执行情况迭代变量用于保存读取出的值;对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。(三)案例演示任务1、采用for循环计算1 + 2 + 3 + …… + 100的值编写程序 - 采用for循环计算1 + 2 + 3 + …… + 100的值.py

运行程序,查看结果任务2、采用for循环打印水仙花数编写程序 - 采用for循环打印水仙花数.py

运行程序,查看结果任务3、采用for循环破解令狐大侠难题编写程序 - 采用for循环破解令狐大侠难题.py

运行程序,查看结果思考题:这个程序无论如何都要循环99次,有必要吗?其实,当找到满足条件的cups值,就应该终止循环,不必再浪费资源继续循环了。此时,就会用到循环的跳转语句。四、跳转语句(一)跳转概述

当循环条件一直满足时,程序将会一直执行下去。如果希望在中间离开循环,也就是for循环结束重复之前,或者while循环找到结束条件之前。

使用continue语句直奔下次循环使用break语句完全中止整个循环(二)break语句1、在while循环中使用break语句语法格式

while 条件表达式1:

执行代码

if 条件表达式2:

break

执行情况2、在for循环中使用break语句语法格式

for 迭代变量 in 对象:

if 条件表达式:

break

执行情况3、案例演示任务1、采用for循环破解令狐大侠难题 - 完善版编写程序 - 采用for循环破解令狐大侠难题 - 完善版.py

运行程序,查看程序任务2、判断一个整数是否是素数概念:什么叫素数(Prime Number)?一个整数除了1和它本身之外没有其它因子,这个整数就叫素数,否则就叫合数,但是有一个特殊情况,1既不是素数,也不是合数。比如:2、3、5、7都是素数,它们除了1和本身都没有其它因子,但是6就是合数,除了1和6之外,还有2和3都是其因子(6 = 2 * 3)。方法:判断一个整数是不是素数的方法 - 比如我们考虑一个整数n ( n ≥ 2 ) n(n\ge2)nn≥2),就要看从2 22到n − 1 n-1n−1的每个数能否整除n nn,如果能整除,那么n nn就不是素数;如果从头到尾都不能整除,那么n nn就是素数。编程思路:我们采用一个布尔型的标志变量is_prime_number来表示待判断的整数n是不是素数,如果is_prime_number = True表明是素数,如果is_prime_number = False表明不是素数。先假定待判断的整数n是素数,设置is_prime_number = True,一旦在循环里找到能整除n的真因子,说明n不是素数,立马设置is_prime_number = False,并跳出循环结果。循环之后就根据is_prime_number的真假来输出n是素数还是合数。(这个编程思路,有点类似于法院断案,先假定你是好人,只有找到犯罪证据,才能断定你是罪犯。)编写程序 - 判断一个整数是否是素数.py

运行程序,查看结果

思考题:实现合数分解如果一个整数是合数,编程将其分解成素数乘积形式比如45 = 3 × 3 × 5 , 24 = 2 × 2 × 2 × 3 … … 45=3×3×5,24=2\times2\times2\times3……45=3×3×5,24=2×2×2×3……(三)continue语句1、在while循环中使用continue语句语法格式

while 条件表达式1:

执行代码

if 条件表达式2:

continue

执行代码

执行情况如果条件表达式2为True,跳过continue之后的执行代码部分,直奔下一次循环如果条件表达式2为False,执行continue之后的执行代码部分,才进入下一次循环2、在for循环中使用continue语句语法格式

for 迭代变量 in 对象:

执行代码

if 条件表达式:

continue

执行代码

执行情况

如果条件表达式为True,跳过continue之后的执行代码部分,直奔下一次循环

如果条件表达式为False,执行continue之后的执行代码部分,才进入下一次循环3、案例演示任务1、计算1 + 3 + 5 + …… + 99的值之前我们已经使用for循环来完成过这个计算任务,步长是2

现在我们换种方式来处理,步长依然是1,在循环里嵌套一个选择结构,通过使用continue语句过滤掉偶数,然后累加的就是全部奇数。修改程序 - 计算1 + 3 + 5 + …… + 99的值.py

运行程序,查看结果任务2、逢七拍腿员工拓展小游戏场景模拟:宜宾五粮液酒类销售有限公司对2020年度新入职员工进行拓展训练,其中开展的一项小游戏叫做“逢七拍腿游戏”。游戏规则是每个员工从1开始依次数数,当数到尾数是7的数或7的倍数时,则该员工不报出该数,而是拍一下腿。凡是出错的员工将会受到小惩罚——做10个俯卧撑。假设在一次游戏中,参加活动的员工循环报数,从1数到99,每个人都没有出错,即无人受到惩罚。现在编写程序,在本次游戏中,计算新员工一共要拍多少次腿。编写程序 - 逢七拍腿员工拓展小游戏.py

运行程序,查看结果不使用continue,代码如下所示

运行程序,查看结果五、循环嵌套六、pass语句(一)占位作用

在Python中还有一个pass语句,表示空语句。它不做任何事情,—般起到占位作用。

(二)案例演示在应用for循环输出1〜10之间(不包括10)的偶数时,在不是偶数时,应用pass语句占个位置,方便以后对不是偶数的数进行处理。编写程序 - 占位语句pass.py

运行程序,查看结果

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

标签: #c语言dowhile循环求水仙花数 #python循环结构程序