我正在编写一个使用colorama会有一些彩色文本的脚本,但我遇到了麻烦。我需要对某些颜色使用ANSI转义码,我想要一个渐变颜色。到目前为止,我可以使用 for 语句生成正向渐变:
for i in range(22, 27):
print(\e[35;5;i + "some text")
然而,我无法弄清楚如何制作向后渐变。我知道在BASH脚本中我可以使用 for 语句,如下所示:
for i in {22..28} {27..21} ; do echo -en "\e[35;5;${i}m \e[0m" ; done ; echo
这将产生我正在寻找的结果。我可以在Python中以相同的方式遍历范围吗?我试过了
for i in range(22, 28) (28,21,-1)
但这只是一个错误。我对Python仍然很陌生,所以我不确定我的语法是否错误,或者我是否应该尝试不同的东西。
编辑澄清
我想要实现的效果看起来与此类似: ,但文字和颜色不同。我可以制作暗光渐变,但不能在弦的中间反转它以形成明暗渐变。
更新
所以我能够达到我想要的效果,但它会产生所有颜色的渐变,而不是蓝色。我使用 colr 库实现了这个目标:
from colr import Colr as C
print(c(' '.join(out)).gradient(name='blue'))
产生这个输出:
所以我不确定我是否需要 for 语句,或者我是否只是不了解如何为文本生成这些渐变。
答案 0 :(得分:0)
如果我误解了你的问题,请原谅我,但是你只是想改变范围的顺序,如下:
for i in range(22,27): #forward
print("\e[35;5;%dm \e[0m" % i)
for i in reversed(range(22,27)): #backward
print("\e[35;5;%dm \e[0m" % i)
修改强>
如果你想要从高数字出发 - >低 - >高,一行,你可以做:
my_range = list(reversed(range(22,27))) + list(range(22,27))
for i in my_range:
print("\e[35;5;%dm \e[0m" % i)