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

Python readline模块退格删除整行问题及解决方案诉求

解决Python readline退格删除提示符的问题

问题原因

你通过print()手动输出了user $提示符,随后调用无参数的input(),这种方式会让readline模块将提示符文本也纳入输入缓冲区,导致退格操作会连同提示符一起删除。

可行解决方案

方案1:直接传入提示符给input()

将原本用print()输出的提示符直接作为input()的参数,readline会自动区分提示符和用户输入内容,退格仅删除用户输入的字符:

import readline

print("Welcome to Numgame, please enter a number")
m = input("user $ ")

方案2:用readline自定义提示符(适配复杂场景)

如果需要更灵活的提示符逻辑,可借助readline的set_pre_input_hook方法,确保提示符不会被计入输入缓冲区:

import readline

def show_prompt():
    print("user $ ", end="", flush=True)

# 设置输入前的钩子函数,用于打印提示符
readline.set_pre_input_hook(show_prompt)

print("Welcome to Numgame, please enter a number")
m = input("")

这里flush=True保证提示符立即输出到终端,避免延迟;input("")传入空字符串,防止系统自动添加额外提示符。


内容的提问来源于stack exchange,提问作者John Kennedy. Tech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:45:26