我用了


n = 5
for i in range (n) :
 for j in range (i+1) :
  print("+" , end="")
  print()

但是代码在第1行中打印+-,但我想打印+,然后打印-+然后+-+

请给我建议,我在这个"for type"的初学者,如果Elif,我开始开始,但突然间,分配更改为“我没有基本”(我的意思是我不知道如何打印模式,唯一的想法是该打印是第一行中的+。我想要第二行中的-

分析解答

您可以做这样的事情:

lines = 10
pattern = '+-'
for i in range(1, lines+1):
    s = pattern * int((i+1)/2)
    # i=1 --> (i+1)/2 = 1 --> s = '+-', need to remove last char
    # i=2 --> int((i+2)/2) = 1 --> s = '+-', need to reverse the order of the string
    if len(s) > i: # if the length of s is bigger than the line number
        print(s[:-1])
    else:
        print(s[::-1])

如果您必须使用nested for结构,则可以做类似的事情:

n = 5
for i in range (1, n+1) :
    for j in range (int((i+1)/2)) :
        print('-' if i%2 == 0 or j > 0 else '', end="+")
    print()

输出:

+
-+
+-+
-+-+
+-+-+