我用了
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()
输出:
+
-+
+-+
-+-+
+-+-+