我们的团队更喜欢在每种情况下使用格式而不是str.format,并且在尝试学习如何在Python中使用format()时遇到了一些我不知道为什么会发生这种情况的问题,这就是问题所在:
3.30以下代码将显示什么? (注意?表示空格)
print(format("Welcome", "10s"), end = '#') print(format(111, "4d"), end = '#') print(format(924.656, "3.2f"))
???Welcome#?111#924.66
Welcome#111#924.66
Welcome#111#.66
- 醇>
Welcome???#?111#924.66
然后以某种方式回答4。我认为每种格式的默认对齐都在LEFT上,但是
print(format("Welcome", "10s"), end = '#')
是左对齐和
print(format(111, "4d"), end = '#')
某人是对的吗?
所以这就是问题所在。
答案 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)
使用格式时 对于字符串,您可以在右侧添加空格,从左侧添加数字,因为右侧的数字间距可能会与分数混淆。
检查以下代码并查看缩进的工作原理:
print('{:10s}{:4d}'.format('Apple',10))
print('{:10s}{:4d}'.format('Orange',8))