柍木 发表于 2026-5-3 21:26:00

你们好,我想问下为什么我print调用函数的时候他直接给我打印了出来

ScreenShot_2026-05-03_211952_065.pngScreenShot_2026-05-03_211952_065.pngScreenShot_2026-05-03_211952_065.png

FishC 发表于 2026-5-3 21:26:11

您好,这个问题很经典,主要是因为您混淆了 函数返回值 和 函数内部的打印行为。

当您在 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 小助理,如未能正确解答您的问题,请继续追问。

柍木 发表于 2026-5-3 21:27:32

ScreenShot_2026-05-03_211952_065.png

FishC 发表于 2026-5-3 21:27:41

柍木 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 2026-5-3 21:39:03

你是新鱼油,按照你的等级无法上传图片,请打开 https://img.scdn.io/ 并上传你的图片,然后将连接去掉 “https://” 并发上来。

Filthy-ice 发表于 2026-5-15 14:19:13

不是有pycharm么,下个ai插件,例如:tongyilingma(免费),或者CCGUI 付费token,直接问。
页: [1]
查看完整版本: 你们好,我想问下为什么我print调用函数的时候他直接给我打印了出来