为何返回的结果中还有一个None?
本帖最后由 lzb1001 于 2023-5-19 10:18 编辑def add(num1, num2):
result = num1 + num2
print(result)
>>> print(add(1, 2))
3
None
>>> point = add(1, 2)
3
>>> point
>>> print(point)
None
为何返回的结果中会有一个None?
这是因为函数 add() 并没有显式地返回任何值,所以当你在调用 add() 函数并打印它的返回值时,实际上打印的是Python默认的返回值 None 。如果你想要返回 result 的值,你需要在函数中使用 return 语句,例如:
def add(num1, num2):
result = num1 + num2
return result
print(add(1, 2))
这将会输出:
3
在这个例子中, add() 函数将会返回计算结果,而不会打印它。 isdkz 发表于 2023-5-19 10:18
这是因为函数 add() 并没有显式地返回任何值,所以当你在调用 add() 函数并打印它的返回值时,实际上打印的 ...
def add(num1, num2):
return (num1 + num2)
print(num1 + num2)
>>> add(1, 2)
3 # 上面两行代码只执行一行?
而颠倒顺序后:
def add(num1, num2):
print(num1 + num2)
return (num1 + num2)
>>> add(1, 2)
3
3 函数结尾如果没有return ...,会默认返回一个None。 allen-xy 发表于 2023-5-19 12:15
函数结尾如果没有return ...,会默认返回一个None。
能结合上楼层的例子说说? 本帖最后由 allen-xy 于 2023-5-21 11:29 编辑
lzb1001 发表于 2023-5-19 12:20
能结合上楼层的例子说说?
def add(x, y):
result = x + y
print(result)
print(add(1,2))
3
None
def add2(x, y):
result = x + y
print(result)
return "加法操作完成"
print(add2(1,2))
3
加法操作完成
这看下函数add和函数add2的区别,就明白了。
函数add,没有手动指定return,返回了函数体中的print语句的加法结果,还默认返回了None(这个就是函数的默认return)。
函数add2,手动指定return,返回了函数体中的print语句的加法结果,还返回了return语句中的字符串。
print(add(1, 2)),相当于执行了两次print,第一次是函数体中的print,第二次是函数的return结果(因为函数体中没有写return,所以返回了默认return结果:None)。
页:
[1]