代码写的不好,想问下,最后None怎么去掉
def Narcissus():for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
print(each,end='\t')
print("100-999之间的水仙花数是:",end='')
print(Narcissus())
100-999之间的水仙花数是:153 370 371 407 None
因为函数没有返回值,所以print(Narcissus())返回None,去掉print就好了def Narcissus():
for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
print(each,end='\t')
print("100-999之间的水仙花数是:",end='')
if __name__ == "__main__":
Narcissus() 函数里最后一行加return '' 多加行return就好
def Narcissus():
for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
print(each,end=' ')
return ''
print("100-999之间的水仙花数是:",end='')
print(Narcissus())
或者这样:
def Narcissus():
ls = ''
for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
ls += str(each)+' '
return ls
print("100-999之间的水仙花数是:",end='')
print(Narcissus())
建议这种 因为这种是返回水仙花数的,而第一种函数返回的是空,只是打印了水仙花数 这个函数本来就不需要返回值,何必画蛇添足加上return?
调用的时候直接调用就行了:
def Narcissus():
for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
print(each,end='\t')
print("100-999之间的水仙花数是:",end='')
Narcissus() 最后一行把print()函数去掉,如下:
def Narcissus():
for each in range(100,1000):
a=each//100
b=(each-a*100)//10
c=each-a*100-b*10
if each == a**3+b**3+c**3:
print(each,end='\t')
print("100-999之间的水仙花数是:",end='')
Narcissus()
ouyunfu 发表于 2020-5-12 04:24
因为函数没有返回值,所以print(Narcissus())返回None,去掉print就好了
3Q 感谢各位大佬
页:
[1]