【问题标题】:python string spanning multiple lines indentation跨越多行缩进的python字符串
【发布时间】:2020-04-14 10:24:37
【问题描述】:

我正在创建包含回车符且太长而不能在单行上的字符串(从样式的角度来看)。为了在每行的开头没有空格,我必须删除缩进。这个功能很好,但看起来很糟糕,因为代码不再缩进在功能下。有没有办法做到这一点,保持缩进,没有空格?

# report final results
        report_profit = f'\n\
        Financial Analysis \n\
-------------------------------------------\n\
   Total Months:  {self.month_count}\n\
   Total Profit:  ${"{:,.0f}".format(self.profit)}\n\
 Average Change:  ${"{:,.2f}".format(self.average_diff)}\n\
Positive Change:  {self.greatest_dif}\n\
Negative Change:  {self.worst_dif}'

【问题讨论】:

    标签: python string format styles


    【解决方案1】:

    您可以创建用三引号括起来的字符串,这将存储换行符、制表符等,并使用您创建它的格式打印语句。

    report = f'''
           Finacial analysis
    --------------------------------
       Total Months: Test
       Total Profit: Test
     Average Change: Test
    Positive Change: Test
    Negative Change: Test'''
    
    print(report)
    

    【讨论】:

    • 这是一个不错的功能,我会使用它。它看起来更好。但是,我试图让代码与我们在代码中的位置保持缩进。
    • 如果我把它放在一个类内的函数中,它将打印 10 行缩进。另一种选择是忽略缩进并放置没有缩进的第二行。这将在没有缩进的情况下打印,但是完美缩进的代码看起来很草率。如果这让我的要求更加清晰
    【解决方案2】:

    我让它像这样工作:

    ...
        ....
            report_profit = f'\n' +\
                'Financial Analysis \n' +\
                '-------------------------------------------\n' +\
                f'Total Months:  {self.month_count}\n' +\
                f'Total Profit:  ${"{:,.0f}".format(self.profit)}\n' +\
                f'Average Change:  ${"{:,.2f}".format(self.average_diff)}\n' +\
                f'Positive Change:  {self.greatest_dif}\n' +\
                f'Negative Change:  {self.worst_dif}'
    

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2023-01-14
      相关资源
      最近更新 更多