代码交流
本人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
兄弟,你的代码已经很好了,如果要简化,可以试试:
向大牛致敬!{:9_227:}只是这个代码结果后面多了一个含的20个None的列表 hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表
没有啊? 本帖最后由 傻眼貓咪 于 2022-4-14 08:51 编辑
hynet1024 发表于 2022-4-13 21:13
向大牛致敬!只是这个代码结果后面多了一个含的20个None的列表
我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列表赋值给某个变量了吧?print 本身返回 none,该不会你是用 python 原本的 IDLE 吧?{:10_269:} 傻眼貓咪 发表于 2022-4-14 08:17
我这代码不是要列表,而是要它的推导式,不用另外复值,直接运行代码便可,你说的 none 应该是把这个列 ...
大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题{:9_228:}
追问:在你的电脑下获取10位的自幂数需要多久? 本帖最后由 傻眼貓咪 于 2022-4-14 10:18 编辑
hynet1024 发表于 2022-4-14 10:12
大神威武!确实是在IDLE下运行的,改在编辑模式下运行就没问题
追问:在你的电脑下获取10位的 ...
10 位还没有测试过
页:
[1]