【问题标题】:Unwanted line break is occuring in pythonpython中发生了不需要的换行符
【发布时间】:2021-05-31 06:23:01
【问题描述】:

我想在使用textwrap 时替换字符串的特定部分。但我得到了一个不需要的换行符。我已经尝试了很多方法,但仍然无法正常工作。这是我的代码。

    import textwrap
    import math
    
    def wrap(string, max_width):
        wrapper = textwrap.TextWrapper(width = max_width)
        word_list = wrapper.fill(text = string)
        return word_list
    
    height, width = map(int,input().split())
    square = height * width
    
    i = 0
    x = []
    while i < square:
        x.append("-")
        i += 1
    k = 0
    
    while k < math.floor(height / 2):
            line = math.floor(width / 2) + width * k
            x[line] = '|'
            x[line + 1]= "."
            x[line - 1] = "."
            for h in range(1, k + 1):
                f = h * 3
    
                line_plus = line + f
                line_minus = line - f
                x[line_plus] = '|'
                x[line_minus] = '|'
                x[line_minus - 1] = '.'
                x[line_plus - 1] = '.'
                x[line_minus + 1] = '.'
                q = line_plus + 1
                x[q] = '.'
    
            k += 1
    a = 0
    while a < math.floor(height / 2):
        line = math.floor(width / 2) + width * a
        line_end = (math.floor(width / 2) + width * a) * (-1)
        x[line_end - 1] = '|'
        if line > width:
            x[line_end + 2] = '|'
            x[line_end - 4] = '|'
        a += 1
    
    listToStr = ''.join([str(elem) for elem in x])
    
    welcome_pos = math.floor(height / 2) * width + (math.floor(width / 2) - math.floor(7 / 2))
    
    s = listToStr[ 0: welcome_pos] + "welcome" + listToStr[welcome_pos + 7:]
       
    print(wrap(listToStr, width) + "\n")
    print(wrap(s, width))

我的输入是 7 21

输出:

---------.|.---------
------.|..|..|.------
---.|..|..|..|..|.
----------welcome----
----------|--|--|----
----------|--|--|----
-------------|-------
---

这是我的输出。但它在第 3 行给出了一个我不想要的空间。我不知道为什么会这样。请帮帮我。

【问题讨论】:

    标签: python python-3.x string


    【解决方案1】:

    也许这就是你想要的?

    代码:

    #(above the same)
    print(wrap(listToStr,width*height))
    print(wrap(s,width*height))
    

    结果:

    5 4
    -..|..|..||--|--||--
    -..|..|welcome--||--
    

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      相关资源
      最近更新 更多