代码之家  ›  专栏  ›  技术社区  ›  Sai Kumar

我用print和str.center找不到想要的输出

  •  1
  • Sai Kumar  · 技术社区  · 6 年前

    | , - , . 特殊字符。

    我的代码:

    N, M = 4, 12
    for i in range(1, N, 2):
        print(str(".|." * i).center(M, '-'))
    print("WELCOME".center(M, '-'))
    for i in range(N-2, -1, -2):
        print(str(".|." * i).center(M,"-"))
    

    我的结果:

    ----.|.-----
    -.|..|..|.--
    --WELCOME---
    ---.|..|.---
    ------------
    

    期望输出:

    ----.|.-----
    -.|..|..|.--
    --WELCOME---
    -.|..|..|.--
    ----.|.-----
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jon Clements    6 年前

    可能更容易建立顶部,打印与欢迎,然后打印颠倒的顶部为您的底部位?

    N, M = 4, 12
    top = [('.|.' * i).center(M, '-') for i in range(1, N, 2)]
    print(*top, 'WELCOME'.center(M, '-'), *top[::-1], sep='\n')
    

    ----.|.-----
    -.|..|..|.--
    --WELCOME---
    -.|..|..|.--
    ----.|.-----
    

    使用 reversed

    print(*top, 'WELCOME'.center(M, '-'), *reversed(top), sep='\n')
    
        2
  •  0
  •   Devendra Gohare    5 年前
    s = input()
    lst = s.split();
    n = int(lst[0])
    m = int(lst[1])
    
    s= ['.|.','WELCOME'] 
    n1 = (n-1)//2
    
    for i in range(1,2*n1, 2):
        print((s[0]*i).center(m, '-'))
    
    print(s[1].center(m,'-'))
    
    for i in range(((2*n1)-1), 0,-2):
        print((s[0]*i).center(m, '-'))