You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在打印的字符串内嵌入调用函数的输出内容

问题原因

你的代码报错核心是world()函数没有返回可拼接的字符串:函数内部的print("World!")只会直接把内容输出到控制台,没有显式写return的Python函数默认返回None,你尝试把字符串和None拼接自然会触发类型错误。

最简单的实现方案

方案1:修改函数返回字符串(最推荐,99%的场景用这个就行)

把函数里的print换成return,让函数调用后返回你需要的字符串,就可以直接嵌入打印语句了:

def world():
    # 把print改成return,返回字符串而不是直接打印
    return "World!"

# 写法1:用加号拼接
print("Hello " + world())

# 写法2:更推荐的f-string写法,可读性更高,不需要手动处理类型
print(f"Hello {world()}")

运行后会直接输出Hello World!,符合你的预期。

方案2:无法修改原函数时,捕获打印输出作为字符串

如果world函数是你没法修改的第三方代码,必须获取它打印的内容,可以用临时捕获标准输出的方式实现:

import io
import sys

def world():
    print("World!")

# 临时把标准输出重定向到内存缓存
buffer = io.StringIO()
original_stdout = sys.stdout
sys.stdout = buffer

try:
    # 调用函数,它的所有打印内容都会写入缓存
    world()
finally:
    # 无论调用是否报错,都恢复原来的标准输出
    sys.stdout = original_stdout

# 提取缓存的内容,strip去掉print自带的末尾换行符
world_output = buffer.getvalue().strip()

print("Hello " + world_output)

内容的提问来源于stack exchange,提问作者TG Imagine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:36:04