利用python格式化输出编写一个程序,要求输出右对齐,我写了一个程序但是输出的时候只能输出一行
类似右下角的直角三角形,双层循环遍历,每执行一次外循环,换一次行即可。
n = 5
for i in range(1,n+1):
for j in range(n-i):
print(" ",end="")
for j in range(i*2-1,0,-2):
print(f"{j:>3}",end="")
print()
lst =['1']
row = 7
for i in range(1,row+1):
st = " ".join(lst)
print(f"{st:>{2*row+1}}")
lst.insert(0, str(2*i+1))
是这样吗?
def fun(n):
for i in range(1,2*n,2):
print('\t'*(n-int((i+1)/2)),end='')
for j in range(i,0,-2):
print(f'\t{j}',end='')
print()
fun(5)
结果:
def prn(n):
str_n = lambda x:' '.join(map(str,range(x*2-1,0,-2)))
max_n = len(str_n(n))
for i in range(1,n+1):
print(f'{str_n(i):>{max_n}}')
prn(6)
prn(10)
输出:
1
3 1
5 3 1
7 5 3 1
9 7 5 3 1
11 9 7 5 3 1
1
3 1
5 3 1
7 5 3 1
9 7 5 3 1
11 9 7 5 3 1
13 11 9 7 5 3 1
15 13 11 9 7 5 3 1
17 15 13 11 9 7 5 3 1
19 17 15 13 11 9 7 5 3 1