三位数水仙花数的计算与改进

    技术2022-07-13  65

    初学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])#这里采用了s[:-1]方式不输出最后一个逗号。也可以把所有结果放到一个列表中,采用字符串的.join()方法输出结果。

    然后我试图用.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=[]#creat a new list 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

    Processed: 0.008, SQL: 9