第18讲求水仙花数
动动手:求所有三位数的水仙花数代码如下:
def num(x):
100<= x<1000
a= x%10
b=int((x/10)%10)
c=int((x/100)%10)
if x==a**3+b**3+c**3:
print('所有的水仙花数是',result.end=' ')
num()
报错显示:keyword can't be expression
不知道咋改,求大神指教一下!谢谢啦{:10_278:} 我大概知道哪里错了,那个result是没有定义的,所以要删掉。而且定义的函数num(),只适合判断特定的数值是不是水仙花数,不能求出一个范围内的水仙花数,所以还是按答案的做法比较好{:10_262:} 本帖最后由 张静aa 于 2021-5-29 15:09 编辑
张静aa 发表于 2021-5-29 14:59
我大概知道哪里错了,那个result是没有定义的,所以要删掉。而且定义的函数num(),只适合判断特定的数值是不 ...
def num(x): #定义一个函数名为num,参数为x。这定义的参数在调用时没有用到
100<= x<1000 #python的循环并不是这样写
a= x%10
b=int((x/10)%10) #python中可使用‘//’用于整除
c=int((x/100)%10)
if x==a**3+b**3+c**3:
print('所有的水仙花数是',result.end=' ') // 在python3.0中,直接使用end=""作为结束符的修改
num()
-----------------------------
建议代码改成:
def num():
for x in range(100, 999):
a= x % 10
b = x // 10 % 10
c = x // 100
if (a** 3) + (b ** 3) + (b ** 3) == num:
print(x, end=' ')
num()
张静aa 发表于 2021-5-29 15:08
def num():
for each in range(100,1000):
a=each%10
b=int((each/10)%10)
c=int((each/100)%100)
if each == a**3+b**3+c**3:
print(each,end=' ')
print ('所有的水仙花数是:',end=' ')
num()
运行成功啦!啦啦啦啦~ LJYUYU 发表于 2021-5-29 15:16
def num(x): #定义一个函数名为num,参数为x。这定义的参数在调用时没有用到
100
谢谢谢谢~{:10_297:}{:10_281:}
页:
[1]