python格式化输出

img


利用python格式化输出编写一个程序,要求输出右对齐,我写了一个程序但是输出的时候只能输出一行

用双层循环遍历,每行前面补空格即可。
你题目的解答代码如下:

n = 5
for i in range(1,n+1):       #i 从1循环到n
    for j in range(n-i):     #每行前面补n-i组空格
        print("   ",end="")    #每一组输出3个空格
    for j in range(i*2-1,0,-2):  #内循环j从i*2-1开始每次-2,一直到1
        print(f"{j:>3}",end="")   #输出j
    print()      #换行

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

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

类似右下角的直角三角形,双层循环遍历,每执行一次外循环,换一次行即可。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632