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

如何在Python 3中清除控制台多行内容?(俄罗斯方块开发场景)

解决方案

一、指定清除20行(优先方案)

你原来的清除代码问题在于print多参数会自动添加空格,导致转义序列失效。正确做法是结合光标上移和清除当前行的ANSI转义序列:

修改清除部分的代码为:

# 清除之前打印的20行
for i in range(20):
    # \033[F 光标上移一行;\033[K 清除从光标到行尾的内容
    print("\033[F\033[K", end="")

原理:循环20次,每次将光标移到上一行并清除该行所有内容,最终精准清除之前输出的20行游戏区域。

二、清除整个屏幕(备选方案)

如果指定行数清除在PyCharm终端中仍有问题,可以直接清除整个屏幕,适合Mac环境的代码如下:

import os
from time import sleep

# blocks is a 20x10 array filled with 0s and 1s

running = True

while running:
    # 打印游戏区域
    for y in range(20):
        for x in range(10):
            print('[#]' if blocks[y][x] == 1 else ' . ', end='')
        print()
    sleep(1)
    
    # 清除整个屏幕
    os.system('clear')

注意事项

在PyCharm中使用ANSI转义序列时,需要确保终端支持:

  • 打开PyCharm设置(Preferences)
  • 找到Tools > Terminal
  • 勾选Emulate terminal in output console(旧版本选项名称可能类似)
  • 重启PyCharm终端后生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:42:48