rank | vote | view | answer | url |
---|---|---|---|---|
44 | 2195 | 1299936 | 45 | url |
怎么样用Python在终端里输出带颜色的文本?最好的代替块字符的unicode字符是什么?(What is the best Unicode symbol to represent a solid block?这句话没理解)
这依赖于你用哪种操作系统.最常用的方法就是输出ANSI转义序列.例如,下面的:
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
可以这么用上面的代码:
print bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC
这种方法适合OS X,linux和windows系统.还有一些其他的ansi代码可以设置颜色,消除光标或者其他.
如果想要应用更复杂的功能(听起来像是如果你正在写一个游戏),你应该看看"curses"模块,它包含了许多关于次部分复杂操作.Python Curses HowTO可以作为好的介绍.
如果你不使用拓展的ASCII(比如不是一个PC),#
或者@
可能是你最好的选择.如果你用的是IBM扩展ascii字符设置,你还可以有更多的选择.176,177,178和219是"块字符"
一些现代的基于文本的程序,像"Swarf Fortress",显示的文本使用图像模式,而用的字体也是传统的计算机字体的图像.你可以在Dwarf Fortress Wiki找到你可以用的字符.
Text Mode Demo Contest 也有许多资料可供参考.
我想可能有点跑题了.我在设计一个史诗级别的基于文本的冒险游戏.祝你好运!
怎么就没人提Python termcolor module.用法相当简单:
from termcolor import colored
print colored('hello', 'red'), colored('world', 'green')
虽然有点简单,但是对于游戏程序和你想要的"colored blocks"来说足够了.