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

Python 3:如何将带换行的ASCII地图存入变量并正确输出

解决Python ASCII地图换行存储问题

你当前的问题是:用print()能正常显示带换行的ASCII地图,但把print()赋值给变量时,不仅会提前输出内容,调用变量还无法正确显示换行。核心原因是你误将print()的返回值(None)赋值给了变量,且没有正确拼接带换行的字符串。

正确的解决方式

方式1:用格式化字符串拼接换行符

直接将所有地图行和提示文本用\n拼接成一个完整字符串,存入变量后,调用print()即可输出带换行的效果:

north_exit = ' ___|   |___'
north_no_exit = ' ___________'
south_exit = ' ```|  |``` '
mid_no_exit = '|           |'
top_WandE_exit = '\u2143           L'
top_W_exit = '\u2143           |'
top_E_exit = '|           L'
mid_WandE_exit = '    (\u00B0.\u00B0)      '
mid_W_exit ='    (\u00B0.\u00B0)   |'
mid_E_exit ='|   (\u00B0.\u00B0)    '
lower_W_exit = '\u02E5           |'
lower_WandE_exit = 'T           T'
lower_E_exit = '|           T'
current_room = 'the crew quarters'

# 拼接成带换行的完整字符串
a1_map = f"{north_no_exit}\n{top_E_exit}\n{mid_E_exit}\n{lower_E_exit}\n{south_exit}\nYou are in {current_room}."

# 调用print输出地图
print(a1_map)

方式2:用列表存储行内容,再拼接换行符

如果需要动态调整地图行的顺序或内容,推荐先将所有行存入列表,再用'\n'.join()方法拼接成字符串,更灵活易维护:

north_exit = ' ___|   |___'
north_no_exit = ' ___________'
south_exit = ' ```|  |``` '
mid_no_exit = '|           |'
top_WandE_exit = '\u2143           L'
top_W_exit = '\u2143           |'
top_E_exit = '|           L'
mid_WandE_exit = '    (\u00B0.\u00B0)      '
mid_W_exit ='    (\u00B0.\u00B0)   |'
mid_E_exit ='|   (\u00B0.\u00B0)    '
lower_W_exit = '\u02E5           |'
lower_WandE_exit = 'T           T'
lower_E_exit = '|           T'
current_room = 'the crew quarters'

# 将每一行存入列表
map_lines = [
    north_no_exit,
    top_E_exit,
    mid_E_exit,
    lower_E_exit,
    south_exit,
    f"You are in {current_room}."
]

# 用换行符拼接所有行
a1_map = '\n'.join(map_lines)

# 输出地图
print(a1_map)

为什么之前的写法无效?

  • 你将print(...)赋值给a1_map,但print()函数的返回值是None,所以a1_map实际是None,且print()会立即执行输出,导致“提前输出内容”。
  • 若不用print()直接存储逗号分隔的字符串,Python会将其视为元组,调用时只会显示元组结构,不会自动解析换行符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:15:47