理解python中的格式函数

时间:2017-09-25 06:27:12

标签: python format

我们的团队更喜欢在每种情况下使用格式而不是str.format,并且在尝试学习如何在Python中使用format()时遇到了一些我不知道为什么会发生这种情况的问题,这就是问题所在:

  

3.30以下代码将显示什么? (注意?表示空格)

  print(format("Welcome", "10s"), end = '#')
  print(format(111, "4d"), end = '#')
  print(format(924.656, "3.2f"))
     
      
  1. ???Welcome#?111#924.66
  2.   
  3. Welcome#111#924.66
  4.   
  5. Welcome#111#.66
  6.   
  7. Welcome???#?111#924.66
  8.   

然后以某种方式回答4。我认为每种格式的默认对齐都在LEFT上,但是

print(format("Welcome", "10s"), end = '#')

是左对齐和

print(format(111, "4d"), end = '#')
某人是对的吗?

所以这就是问题所在。

2 个答案:

答案 0 :(得分:0)

来自format的文档:

  

format(value, format_spec)的调用已转换为   type(value).__format__(value, format_spec)

format在内部调用每种类型的__format__函数。事实上,默认情况下保留字符串的对齐,而对于整数是正确的。您会看到str.format向您显示相同的内容,因为它会在引擎盖下调用__format__

In [1]: '{:10s}|{:4d}'.format('Welcome', 111)
Out[1]: 'Welcome   | 111'

答案 1 :(得分:0)

使用格式时 对于字符串,您可以在右侧添加空格,从左侧添加数字,因为右侧的数字间距可能会与分数混淆。

  • 10s表示如果字符串小于10位,则会添加空格
  • 4d表示整数值为4位

检查以下代码并查看缩进的工作原理: print('{:10s}{:4d}'.format('Apple',10)) print('{:10s}{:4d}'.format('Orange',8))