控制 - 在Python代码中的Z.

时间:2016-02-26 05:47:34

标签: python-3.x python-idle

在IDLE中,没有明确的屏幕,在阅读论坛后,最好的方法显然是打印了大量的“\ n”。然而,在玩IDLE之后,我发现了一个。当我的游戏在使用print语句打印出指令后等待输入时,我没有输入任何有用的字符,而是输入了'control-z',IDLE开始逐个删除print语句显示的文本。

我的主要问题是,如何在代码中手动输入'control-z',以便我可以利用此功能?

如果你对我的故事感到困惑,这里有一些示例代码并通过点击control-z自己尝试。

print("Some Text")
print("More Text")
input("The Input (Hit Control - Z Here):")

1 个答案:

答案 0 :(得分:1)

^ Z有点乱。 ascii控件char ^ D通常被解释为EOT,传输结束,在Unix和许多其他系统上意味着文件结束,关闭应用程序。 Ascii ^ Z意味着被解释为SUB,替代,无论这意味着什么。编辑们将其用作UNDO(意味着撤消^ X切割)。 Microsoft(以及其他一些旧系统)至少有时会将^ Z解释为文件末尾,效果与* n上的^ D相同。

Windows控制台在^ Z后关闭文本应用程序。 ^ D传递给应用程序。 IDLE作为跨平台应用程序,在^ D上关闭。 IDLE用于关闭Windows上的^ Z,但现在,对我来说,它只会删除提示。 (我不知道这个替代方案是否有意。)我没有看到您报告的渐进式删除。您运行的操作系统和Python版本是什么?

回答你的主要问题:你不能。 input通常用于赋值语句:string = input('prompt')。模仿输入语句的方法是直接分配用户输入':s = 'simulated user input'。但是,对于被管理输入窗口的程序截获并且从未发送到python程序的字符,这不起作用。

IDLE的Shell通常模仿Python的交互式控制台。后者(至少在Windows上)使除当前输入之外的所有内容都是只读的。壳牌跟随套房。在执行用户代码方面,模仿尤其严格。在IDLE中测试的用户代码应该在没有IDLE的情况下在Python中运行。当Python不能时,IDLE清除交互式shell以响应用户代码是错误的。

对于编辑器和输出窗口,^ A(全选)后退退格(删除),删除或^ X(剪切)会清除窗口。

但是,Shell确实拥有比许多(大多数?全部?)控制台和菜单系统更多的编辑命令。允许这些添加,因为它们仅是交互式的,不能从用户代码访问。已经有各种提议和补丁来清除部分或全部shell窗口。 https://bugs.python.org/issue6143有一些讨论和建议。