初学Python,记录学习路径
水仙花数指的是其各位数字的3次方和等于该数本身。
三位数的水仙花数
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])
然后我试图用.join()函数去写这段代码
第一次:
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(",".join(s))
然后发现结果是
1,5,3,3,7,0,3,7,1,4,0,7
仔细一想原来是s在被合并后没有了间隔
于是为了人为的创造间隔,我选用了列表
第二次:
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.append( "{}".format(i))
print(','.join(str(i) for i in d))
效果还行
我这里用的是嵩天老师的方法,输入的是三位数,那么可不可以直接输入abc计算呢,我觉得应该也是可以的,读者可以自行编写。
部分原创
第一个代码见https://python123.io/student/courses/1521/groups/12964/problems/programmings/6938