坚韧柱石 发表于 2020-12-20 22:28:27

为什么总是有个none输出呢?

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:33:43

因为最后要打印num(12)这个函数,但是这个没有返回值,所以打印None

执笔画花海 发表于 2020-12-20 22:37:26

因为你在函数里面已经有了print,那么在最后一行你还去print(num(12))那么自然是输出none(空气了),直接num(12)就行

Twilight6 发表于 2020-12-20 22:46:51



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

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

jackz007 发表于 2020-12-21 00:24:45

      这一句
print(num(12))
      改为
num(12)
、   就不会有 None 了。
      函数 num() 本来就没有返回值,你却要打印函数值,结果自然就只能打印出一个None 了。

逃兵 发表于 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))

_Konglong 发表于 2020-12-21 11:52:55

感觉里面加个while没啥用啊
直接这样不就行了
def num(n):
      if n<2:return None
      return (n//2,n%2)
      #我看到会求余 应该是判断奇偶 所以返回了一个元组
页: [1]
查看完整版本: 为什么总是有个none输出呢?