|
发表于 2019-12-3 11:39:17
|
显示全部楼层
首先,以代码加上注释的方式告诉你的代码的错误原因:
- # 下面两行的错误点:i为100到1000中的1个整数
- # str(i)为1个整数的字符串形式,如‘125’
- # 字符串用list()后变成['1', '2', '5'],即m为1个拆分整数的列表
- for i in range(100, 1000):
- m = list(str(i))
- print(m)
- # 因此后面each是每个元素'1','2','5'这样的数字,出来当然不会是水仙花
- # 以下代码判断出的对于每个拆分后的数字,立方后等于初始数字,所以你的结果会有125,216,729
- # 原因是:['1', '2', '5']中5的立方得125,符合each == i
- # ['2', '1', '6']中6的立方得216,符合each == i
- # ['7', '2', '9']中9的立方得729,符合each == i
- for each in m:
- sum = int(each)**3
- if sum == i:
- print(i)
- # 这样明白为啥你的程序有错误了吧
- # 另外,注意一点:sum在Python3中有特定函数,变量最好不用这种特殊的单词,可以改成别的
复制代码
修改后代码楼上已有,就不再献丑。。。
|
|