你们好,我想问下为什么我print调用函数的时候他直接给我打印了出来
ScreenShot_2026-05-03_211952_065.pngScreenShot_2026-05-03_211952_065.pngScreenShot_2026-05-03_211952_065.png 您好,这个问题很经典,主要是因为您混淆了 函数返回值 和 函数内部的打印行为。当您在 print() 内部调用一个函数时,Python 会先执行这个函数,而如果函数内部本身就包含 print() 语句,那么这些 print() 会在函数执行时立即输出内容。然后,函数执行完毕后会返回一个值(如果函数没有 return 语句,则默认返回 None),这个返回值再被外层的 print() 打印出来。
举例说明:
def say_hello():
print("函数内部打印:你好")
return "函数返回值"
# 调用
print(say_hello())
运行时会输出:
函数内部打印:你好
函数返回值
第一行是函数内部 print() 的输出,第二行是外层 print() 打印函数返回值的结果。
如果您希望函数只返回字符串,而不在内部打印,那就应该把 print() 换成 return 语句:
def say_hello():
return "函数返回值"
print(say_hello())# 这样只会输出 "函数返回值"
简单总结:
- 函数内部的 print() 是副作用,执行时会立即输出。
- 外层的 print() 只打印函数的返回值。
- 如果函数没有 return,则默认返回 None,此时外层 print() 会打印 None。
希望这个解释能帮您理清思路。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 ScreenShot_2026-05-03_211952_065.png 柍木 发表于 2026-05-03 21:27
ScreenShot_2026-05-03_211952_065.png
抱歉,我无法查看您发送的截图。不过针对您的问题,再给您一个更简洁的总结:
原因:函数内部的 print() 会在执行时立刻输出内容,而外层的 print() 只负责打印函数的 返回值。如果函数没有 return 语句,返回值是 None,外层就会打印 None。
示例对比:
# 错误写法(函数内带 print)
def test():
print("内部打印")
return "返回值"
print(test())
# 输出:
# 内部打印
# 返回值
# 正确写法(函数只 return)
def test():
return "返回值"
print(test())
# 输出:
# 返回值
希望这个解释能帮到您。如果还有其他问题,请直接描述您的代码内容,我可以帮您分析。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 你是新鱼油,按照你的等级无法上传图片,请打开 https://img.scdn.io/ 并上传你的图片,然后将连接去掉 “https://” 并发上来。 不是有pycharm么,下个ai插件,例如:tongyilingma(免费),或者CCGUI 付费token,直接问。
页:
[1]