使用python print打印函数返回值多一个None的问题探究

使用python print打印函数返回值多一个None的问题探究

废话少说,先上问题代码

import random

def printMatrix(n):
    count = 0
    for i in range(n):
        for j in range(n):
            print(str(random.randint(0, 1)),end=' ')
        print("\r")
            
        
def main():
    n = eval(input("Enter a number:"))
    answer=printMatrix(n)
    return answer

print(main())

输出结果为:
Enter a number:5
1 0 0 0 0
1 1 0 1 1
1 1 1 0 0
0 0 1 0 0
1 0 0 1 1
None

很明显,在我们程序输出的尾部出现了一个扎眼的 ”None“
这是为什么呢?

那我们再看看更改后的代码

import random

def printMatrix(n):
    count = 0
    for i in range(n):
        for j in range(n):
            print(str(random.randint(0, 1)),end=' ')
        print("\r")
           
        
def main():
    n = eval(input("Enter a number:"))
    answer=printMatrix(n)
    return answer

main()

输出结果如下:
Enter a number:5
1 0 0 1 1
1 1 1 0 1
1 1 1 0 1
1 1 0 1 0
0 1 0 1 0

此时结尾的 ”None“ 消失了
我们发现似乎 "None"的出现,与我们最后调用函数时有没有用print()有关
至此,我们找到了问题的根源

但是,为什么会发生这种情况呢?
我在书上找到了答案↓

在这里插入图片描述
放到我们这个题目中来说就是,print函数无论如何都会返回一个值,我们起初的printMatrix(n)函数没有return,也就是没有返回值,那么下一步的main()函数没有接收到他所传递的值,从而导致print函数没有东西来输出,从而会输出None这么个东西

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值