优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python基础篇-第二十七更:while循环和条件语句嵌套

nanyue 2024-10-01 13:08:02 技术文章 7 ℃

编程五分钟。

hello 各位同学,大家好,欢迎回到编程 5 分钟。上节课已经把循环的 continue 关键词也讲完了,while 循环和 if 判断基本上的基础知识就已经学完了,在之后的课程中老师还会给大家安排 for 循环的使用。现在先练习几节课关于 while 循环和 if 判断的综合练习。

来看题目,找出 100-999 以内的所有水仙花数,实现如下图所示的效果。水仙花数是一个什么概念?水仙花数前面就不用看了,水仙花数是指一个三位数,它的每个数位上的数字的三次幂之和等于它本身。例如:一的 3 次方加 5 的 3 次方加 3 的三次方等于 153。

有同学可能不知道这个次方是什么意思,我来简单讲一下。比如 2 的,这是一个数学知识,2 的 3 次方标准叫幂。2 的 3 次幂是什么?也就是三个 2 相乘等于 2*2*2,这个是 2 的三次方。同样 4 的 2 次幂就是 2 个 2,两个 4 相乘,相乘也就是 4*4,这就是幂。

在 Python 里打开一下交互模式,在 Python 里用星星两个星号来表示幂,比如 2 的 3 次幂,比如 4 的 2 次幂。来看这题怎么做?首先它的范围是 100 到 999,也就是可以定一个初始值,a 的初始值等于 100,并且 while a小于 1000 的情况下 a加等于 1。

这个时候基础条件已经写完了,程序的基本框架也搭好了,接下来想要找到水仙花束对不对?水仙花束是不是要每个数位上的数字?每个数位上的数字会求吗?求一个三位数,每个数位上的数字还记得吗?比如 a 等于 123,是不是有个位、十位、百位可以来求?先求百位,百位是不是就等于 a 整除 100 就是百位,十位就等于 a 先整除 10,a 先整除 10,就比如 123 整除 10 得到 12,12 再取余 10 就可以得到 2,各位是可以直接 a 取余 10 就可以了。

·先来验证一下,把这段单独拎出来验证一下,新建一个,假设 a 等于 789,要 print file=sys.stdout, flush=False),s,b,间隔符设置一下运行,看一看结果,987 没问题,个失败。

·之后就是对它进行判断,if 循环,a 是不是从 100 一直走到 999,在这个情况下,如果个位的三次幂加上个位的三次幂,再加上十位的三次幂,再加上百位的三次幂,最终会得到一个什么结果?如果它刚好和 a 相等,是不是代表它就是一个水仙花数?

·输出一下此时的 a,看一看结果,153,370,371,407,要满足格式输出应该怎么写?可以这样写,添加个格式化符 f,a 是变量,给它扩起来,加上后面的中文格式是水仙花数,运行看一下,153,370,371,407。

这道题就做完了,本节课的编程 5 分钟就到这里,同学们下次再见。

最近发表
标签列表