为什么IDLE的Shell颜色编码关键字在用户响应输入(提示)?

问题描述 投票:-1回答:2

我正在开发一个Python 3程序,它通过Python Shell从用户那里获取输入。出于某种原因,当我将信息输入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 input results

python python-3.x keyword python-idle
2个回答
2
投票

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

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

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

以上也适用于python,但至少在Windows控制台中,在显示提示之前我没有看到该条目。


2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.