Hello,大家好,这里是随时随地准备死磕操作的DFBoy,持续为你带来神奇小操作的DFBoy。
本次我们要讲述的操作与水仙花数有关,但又不完全相关,是水仙花数的衍生数字求取。
#python豆腐秀#
一、相关知识点描述
根据百度百科等百科书讲解,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
比方说是一个“水仙花数”,因为等于1的三次方、5的三次方、3的三次方这三个三次方数字的总和。
但是,除去三位数,两位数、四位数里面有没有类似的数字呢?
有没有四位数的数字的每位数的三次方总和等于该数呢?五位数里有没有呢?六位数呢?
为了满足自己的渴望,所以接下来将会探索到七位数,看这些数字里面有没有每位数的三次方等于其本身的数字。
二、代码构思
水仙花数的定义是每位数的三次方总和与其本身相等,这也就是我们的判断要件,可以在if判断结构里面设置。
因为我们要探索的数字范围是七位数,所以我们需要对数字1-这一系列的数字进行遍历,对每一个数字都进行一次判断,如果满足条件的设定,就说明这是我们要找的数字。要进行这一个操作,我们将会使用for循环结果进行。
同时,因为涉及到每位数的三次方,所以就需要借助到我们前面讲述过的操作——妙用数值型数据与字符串型数据之间的转化。
三、完整代码及相关讲解
最简单的操作就是每一个结构分开进行,具体如下所示:
第一行代码是创建一个1-的字符串列表。
第二行代码是创建一个空列表,用来盛装符合水仙花定义的数字。
第三行代码开始的for循环结构就是遍历a列表里面的所有数据,判断是不是符合水仙花定义。
但是,根据我们前面的一些操作来看,上面的代码完全可以使用两行代码进行操作。
没错,就是我们最近一直在使用的列表生成式。
第一行代码和最开始部分的第一行代码完全是一样的,第二行代码则是开始部分代码第二行开始后的所有代码。
代码的操作结果一致,所以不做过多讲述,可以对比进行哟!
此外,列表生成式的构造,还可以看下我之前的文章哈!
四、操作小结
事实证明,三位数之外的其他类型数字,里面符合水仙花数的数字不多。
但是这样足以证明我们的许多需要大规模验证的数字可以使用列表生成式的方式!