Python隐藏已打印文本实现:记忆游戏5秒后清除指定输出内容问题
实现思路
- 核心原理是利用控制台的光标回退+空格覆盖逻辑隐藏已打印文本,兼容Windows、Mac、Linux全平台系统
- 同时修复你现有代码的两个逻辑漏洞:
input().upper缺少方法调用括号、答案判断条件冗余的问题
可直接运行的修改后代码
import time import os # 兼容Windows系统开启控制台特殊控制符支持 os.system('') print("Welcome to the memory game.") print("Choose difficulty level :") print("1. Easy") print("2. Medium") print("3. Hard") print("4. Very Hard") x = input("press '1' for easy, '2' for medium, '3' for hard and '4' for very hard : ") if x == '1' : print("You chose level 1, easy.") print("I will give you 3 objects and you have to type then in the correct order to gain points.") print("Not cAsE SeNSitIvE") target_text = "Ship, Money, Python" # 打印待记忆文本,end='\r'表示打印后光标回到当前行开头,不换行 print(target_text, end='\r') time.sleep(5) # 用等长空格覆盖当前行的待记忆文本,实现隐藏效果 print(" " * len(target_text), end='\r') # 换行避免后续输入提示覆盖内容 print() # 修复原代码upper未调用的bug ez = input().strip() # 优化答案判断逻辑:统一去掉所有空格、转大写后对比,无需写多分支条件 standard_ans = "SHIP,MONEY,PYTHON" user_ans = ez.replace(" ", "").upper() if user_ans == standard_ans: print("Correct") else : print("Wrong") print("The answer was : Ship, Money, Python")
可选扩展方案
如果你需要等待5秒后清空整个控制台所有内容,而不是只隐藏待记忆的单行文本,可以把上面的空格覆盖逻辑替换为跨平台清屏代码:
# 自动判断系统类型执行对应清屏命令 os.system('cls' if os.name == 'nt' else 'clear')
内容的提问来源于stack exchange,提问作者TrexS.
相关产品推荐
相关产品推荐

