【问题标题】:How do I add a new line to a string in python如何在python中的字符串中添加新行
【发布时间】:2018-11-23 12:39:50
【问题描述】:

我有这个代码

def fullview():    
    rows = 3
    elems_in_row = 4
    List = ['-'] * rows
    for i in range(rows):
        List[i] = ['-'] * elems_in_row   
    for i in List:
        elements = ''.join(i)
        fullview = str(rows)+ ':' + elements
        rows -= 1
   return fullview

当我向 fullview 添加一行时,它会删除添加到其中的前一行。 我想要的结果是:

fullview = """
3:----
2:----
1:----
"""

我不确定如何将新行正确添加到字符串中,因为 += 不起作用。

【问题讨论】:

  • 顺便说一句,将函数名称用于函数内部的变量并不是一个好主意。它不会损害您的代码中的任何内容,但如果您的函数是递归的,它会。但不这样做的主要原因是它使代码难以阅读。

标签: python string list printing


【解决方案1】:

这可以通过单个构造完成,而不是多个步骤:

result = '\n'.join(['{}:{}'.format(i, '-' * elements_in_row)
                    for i in range(1, rows + 1)][::-1])

原始代码不起作用的一个原因是更新fullview 的行没有考虑到以前的状态:

fullview = str(rows)+ ':' + elements

【讨论】:

    【解决方案2】:

    只需使用'\n'

    def fullview():
        rows = 3
        elems_in_row = 4
        fullview_str = ''
        for i in range(rows, 0, -1):
            fullview_str += "{}:{}\n".format(i, '-' * elems_in_row)
        return fullview_str
    

    示例输出:

    3:----
    2:----
    1:----
    

    【讨论】:

      猜你喜欢
      • 2017-05-27
      • 2016-03-09
      • 2021-12-31
      • 2013-07-30
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多