Change color of individual print line in Python 3.2?
本问题已经有最佳答案,请猛点这里访问。
我正在学习python 3.2中的一个基于文本的小冒险,以便练习和熟悉该语言。不管怎样,我希望这样,当某些操作发生时,打印文本的颜色会发生变化。我该怎么做呢?
例如,我希望出现的第一个文本是:
1 2 3 4 5 6 7 | if 'strength' in uniqueskill.lower(): time.sleep(3) print('As you are a Warrior, I shall supply you with the most basic tools every Warrior needs.') time.sleep(3) print('A sword and shield.') time.sleep(1) print('You have gained A SWORD AND SHIELD!') |
Colorama是一个非常好的跨平台模块,用于以不同颜色打印到终端/命令行。
例子:
1 2 3 4 5 6 7 8 9 10 | import colorama from colorama import Fore, Back, Style colorama.init() text ="The quick brown fox jumps over the lazy dog" print(Fore.RED + text) print(Back.GREEN + text + Style.RESET_ALL) print(text) |
给你:
您没有指定平台,这在这里非常重要,因为大多数将颜色文本输出到控制台的方法都是平台特定的。例如,Python附带的Curses库仅限于Unix,而ANSI代码不再适用于新版本的Windows。我能想到的最跨平台的解决方案是在Windows机器上安装并使用Curses的Windows版本。
下面是一个使用颜色和诅咒的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import curses # initialize curses stdscr = curses.initscr() curses.start_color() # initialize color #1 to Blue with Cyan background curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_CYAN) stdscr.addstr('A sword and a shield.', curses.color_pair(1)) stdscr.refresh() # finalize curses curses.endwin() |
请注意,诅咒比颜色更复杂。您可以使用它在控制台屏幕上定义几个窗口,使用绝对或相对坐标定位文本,操作键盘输入等。您可以在这里找到一个教程:http://docs.python.org/dev/howto/curses.html