python中的三角形数字模式
我正在用python编写模式,但我似乎无法改变这种模式python中的三角形数字模式,python,python-3.x,Python,Python 3.x,我正在用python编写模式,但我似乎无法改变这种模式 print("\nPattern C") for c in range(1, 7 + 1): for cc in reversed(range(1, c)): print(cc, end = '') print('') 这将产生: Pattern C 1 21 321 4321 54321 654321 但我希望它能输出: 1 21 321 4321 54321 6543
print("\nPattern C")
for c in range(1, 7 + 1):
for cc in reversed(range(1, c)):
print(cc, end = '')
print('')
这将产生:
Pattern C
1
21
321
4321
54321
654321
但我希望它能输出:
1
21
321
4321
54321
654321
有人能帮忙吗?您必须以某种方式添加空格。一种方法是从一个固定值中减去当前计数器,然后打印那么多空格
for c in range(1, 7 + 1):
print(' '*(7-c), end='')
for cc in reversed(range(1, c)):
print(cc, end = '')
print('')
正如Aaron Hall在评论中提到的,还有其他方法可以产生这种输出。例如,使用一个print()
(和num
表示上面的7+1
值,将反转()
替换为不同的范围()
对象):
这就是我要做的(同时尽可能少地修改代码)
我没有做太多更改,只是添加了字符串格式,并添加了“+1”
这将使用字符串格式对每个字符串进行右对齐。
%10s
将单词对齐到10个字符的空格结尾。我会在每行后面使用格式字符串方法来添加空格填充
print("\nPattern C")
for c in range(1, 7+ 1):
line=""
for cc in reversed(range(1, c)):
line+=str(cc)
print('{:>6}'.format(line))
print("\nPattern C")
maxLength = 7
for c in range(1, maxLength + 1):
s = ''
for cc in reversed(range(1, c + 1)):
s += str(cc)
print(("%" + str(maxLength) + "s")%s)`
print("\nPattern C")
for c in range(1, 7+ 1):
line=""
for cc in reversed(range(1, c)):
line+=str(cc)
print('{:>6}'.format(line))