2016-11-02 76 views
1

我有这样的代码终端颜色更改在Python

import sys 
#Jordan Run Game 
class Character(): 

    def __init__(self, role): 
    print "\033[91m Warrior \033[96m Mage" 
    charRole = raw_input() 

    if charRole == "Warrior": 
     self.role = "Warrior" 
    elif charRole == "Mage": 
     self.role = "Mage" 
    elif charRole == "Rouge": 
     self.role = "Rouge" 
    elif charRole == "Healer": 
     self.role = "Healer" 
    else: 
     sys.exit() 

    print "You chose %s" % self.role 

character = Character(role = "") 

的颜色发生变化,但由于某些原因,所有的颜色变化。

例如,法师是蓝色的,之后的每一个文字也是如此。

enter image description here

+1

的ANSI转义序列只能告诉从哪里开始* *颜色。有逃脱告诉终端回到默认颜色。在任何情况下,都有一些模块可以自动执行此操作,因此您无需处理任何转义序列。 – Bakuriu

+0

请参阅http://stackoverflow.com/questions/287871/print-in-terminal-with -colors-使用-蟒 –

回答

1

您需要终止颜色

'\033[0m' 

所以要

print "\033[91m Warrior \033[96m Mage\033[0m"