任何人都可以帮我改变这些线的写作吗? 我希望使用.format()让我的代码更优雅,但我真的不知道如何使用它。
print("%3s %-20s %12s" %("Id", "State", "Population"))
print("%3d %-20s %12d" %
(state["id"],
state["name"],
state["population"]))
答案 0 :(得分:1)
您的格式很容易翻译为str.format()
formatting syntax:
print("{:>3s} {:20s} {:>12s}".format("Id", "State", "Population"))
print("{id:3d} {name:20s} {population:12d}".format(**state))
请注意,左对齐是通过在宽度前添加<
而不是-
前缀来实现的,并且字符串的默认对齐方式是左对齐,因此需要>
标题字符串和<
可以省略,但其他格式密切相关。
通过使用格式本身的键,直接从state
字典中提取值。
您也可以直接使用第一种格式的实际输出结果:
print(" Id State Population")
演示:
>>> state = {'id': 15, 'name': 'New York', 'population': 19750000}
>>> print("{:>3s} {:20s} {:>12s}".format("Id", "State", "Population"))
Id State Population
>>> print("{id:3d} {name:20s} {population:12d}".format(**state))
15 New York 19750000
答案 1 :(得分:0)
你可以写:
print("{id:>3s} {state:20s} {population:>12s}".format(id='Id', state='State', population='Population'))
print("{id:>3d} {state:20s} {population:>12d}".format(id=state['id'], state=state['name'], population=state['population']))
请注意,您必须使用>
进行右对齐,因为默认情况下项目是左对齐的。您还可以使用格式化字符串中的项目命名,这样可以更加可读,以查看值在哪里。