hynet1024 发表于 2022-4-13 20:37:39

代码交流

本人Python菜鸟一枚,写了一段代码,分享出来请大家帮忙指点有无优化空间。

#求指定范围内的自幂数(如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数)。

for a in range(1,1000000):
    x = 0
    m = len(str(a))#获取数字长度,即幂指数
    for b in str(a):
      x += int(b)**m
    if a == x:
      print(a)

运行结果如下:
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
54748
92727
93084
548834

傻眼貓咪 发表于 2022-4-13 21:07:58

兄弟,你的代码已经很好了,如果要简化,可以试试:)]

hynet1024 发表于 2022-4-13 21:13:13

傻眼貓咪 发表于 2022-4-13 21:07
兄弟,你的代码已经很好了,如果要简化,可以试试:

向大牛致敬!{:9_227:}只是这个代码结果后面多了一个含的20个None的列表

傻眼貓咪 发表于 2022-4-14 08:14:29

hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表

没有啊?

傻眼貓咪 发表于 2022-4-14 08:17:14

本帖最后由 傻眼貓咪 于 2022-4-14 08:51 编辑

hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表

我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列表赋值给某个变量了吧?print 本身返回 none,该不会你是用 python 原本的 IDLE 吧?{:10_269:}

hynet1024 发表于 2022-4-14 10:12:14

傻眼貓咪 发表于 2022-4-14 08:17
我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列 ...

大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题{:9_228:}
追问:在你的电脑下获取10位的自幂数需要多久?

傻眼貓咪 发表于 2022-4-14 10:16:50

本帖最后由 傻眼貓咪 于 2022-4-14 10:18 编辑

hynet1024 发表于 2022-4-14 10:12
大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题
追问:在你的电脑下获取10位的 ...

10 位还没有测试过
页: [1]
查看完整版本: 代码交流