为什么 Python 格式功能不起作用?
Why Python format function is not working?
我在python中写道:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format([asset[0], asset[1], asset[2]]))
但我得到:
print('{:15} {:30} {:30}'.format([asset[0], asset[1], asset[2]]))
TypeError: non-empty format string passed to object.__format__
这是为什么?
不要将 format
参数包装在列表中:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
# here ↓ and here ↓
print('{:15} {:30} {:30}'.format(asset[0], asset[1], asset[2]))
输出:
A B C
更好的是,您可以使用参数扩展:
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format(*asset))
错误出现是因为您将列表参数传递给格式函数。改为传递列表的各个元素。
你的代码应该是这样的:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format(asset[0], asset[1], asset[2]))
我在python中写道:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format([asset[0], asset[1], asset[2]]))
但我得到:
print('{:15} {:30} {:30}'.format([asset[0], asset[1], asset[2]]))
TypeError: non-empty format string passed to object.__format__
这是为什么?
不要将 format
参数包装在列表中:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
# here ↓ and here ↓
print('{:15} {:30} {:30}'.format(asset[0], asset[1], asset[2]))
输出:
A B C
更好的是,您可以使用参数扩展:
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format(*asset))
错误出现是因为您将列表参数传递给格式函数。改为传递列表的各个元素。
你的代码应该是这样的:
list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
print('{:15} {:30} {:30}'.format(asset[0], asset[1], asset[2]))