Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 控制台彩色文本更改字符串长度_Python_Colorama - Fatal编程技术网

Python 控制台彩色文本更改字符串长度

Python 控制台彩色文本更改字符串长度,python,colorama,Python,Colorama,在窗户里, 名为colorama的彩色控制台文本模块会更改颜色,但也会更改字符串长度 我如何避免这种情况 我的代码: from colorama import * #Not only colorama init(convert=True) my_text = Fore.LIGHTCYAN_EX+"Hello World!" print(mytext, len(my_text)) #Output: Hello World! 17 所以我想要12个长度,但模块又增加了5个字符。这是因为要添加颜

在窗户里, 名为
colorama
的彩色控制台文本模块会更改颜色,但也会更改字符串长度

我如何避免这种情况

我的代码:

from colorama import * #Not only colorama
init(convert=True)

my_text = Fore.LIGHTCYAN_EX+"Hello World!"
print(mytext, len(my_text))

#Output: Hello World! 17

所以我想要12个长度,但模块又增加了5个字符。

这是因为要添加颜色,他们在字符串的开头添加隐藏字符,告诉显示它的东西使用颜色。通过如下方式打印文本,可以查看文本的实际值:

from colorama import * #Not only colorama
init(convert=True)

my_text = Fore.LIGHTCYAN_EX+"Hello World!"
print(repr(my_text), len(my_text))
它将输出
'\x1b[96mHello World!'17


如果您想继续获取文本的长度,那么最好将其存储在变量中为“Hello World!”仅在显示时添加Fore.LIGHTCYAN_EX

这是因为您已使用
Fore.LIGHTCYAN_EX+…
将字符添加到字符串中。使用颜色可以获得12个长度吗?您可以创建自己的ColoredText字符串类,将文本字符与指定给它们的颜色分开。但是,它们的行为基本上类似于常规字符串rwise(例如关于值
len()
returns)。回复延迟,但我想在我的roguelike控制台游戏中添加彩色字符。当我使用颜色模块时,它会破坏我的游戏。我可以避免这种情况吗?