zoukankan      html  css  js  c++  java
  • 打印三角型的练习

    编写函数,接受一个n,n为正整数,左右两种打印方式。要求数字必须对齐

    12 11 10 9 8 7 6 5 4 3 2 1
       11 10 9 8 7 6 5 4 3 2 1
          10 9 8 7 6 5 4 3 2 1
             9 8 7 6 5 4 3 2 1
               8 7 6 5 4 3 2 1
                 7 6 5 4 3 2 1
                   6 5 4 3 2 1
                     5 4 3 2 1
                       4 3 2 1
                         3 2 1
                           2 1
                             1
                             1
                           2 1
                         3 2 1
                       4 3 2 1
                     5 4 3 2 1
                   6 5 4 3 2 1
                 7 6 5 4 3 2 1
               8 7 6 5 4 3 2 1
             9 8 7 6 5 4 3 2 1
          10 9 8 7 6 5 4 3 2 1
       11 10 9 8 7 6 5 4 3 2 1
    12 11 10 9 8 7 6 5 4 3 2 1
    

    补空格法
    def trangle2(n):
        nums = [i for i in range(n,0,-1)]
        length = len(nums)
        
        for i in range(length):
            for j in range(length):
                if i<=j:
                    print('{:>{}}'.format(nums[j],len(str(nums[j]))+1),end='')
                else:
                    print('{}'.format(' '*(len(str(nums[j]))+1)),end='')
            print()
        for i in range(length):
            for j in range(length,0,-1):
                if i+1>=j:
                    print('{:>{}}'.format(nums[-j],len(str(nums[-j]))+1),end='')
                else:
                    print('{}'.format(' '*(len(str(nums[-j]))+1)),end='')
            print()

    靠右对齐法

    def trangle_print(n):
        nums = ' '.join(str(i) for i in range(n,0,-1))
        width = len(nums)
        start = -1
        step = 2
        points = {10**i for i in range(1,3)}
        for i in range(1,n+1):
            print('{:>{}}'.format(nums[start:],width))
            if i+1 in points:
                step += 1
            start = start -step

    字符串切割法

    def trangle1(n):
        nums = ' '.join([str(i) for i in range(n,0,-1)])
        length = len(nums)
        print(nums)
        for i in range(len(nums)):
            if nums[i] ==' ':
                print('{}{}'.format(' '*(i+1),nums[(i+1):]))
                
        for j in range(len(nums)-1,0,-1):
            if nums[j] == ' ':
                print('{}{}'.format(' '*(j),nums[j:]))
        print(nums)



































  • 相关阅读:
    记我安装Caffe的血泪史(1)
    UWP连接mysql 实现数据远程备份
    数据库性能测试
    性能瓶颈分析定位
    系统安全性测试
    WEB安全性测试点
    jmeter测试报告分析
    Linux常用命令大全
    软件测试入门到飞升上仙之客户端
    软件测试入门到飞升上仙之web 端测试
  • 原文地址:https://www.cnblogs.com/rprp789/p/9520190.html
Copyright © 2011-2022 走看看