遍历范围向前和向后 - Python

问题描述:

我正在写一个脚本,将使用colorama一些彩色文本,但我碰到了一个障碍。我需要为某些颜色使用ANSI转义代码,并且我想要渐变颜色。遍历范围向前和向后 - Python

for i in range(22, 27): print(\e[35;5;i + "some text")

但我无法弄清楚如何使向后倾斜:到目前为止,我可以通过使用声明产生正向梯度。我知道在bash脚本我可以使用声明是这样的:

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仍然很陌生,所以我不确定我的语法是错误的还是我应该尝试一些不同的东西。

编辑澄清

,我想实现将类似于这样的效果: Gradient,但文本和不同的颜色。我可以制作暗光渐变,但不能在字符串中间反转以形成明暗渐变。

更新

所以我能够实现我一直在寻找的效果但是它产生的所有颜色的渐变,而不是蓝色。我用COLR库来实现这一目标:

from colr import Colr as C print(c(' '.join(out)).gradient(name='blue'))

产生这样的输出:

bashwxplus image

所以我不知道如果我甚至需要陈述或如果我只是不理解如何产生文本的这些渐变。

原谅我,如果我误解你的问题,但你只是意味着反向的范围顺序,就像这样:

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) 
+0

是的,这将返回我正在寻找的结果,但我需要两个** **对于声明中一个〜应变克,(我认为)。我编辑了OP,添加了我想要制作的效果图片。 –

+0

我觉得现在有道理 - 看我的编辑。这是你想要的? – qbzenker

+0

是的,这正是我正在寻找的!我再次更新OP来添加我正在尝试执行的操作以及我已经实现的用于生成渐变的屏幕截图。我会将你的建议插入我的脚本并更新。感谢帮助! –