鱼C论坛

 找回密码
 立即注册
查看: 2904|回复: 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

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-20 22:33:43 | 显示全部楼层
因为最后要打印num(12)这个函数,但是这个没有返回值,所以打印None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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


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

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

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 00:24:45 | 显示全部楼层
        这一句
  1. print(num(12))
复制代码

        改为
  1. num(12)
复制代码

、     就不会有 None 了。
        函数 num() 本来就没有返回值,你却要打印函数值,结果自然就只能打印出一个  None 了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  2.     while n:
  3.         if n >= 2:
  4.             n % 2

  5.         else:
  6.             return n
  7.             break

  8.         n = n // 2

  9. print(num(2))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 22:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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