Python 在for循环中反转方程式

Python 在for循环中反转方程式,python,python-3.x,Python,Python 3.x,我正试图把破折号的方程式颠倒过来 for x in range(1,6): for slashes in range(1,(x +1),+5): print("X" +("-" * hello), end = '') print("X " + "X" + ("/" * x), end = '') print(("-" * x) +("X")) 输入- xxx XXXXXX X---X X/-X X---X X//--X X---X X

我正试图把破折号的方程式颠倒过来

for x in range(1,6):
    for slashes in range(1,(x +1),+5):
        print("X" +("-" * hello), end = '')
        print("X  " + "X" + ("/" * x), end = '')
        print(("-" * x) +("X")) 
输入-

xxx XXXXXX X---X X/-X X---X X//--X X---X X///---X X---X X////----X X---X X/////-----X
预期产出-

xxx xxxxxx X---X X/-----X X---X X//----X X---X X///---X X---X X////--X X---X X/////-X

看起来您需要的是一个由
“X--X”
标记分隔的“进度条”。按所需行打印:

xxx
xxxxxx    # I assume this is header?
X---X     # first token
X/-----X  # one slash
X---X
X//----X  # two slashes
X---X
X///---X  # three slashes
X---X
X////--X  # four slashes
X---X
X/////-X  # five slashes ends the output.
因此,每次迭代都应该有
num\u斜杠
num\u破折号
,其中
num\u斜杠
始终是一个常数
bar\u length
减去斜杠数

bar_length = 6
for num_slashes in range(1, 6):  # 1-5
    num_dashes = bar_length - num_slashes
    result = "/" * num_slashes + "-" * num_dashes
    result = "X" + result + "X"
# or:
results = ["X" + "/" * i + "-" * (6-i) + "X" for i in range(1, 6)]
然而,这忽略了你的头和你的标记,所以让我们散布它们

import itertools

header = ["xxx", "xxxxxx"]  # I don't know how you're generating that, so I assume it's static?
tokens = itertools.repeat("X---X")  # infinite sequence of "X---X"
final_result = itertools.chain.from_iterable([header, *zip(tokens, results)])
final_result
是一个如下所示的列表:

['xxx',
 'xxxxxx',
 'X---X',
 'X/-----X',
 'X---X',
 'X//----X',
 'X---X',
 'X///---X',
 'X---X',
 'X////--X',
 'X---X',
 'X/////-X']
因此,要像上面那样将其打印为一行,我们必须使用
'.join

print(' '.join(final_result))

请提供输入和预期输出您能添加一个示例吗?这样更容易理解你的问题。这不是我从你的代码中得到的输出。还有什么是
你好
(我想是3)?另外,范围(1,x+1,5)中斜杠的
是一个奇怪的构造,因为当x小于6时,它不作为for循环工作。我根本不理解这个问题。你说第一个字符串是输入,但是你的循环除了数字
hello
(那是什么?)之外,没有使用任何输入参数。@Barmar同样,我不能理解这个问题的头绪,所以我产生了一个新的算法来适应(如果只是因为它听起来很有趣)