在这次实例分享之前先祝自己生日快乐\\\٩( ‘ω’ )و ////

文章目录

  • 一.代码
    • 1.用字符串切片去处理
      • for循环
      • while循环
    • 2.用整除(//)和求余(%)来逐一计算出个位十位百位
  • 二. 调整输出行数(变一行输出)
    • 1.空格分隔
    • 2.逗号分隔
      • 字符串自加
      • 列表自加

水仙花数(Narcissistic number)是指一个三位整数,其各位数字的3次方和等于该数本身。例如:abc是一个"水仙花数",则:a的3次方+b的3次方+c的3次方 = abc。

一.代码

1.用字符串切片去处理

for循环

for i in range(100, 1000):t = str(i)if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :print(i)

在Python中通过range函数可以生成指定范围的整数序列,生成[100, 1000)区间的所有三位数,我们可以这么写:range(100, 1000)。因为我接下来要将水仙花数进行切片处理,所以要将i变成字符串的形式。这里我用的是pow()函数去分别让水仙花数的个位十位百位乘以三次方。其实这个代码省略了else,一般出现if就应该最少是双分支,不过这个代码省略了else也没关系,下面是完整的代码:

for i in range(100, 1000):t = str(i)if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :print(i)else:continue

while循环

num=100
while num<1000:A = str(num)if int(A[0]) ** 3 + int(A[1]) ** 3 + int(A[2]) ** 3 == num:print(num)num += 1else:num+=1

这段代码和和上面的for循环逻辑是一样的,只不过把range(100,1000)改成了自加(num+=1),这段代码还把幂运算的方法改变了,把pow()函数变成了**。

2.用整除(//)和求余(%)来逐一计算出个位十位百位

for number in range(100, 1000):a = number % 10b = number // 10 % 10c = number // 100if a**3 + b**3 + c**3 == number:print(number)

这段代码和上面的逻辑是完全不一样的,不再是用字符串切片去对水仙花数操作,而是用计算的方法去算出个位十位百位,具体计算方法如下:

love = 521# 计算百位数
number = love // 100   #双斜杠(//)代表整除,number = 5# 计算十位数
love_0 = love % 100        #百分号(%)代表求余,初学者一定要把余数概念弄清楚,不要把余数和小数弄混,这里love_0 = 21
number = love_0 // 10  #number = 21 // 10 = 2love_1 = love // 10        #love_1 = 52
number = love_1 % 10   #number = 2# 计算个位数
number = love % 10     #number = 1

了解完如何逐一计算出个位十位百位后再去看代码就很清晰了,先计算出a(个位)b(十位)c(百位),再去运算比较是否是水仙花数。

二. 调整输出行数(变一行输出)


这是上面三个代码的输出结果,但如果我不要用四行输出,我想用一行输出结果呢,你可以自己先自己尝试一下,下面我来告诉你怎么做。(这里拿第一段代码举例子)

1.空格分隔

在print中加函数end=" ",代码如下:

for i in range(100, 1000):t = str(i)if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :print(i,end=' ')

下面是输出效果:

2.逗号分隔

字符串自加

这次用逗号来分隔输出结果,代码如下:

s=""
for i in range(100, 1000):t = str(i)if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :s+="{},".format(i)
print(s[:-1])

我们先定义一个空字符串,然后让输出结果以字符串的形式自加,这和定义一个0,然后让输出结果自加是一样的。这里的一个细节就是在每次自加时就有一个逗号了,所以在输出时407后面还有一个逗号,这里采用s[:-1]方式不输出最后一个逗号。
下面是输出效果:

列表自加

s=[]
for i in range(100, 1000):t = str(i)if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :s+=[t]
print(','.join(s))

方法三和方法二的输出结果是一样,这里就不展示了。
我先建立了一个空的列表,然后去存结果:

s = ['153', '370', '371', '407']

然后再采用字符串的.join()方法输出结果。

Python实现 — —水仙花数(一问多解)相关推荐

  1. python判断水仙花数

    python判断水仙花数 水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153) 实例代码 for num in range ...

  2. 如何用Python判断水仙花数

    如何用Python判断水仙花数 这一篇主要献给刚接触Python的朋友,各种思路和值得注意的知识点讲的比较详细. 水仙花数是非常经典的一道题目,刚开始编程的话还是比较建议尝试一下用command运行程 ...

  3. Oracle语法求水仙花数,python实现水仙花数实例讲解

    1.什么是水仙花数? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿 ...

  4. python解决水仙花数(自恋数)

    用python解决水仙花数: 首先要了解一下什么是水仙花数,举个栗子: 153 = 1^3 + 5^3 + 3^3 每个位上的数字相乘三位数(3) 显而易见,我们要先把每个位数的数字遍历出来,然后在乘 ...

  5. python写水仙花,python实现水仙花数实例讲解

    1.什么是水仙花数? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿 ...

  6. python找水仙花数_Python一句代码实现找出所有水仙花数的方法

    水仙花数是指一个 3位正整数,它的每个位上的数字的 3 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 下面用一句代码实现找出所有的水仙花数: 方法一: >>> ...

  7. 用python处理水仙花数

    水仙花数的解决方案--python 水仙花数这一类的问题我们常常会面临到,在这里我会用python对这个问题做出我自己的理解. 对于这样的问题我们要注意的是如何得到个位,十位,百位上的数值,得到之后我 ...

  8. python统计水仙花数个数_Python一句代码实现找出所有水仙花数的方法

    水仙花数是指一个 3位正整数,它的每个位上的数字的 3 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 下面用一句代码实现找出所有的水仙花数: 方法一: >>> ...

  9. 原 python实现水仙花数_Python实现水仙花数

    水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armst ...

最新文章

  1. IBM推出基于Watson的认知营销服务
  2. 内核对象——Windows核心编程学习手札系列之三
  3. 第四范式先知平台成为首个通过金融信创适配验证的AI产品
  4. 计算机专业新老生交流会ppt,铜陵学院实践部新老生交流会.ppt
  5. C++初始化和关闭roscpp节点
  6. 如何将Chrome本地安装的扩展应用导出到本地
  7. c#操作excel后关闭excel.exe的方法
  8. 使用 ODBC .NET 提供程序和 Visual C# .NET 执行 SQL 参数化存储过程
  9. ram自己写?用IP?
  10. 我是新来的,希望大家以后能多指教.
  11. Chrome 浏览器将登陆 Fuchsia OS
  12. 荣耀play3 鸿蒙,荣耀play系列跳过2直接上3代,999元的配置还能愉快play吗?
  13. 省选专练【网络流24题】最小路径覆盖问题
  14. Eclipse代码自动生成
  15. swot分析法案例_项目型销售案例剖析的五大步骤
  16. Ability、capability 和 capacity
  17. Bmob后端云使用步骤
  18. 安卓手机整人代码c语言大全,求一个C语言整人代码!!!
  19. 地图坐标概念 html,普通地图坐标
  20. RestfulToolKit:便捷的 IDEA 接口测试神器

热门文章

  1. 使用php制作导航栏,如何制作简单导航栏
  2. Word图片显示不全解决
  3. java test1
  4. 遍历指定jar包中class文件名并输出到文件中
  5. jdk几个好用的性能调优工具
  6. 用浏览器收藏夹的书签保存javascript的简单脚本
  7. linux 命令 xxd linux下查看二进制文件
  8. 原理这就是索引下推呀
  9. 集算器读写 json
  10. java.lang.NullPointerException: null的错误