python3中return和print的问题

def print_once(a):
    print(a)
b=print_once(123)
#print(b)
#print(print_once(123))

结果:

 123

def print_once(a):
    print(a)
b=print_once(123)
print(b)
#print(print_once(123))

结果:

 123
 None

就想问下,为什么输出的是None?

阅读 3.8k
2 个回答

因为print_once函数并没有返回值,只是执行了一个print的操作

而你的b是调用print_once函数的返回值,所以print(b)的结果就是None

如果想要print(b)实现输出123的效果你需要这样做

def print_once(a):
    print(a)
    return a
b=print_once(123)
print(b)
新手上路,请多包涵

Python的函数在没有返回值的情况下,默认返回None

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题