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

Python游戏开场打字机效果异常:列表调用时无法逐字符输出

打字机文本输出问题修复

你的代码问题出在multi=True分支里——直接一次性输出整个列表元素,没有对每个元素做逐字符的打字机处理,导致无法实现预期的缓慢输出效果。

修复方案是把逐字符输出的逻辑抽成可复用的内部函数,在处理列表时,对每个元素单独执行逐字符输出:

import sys
from time import sleep

test_list = ['obj 1', 'obj 2']

def writer(text, multi=True):
    # 处理单段文本的逐字符打字机输出
    def type_single(segment):
        for char in segment:
            sleep(0.05)
            sys.stdout.write(char)
            sys.stdout.flush()
        sys.stdout.write('\n')  # 每段输出完换行,可根据需求调整
        sys.stdout.flush()

    if multi:
        for item in text:
            type_single(item)
            sleep(1)  # 元素之间的停顿时间
    else:
        type_single(text)

writer(test_list)

说明

  • 内部函数type_single负责单段文本的逐字符输出,避免重复代码,逻辑更清晰。
  • 遍历列表时,每个元素都会被逐字符打印,元素之间保留1秒停顿,符合开场动画的节奏需求。
  • 移除了原代码中多余的obj索引变量,直接用for item in text遍历元素更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:25:16