鱼C论坛

 找回密码
 立即注册
查看: 969|回复: 8

[已解决]代码写的不好,想问下,最后None怎么去掉

[复制链接]
发表于 2020-5-12 00:01:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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())
最佳答案
2020-5-12 07:53:31
多加行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())
建议这种 因为这种是返回水仙花数的,而第一种函数返回的是空,只是打印了水仙花数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-12 00:01:44 | 显示全部楼层
100-999之间的水仙花数是:153        370        371        407        None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 04:24:18 | 显示全部楼层
因为函数没有返回值,所以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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 07:38:50 From FishC Mobile | 显示全部楼层
函数里最后一行加return ''
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 07:53:31 | 显示全部楼层    本楼为最佳答案   
多加行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())
建议这种 因为这种是返回水仙花数的,而第一种函数返回的是空,只是打印了水仙花数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 10:39:39 | 显示全部楼层
这个函数本来就不需要返回值,何必画蛇添足加上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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 13:35:53 | 显示全部楼层
最后一行把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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-12 17:14:52 | 显示全部楼层
ouyunfu 发表于 2020-5-12 04:24
因为函数没有返回值,所以print(Narcissus())返回None,去掉print就好了

3Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-12 17:15:28 | 显示全部楼层
感谢各位大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表