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

Python逐字符打印函数优化:解决特殊字符与换行保留问题

解决方法

你的原函数存在两个核心问题:

  • 末尾的print未执行调用(Python3中需写成print()才会触发换行),导致调用函数后不会自动换行;
  • 特殊字符显示问题并非函数本身的缺陷,Python3默认支持Unicode字符(包括撇号、连字符等),但我们可以优化函数确保兼容性,同时保留原文本的换行格式。

修改后的基础版函数

import sys
import time

def slow(text, delay=0.02):
    for c in text:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(delay)
    # 调用print()实现每次调用后的自动换行
    print()

# 测试包含特殊字符和换行的文本
slow("Hello! I'm a text game character—let's test line breaks.\nThis is a new line.")

针对长文本的优化版(可选)

如果是较长的游戏文本,可以在标点或换行处增加停顿,提升阅读体验:

import sys
import time

def slow(text, delay=0.02, pause_delay=0.5):
    # 定义需要延长停顿的字符
    pause_chars = {'.', '!', '?', '\n'}
    for c in text:
        sys.stdout.write(c)
        sys.stdout.flush()
        # 遇到标点或换行时用更长的停顿时间
        time.sleep(pause_delay if c in pause_chars else delay)
    print()

修改后效果:

  • 所有Unicode字符(包括撇号、连字符、中文等)均可正常显示
  • 每次调用slow()后自动换行
  • 原文本中的\n换行符会被完整保留并输出
  • 长文本在标点处的停顿更符合自然阅读节奏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:22:07