鱼C论坛

 找回密码
 立即注册
查看: 2435|回复: 6

[已解决]为什么总是有个none输出呢?

[复制链接]
发表于 2020-12-20 22:28:27 | 显示全部楼层 |阅读模式

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

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

x
def num(n):

    while n:
        if n >= 2:
            print(n % 2)
        
        else:
            print(n)
            break
        
        n = n // 2
print(num(12))
最佳答案
2020-12-20 22:46:51


因为你定义的 num 函数没有设置 return 返回值,Python 会默认将返回值设置为 None

则当你调用 num(12) 会返回你设置的返回值,而你的返回值是None ,所以最后一个 print 函数打印了一个 None

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-20 22:33:43 | 显示全部楼层
因为最后要打印num(12)这个函数,但是这个没有返回值,所以打印None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-20 22:37:26 | 显示全部楼层
因为你在函数里面已经有了print,那么在最后一行你还去print(num(12))那么自然是输出none(空气了),直接num(12)就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-20 22:46:51 | 显示全部楼层    本楼为最佳答案   


因为你定义的 num 函数没有设置 return 返回值,Python 会默认将返回值设置为 None

则当你调用 num(12) 会返回你设置的返回值,而你的返回值是None ,所以最后一个 print 函数打印了一个 None

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

使用道具 举报

发表于 2020-12-21 00:24:45 | 显示全部楼层
        这一句
print(num(12))
        改为
num(12)
、     就不会有 None 了。
        函数 num() 本来就没有返回值,你却要打印函数值,结果自然就只能打印出一个  None 了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 08:27:35 | 显示全部楼层
函数没有返回值return ,修改代码如下
def num(n):

    while n:
        if n >= 2:
            n % 2

        else:
            return n
            break

        n = n // 2

print(num(2))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 11:52:55 | 显示全部楼层
感觉里面加个while没啥用啊
直接这样不就行了
def num(n):
        if n<2:return None
        return (n//2,n%2)
        #我看到会求余 应该是判断奇偶 所以返回了一个元组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 00:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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