• python 打印字母阶梯和金字塔


    一、以文本形式保存数据

    import string
    from collections import Counter
    
    s = string.ascii_letters
    with open('test.txt', 'w') as file:
        for i in range(len(s)):
            print(s[i]*(i + 1), file=file, end='')

    二、打印字母阶梯

    1、左侧阶梯

    with open('test.txt', 'r') as file:
        t = set(file.read())
        file.seek(0)  # 调回文件头
        for i in range(len(t)):
            print(file.read(i+1))

    输出:

    a
    bb
    ccc
    dddd
    eeeee
    ffffff
    ggggggg
    hhhhhhhh
    iiiiiiiii
    jjjjjjjjjj
    kkkkkkkkkkk
    llllllllllll
    mmmmmmmmmmmmm
    nnnnnnnnnnnnnn
    ooooooooooooooo
    pppppppppppppppp
    qqqqqqqqqqqqqqqqq
    rrrrrrrrrrrrrrrrrr
    sssssssssssssssssss
    tttttttttttttttttttt
    uuuuuuuuuuuuuuuuuuuuu
    vvvvvvvvvvvvvvvvvvvvvv
    wwwwwwwwwwwwwwwwwwwwwww
    xxxxxxxxxxxxxxxxxxxxxxxx
    yyyyyyyyyyyyyyyyyyyyyyyyy
    zzzzzzzzzzzzzzzzzzzzzzzzzz
    AAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBB
    CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
    HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
    KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
    MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
    NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
    PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
    QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
    RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
    SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
    UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
    VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

    2 、右侧阶梯

    with open('test.txt', 'r') as fin:
        letter_counter = Counter(fin.read())  # 字母计数器
        length = max(letter_counter.values())  # 
        fin.seek(0)  # 调回文件头
        for i in range(len(t)):
            print(fin.read(i+1).rjust(length))  # 格式化为右对齐

    输出:

                                                       a
                                                      bb
                                                     ccc
                                                    dddd
                                                   eeeee
                                                  ffffff
                                                 ggggggg
                                                hhhhhhhh
                                               iiiiiiiii
                                              jjjjjjjjjj
                                             kkkkkkkkkkk
                                            llllllllllll
                                           mmmmmmmmmmmmm
                                          nnnnnnnnnnnnnn
                                         ooooooooooooooo
                                        pppppppppppppppp
                                       qqqqqqqqqqqqqqqqq
                                      rrrrrrrrrrrrrrrrrr
                                     sssssssssssssssssss
                                    tttttttttttttttttttt
                                   uuuuuuuuuuuuuuuuuuuuu
                                  vvvvvvvvvvvvvvvvvvvvvv
                                 wwwwwwwwwwwwwwwwwwwwwww
                                xxxxxxxxxxxxxxxxxxxxxxxx
                               yyyyyyyyyyyyyyyyyyyyyyyyy
                              zzzzzzzzzzzzzzzzzzzzzzzzzz
                             AAAAAAAAAAAAAAAAAAAAAAAAAAA
                            BBBBBBBBBBBBBBBBBBBBBBBBBBBB
                           CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
                          DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
                         EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
                        FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                       GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                      HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
                     IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
                    JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
                   KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
                  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
                 MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
                NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
               OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
              PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
             QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
            RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
           SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
          TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
         UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
        VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
       WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

    三、打印字母金字塔

    1、打印全部字母

    with open('test.txt', 'r') as fin:
        letter_counter = Counter(fin.read())  # 字母计数器
        length = max(letter_counter.values())  # 
        fin.seek(0)
        for i in range(length):
            row = fin.read(i+1).center(length)  # 调整为居中,两边用空格填充
            print(row)

    输出:

                             a                          
                             bb                         
                            ccc                         
                            dddd                        
                           eeeee                        
                           ffffff                       
                          ggggggg                       
                          hhhhhhhh                      
                         iiiiiiiii                      
                         jjjjjjjjjj                     
                        kkkkkkkkkkk                     
                        llllllllllll                    
                       mmmmmmmmmmmmm                    
                       nnnnnnnnnnnnnn                   
                      ooooooooooooooo                   
                      pppppppppppppppp                  
                     qqqqqqqqqqqqqqqqq                  
                     rrrrrrrrrrrrrrrrrr                 
                    sssssssssssssssssss                 
                    tttttttttttttttttttt                
                   uuuuuuuuuuuuuuuuuuuuu                
                   vvvvvvvvvvvvvvvvvvvvvv               
                  wwwwwwwwwwwwwwwwwwwwwww               
                  xxxxxxxxxxxxxxxxxxxxxxxx              
                 yyyyyyyyyyyyyyyyyyyyyyyyy              
                 zzzzzzzzzzzzzzzzzzzzzzzzzz             
                AAAAAAAAAAAAAAAAAAAAAAAAAAA             
                BBBBBBBBBBBBBBBBBBBBBBBBBBBB            
               CCCCCCCCCCCCCCCCCCCCCCCCCCCCC            
               DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD           
              EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE           
              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF          
             GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG          
             HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH         
            IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII         
            JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ        
           KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK        
           LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL       
          MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM       
          NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN      
         OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO      
         PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP     
        QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ     
        RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR    
       SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS    
       TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT   
      UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU   
      VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV  
     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  
     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
    YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 
    ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

    因为奇偶次数的原因,输出不对称。

    2、只打印出现奇数次的字母。

    with open('test.txt', 'r') as fin:
        letter_counter = Counter(fin.read())  # 字母计数器
        length = max(letter_counter.values())  # 
        fin.seek(0)
        
        rows = [fin.read(i+1) for i in range(length)]
        for row in rows[::2]:  # 出现奇数次的字母
            print(row.center(length))

    输出:

                             a                          
                            ccc                         
                           eeeee                        
                          ggggggg                       
                         iiiiiiiii                      
                        kkkkkkkkkkk                     
                       mmmmmmmmmmmmm                    
                      ooooooooooooooo                   
                     qqqqqqqqqqqqqqqqq                  
                    sssssssssssssssssss                 
                   uuuuuuuuuuuuuuuuuuuuu                
                  wwwwwwwwwwwwwwwwwwwwwww               
                 yyyyyyyyyyyyyyyyyyyyyyyyy              
                AAAAAAAAAAAAAAAAAAAAAAAAAAA             
               CCCCCCCCCCCCCCCCCCCCCCCCCCCCC            
              EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE           
             GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG          
            IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII         
           KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK        
          MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM       
         OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO      
        QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ     
       SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS    
      UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU   
     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  
    YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 

    3、只打印出现偶数次的字母

    with open('test.txt', 'r') as fin:
        letter_counter = Counter(fin.read())  # 字母计数器
        length = max(letter_counter.values())  # 
        fin.seek(0)
        
        rows = [fin.read(i+1) for i in range(length)]
        for row in rows[1::2]:  # 出现偶数数次的字母
            print(row.center(length))

    输出:

                             bb                         
                            dddd                        
                           ffffff                       
                          hhhhhhhh                      
                         jjjjjjjjjj                     
                        llllllllllll                    
                       nnnnnnnnnnnnnn                   
                      pppppppppppppppp                  
                     rrrrrrrrrrrrrrrrrr                 
                    tttttttttttttttttttt                
                   vvvvvvvvvvvvvvvvvvvvvv               
                  xxxxxxxxxxxxxxxxxxxxxxxx              
                 zzzzzzzzzzzzzzzzzzzzzzzzzz             
                BBBBBBBBBBBBBBBBBBBBBBBBBBBB            
               DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD           
              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF          
             HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH         
            JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ        
           LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL       
          NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN      
         PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP     
        RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR    
       TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT   
      VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV  
     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
    ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  • 相关阅读:
    将数据库dbcp连接池改为c3p0连接池(草稿,别点)
    java遍历set集合
    mybatis映射文件(转)
    java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect
    PL/SQL配置oracle客户端,登录远程数据库配置
    Weblogic部署项目三种方式
    Service具体解释(二):Service生命周期
    Coredata — 入门使用
    UML建模学习1:UML统一建模语言简单介绍
  • 原文地址:https://www.cnblogs.com/shanger/p/12938272.html
Copyright © 2020-2023  润新知