0

我正在开发一个 Python 3 程序,该程序通过 Python Shell 从用户那里获取输入。出于某种原因,当我将信息输入外壳时(一旦输入要求提供信息......),它会用特定颜色为关键字和函数着色。

例如,如果我输入“John is blue”。它将“is”这个词着色为关键字(技术上它是,但这是字符串输入)。

我无法在谷歌上提出任何相关的信息,所以我在这里提出了这个问题。谢谢。

这是运行输入的代码。

    if __name__ == '__main__':

            global string
            string = str(input('Enter info: '))
            string = bytes(string.encode("utf-8"))
            c = cont.key_gen_01()
            c.func_01()



            run_a = obf_01()
            run_a.func_02()
           #run_a.func_03()
            run_a.func_04()

            run_a.func_05(string)

截屏:

Python 输入结果

4

3 回答 3

3

IDLE 编辑器和 Shell 窗口中的着色由 IDLE 语法着色器完成。在 Shell 中,它还为控制台提示 ('>>> ')、内部 IDLE 错误(现在极为罕见)、用户代码回溯和用户代码输出着色。(颜色都可以在“设置”对话框的“突出显示”选项卡上自定义。)因此不应在代码输入之间关闭着色器。

除非您的程序请求输入 python 代码,否则我认为着色 input() 响应是一个小错误。但是如何告诉着色器忽略它们并不明显。对于显示器,input() 提示是正常输出。除此之外,可以在提示之前输入响应。在提示前按或不按 ENTER 尝试以下操作。

import time; time.sleep(5); s = input('what??? '); print(s)

以上也适用于python,但至少在Windows控制台中,直到显示提示时我才看到该条目。

于 2019-04-05T23:39:24.857 回答
2

Pythoninput()函数不会也不能对您输入的文本的显示方式做任何事情。它只是在输入文本并按 Enter 后接收文本。相反,颜色变化由 IDLE shell 窗口应用,它实现了 Python 解释器所连接的输入和输出环境。

在突出显示时,IDLE Python shell 将所有用户输入视为 Python 源代码。这只是文本在显示器上呈现方式的变化,它不会影响从input()函数返回的字符串值。

可以充当 Python 交互式解释器的前端显示的其他环境(IDE 控制台、终端窗口、笔记本 UI 等)都可以有自己特定的文本处理方式。

于 2019-04-05T16:28:19.700 回答
0

您可以使用 python pygments 打印语法突出显示的文本 一个很好的入门方法是prompt_toolkitmoudle,它支持 pygments 和很多命令行功能

然后你可以创建一个prompt()输入,并设置 pygments 词法分析器

检查prompt_toolkit文档或https://replit.com/@CodinUser/PyShell-15以查看语法高亮输入 pygments prompt_toolkit 的实际使用

于 2021-06-18T16:50:53.677 回答