gpt4 book ai didi

python - 我可以在 python 输入缓冲区中插入可删除字符吗?

转载 作者:太空狗 更新时间:2023-10-29 21:58:52 28 4
gpt4 key购买 nike

我想自动缩进控制台应用程序的下一行,但用户需要能够将其删除。 sys.stdout.writeprint 生成不可删除的字符,我无法写入 sys.stdin(据我所知)。我本质上是在尝试智能缩进,但我只能嵌套得越来越深。关于如何爬回来有什么想法吗?

编辑:我应该注意到这是使用 IronPython 的 Windows 程序的一部分。虽然我可以做一些更奇特的事情(并且可能在未来),但我希望以很少的努力作为起点,快速获得相当愉快的体验。

最佳答案

cmd模块提供了一个非常简单的界面,用于为您的程序创建命令行界面。它可能无法在下一行的前面放置一些缓冲区字符,但是如果您正在寻找一种明显的方式让您的用户知道命令已经返回,它可以在每个行的开头提供一个类似 shell 的提示符线。如果您已经为您的程序定义了函数,那么将它们集成到处理器中就是编写一个访问该函数的处理程序的问题:

import cmd
import math

def findHpyot(length, height):
return math.sqrt(length **2 + height **2)

class MathProcessor(cmd.Cmd):
prompt = "Math>"

def do_hypot(self, line):
x = raw_input("Length:")
y = raw_input("Height:")
if x and y:
try:
hypot = findHypot(float(x), float(y))
print "Hypot:: %.2f" %hypot
except ValueError:
print "Length and Height must be numbers"

def do_EOF(self, line):
return True

def do_exit(self, line):
return True

def do_quit(self, line):
return True

if __name__ == "__main__":
cmdProcessor = MathProcessor()
cmdProcessor.cmdloop()

使用 cmd 编写交互式 shell 时要考虑的事项

  1. do_ 之后的名称是您的用户将使用的命令,因此在此示例中,可用的命令将是 hypot、exit、quit 和 help。
  2. 在不覆盖 do_help 的情况下,调用 help 将为您提供可用命令的列表
  3. 任何你想退出程序的调用都应该返回 True
  4. 如果您想处理来自函数调用的条目,比如说您希望能够处理像“hypot 3 4”这样的调用,您可以在函数调用中使用本地行变量

关于python - 我可以在 python 输入缓冲区中插入可删除字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244081/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com