Python3 2022习题2 水仙花数

水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如,1 ** 3 + 5 ** 3 + 3 ** 3 = 153),输出所有3位的水仙花数

有效信息

输出所有3位的水仙花数:确定了循环的范围(100-999);语句for i in range(100,1000),range是一个左闭右开的范围

代码实现

def sxh (n):
    if n == int(str(n)[0])**3 + int(str(n)[1])**3 + int(str(n)[2])**3:
        return 1
    else:
        return 0
#判断是否是水仙花数

ls = []
#定义一个空列表来存输出的数据
for i in range(100,1000):
#循环的范围由题目可以知道是100-999
    if sxh(i):
        ls.append(i)
print(','.join(str(i) for i in ls))

易错点

有的同学会使用

print(i,end=',')

但是这样最后的结果会变成

153,370,371,407,

最后多了一个",",这还是比较明显的,如果是用' '分隔开的,考试时机器判题

153 370 371 407
#末尾无空格

153 370 371 407 
#末尾多了一个空格

 第二个答案就是错误的

posted @ 2022-03-17 18:38  柏木カケル  阅读(239)  评论(0)    收藏  举报