如何在python中打印颜色/颜色?

新的Python和Stackoverflow,我想要一点帮助。 我想在Python中打印颜色,并使用谷歌search,但有一点运气:(我一直困惑,每一次都没有工作,这是我input的代码。

answer = input ("Wanna go explore? OPTIONS : Yes or No") if answer == "no": print("Awww come on,dont be like that,lets go!") elif answer == "yes": print ("Great! Lets go!") else: print("Whats that? i couldn't hear you!") 

现在,我想要有选项着绿色和是的着色蓝色和没有着色的红色。 这个怎么会实现呢?

如果你想在IDLE shell中打印颜色,那么使用ASCI转义码的回答将会帮助你,因为它没有实现这个功能。

有一个特定于IDLE的黑客攻击,可以直接写入PyShell对象,并指定IDLE已经定义的文本标签,例如默认显示为绿色的"STRING"

 import sys try: shell = sys.stdout.shell except AttributeError: raise RuntimeError("you must run this program in IDLE") shell.write("Wanna go explore? ","KEYWORD") shell.write("OPTIONS","STRING") shell.write(" : ","KEYWORD") shell.write("Yes","DEFINITION") shell.write(" or ","KEYWORD") shell.write("No","COMMENT") answer = input() 

在IDLE中运行将导致此提示:

在这里输入图像说明

以下是所有有效标签的列表:

 print("here are all the valid tags:\n") valid_tags = ('SYNC', 'stdin', 'BUILTIN', 'STRING', 'console', 'COMMENT', 'stdout', 'TODO','stderr', 'hit', 'DEFINITION', 'KEYWORD', 'ERROR', 'sel') for tag in valid_tags: shell.write(tag+"\n",tag) 

请注意, 'sel'是特殊的,它代表被选中的文本,所以一旦点击了其他东西,它就会被取消选择。 它也可以用来启动选择复制的文本。

检查出curses模块。 这将取代print语句,并让您完全控制屏幕上的文本位置和属性。

如果您只是想要在终端中打印ansi颜色的简单而直接的方法,您可以查看ansicolor软件包模块 :

通过点安装

 $ pip install ansicolors 

使用片段

 from colors import red, green, blue print red('This is red') print green('This is green') print blue('This is blue') from colors import color for i in range(256): print color('Color #%d' % i, fg=i) 

关于pip的注意事项

点是一个Python包管理器。 如果您没有安装pip ,可以使用easy_install pip安装

如果您随后发现您没有easy_install ,请下载: http : //peak.telecommunity.com/dist/ez_setup.py并执行以下操作:

 python ez_setup.py easy_install pip 

windows命令外壳的颜色

上面的ansi颜色在windows命令行中不适用。 试着看看这个活跃状态的代码片段

如果您使用的是支持ANSI转义序列的终端和/或外壳程序,则应如下所示:

 print("Blah blah \033[0;32mthis part will be green\033[00m blah blah.") print("Blah blah \033[0;31mthis part will be red\033[00m blah blah.") 

我可以确认它在Linux上的bash工作。 有关更多详细信息,请参阅ANSI转义代码的维基百科页面 ,其中包括一个描述不同字符序列/值的影响的综合表。 我不主张这是一个规范的解决方案,但它可能已经足够您的目的。

如果要以彩色打印到终端,则必须使用正在使用的终端的转义码。 对于unix / linux系统,您可以使用curses模块 – 或直接使用bash颜色代码作为输出字符串的一部分。 根据这个问题,在windows中似乎没有一个简单的方法。