【问题标题】:A few questions about string formating in python. Alignment关于python中字符串格式化的几个问题。结盟
【发布时间】:2020-07-16 17:30:36
【问题描述】:

第一个问题

例如,如果我想打印很多相同宽度的行,我可以使用

print(f'{"INFO":=^50}')
print(f'{"some info":<50}')
print(f'{"another info":>50}')

会得到

=======================INFO=======================
some info                                         
                                      another info

但是,如果我想得到这样的东西怎么办?

=======================INFO=======================
some info.............................another info   

好的。 我可以的

print(f'{"INFO":=^50}')
print('some info' + f'{"another info":.>{50-len("some info")}}')

也许 python 有另一种最简单的方法?

第二个问题

对于对齐,我们可以使用 >、

例如

print(f'{13:.=5}')
print(f'{13:.>5}')
...13
...13

那么为什么我们需要 =,如果它的工作原理相同呢?确定该值是一个数字?它带来的更多好处是什么?

【问题讨论】:

    标签: python string alignment


    【解决方案1】:

    您正在尝试做的是两个变量之间的对齐。这很具体。那么三个变量,四个等之间的对齐呢?

    但是,您可以将其视为两个变量中的每一个的对齐问题:将 50 分成两部分。

    print(f'{"INFO":=^50}')
    print(f'{"some info":.<25}{"another info":.>25}')
    
    =======================INFO=======================
    some info.............................another info
    

    【讨论】:

      【解决方案2】:

      第二个问题,答案在Format Specification Mini-Language

      '='

      强制将填充放置在符号之后(如果有)但在符号之前 位数。这用于以“+000000120”形式打印字段。 此对齐选项仅对数字类型有效。它成为 当“0”紧接在字段宽度之前时的默认值。

      当您有一个签名号码时,这一点变得清晰:

      print(f'{-13:0=5}')
      # -0013
      
      print(f'{-13:0>5}')
      # 00-13
      

      【讨论】:

      • 谢谢!我应该更仔细地搜索信息:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 2023-03-30
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多