gpt4 book ai didi

Python3 - 在字符串格式化程序参数中使用变量

转载 作者:行者123 更新时间:2023-11-28 19:55:23 25 4
gpt4 key购买 nike

我正在打印一些格式化的列。我想使用以下变量来设置我的 .format 参数的长度

number_length = 5
name_length = 24
viewers_length = 9

我有

print('{0:<5}{1:<24}{2:<9}'.format(' #','channel','viewers'), end = '')

理想情况下我想要类似的东西

print('{0:<number_length}{1:<name_length}{2:<viewers_length}'.format(
' #','channel','viewers'), end = '')

但这给了我一个无效的字符串格式化程序错误。

我曾尝试在变量和括号之前使用 %,但没有成功。

最佳答案

你需要:

  1. 把名字也用大括号括起来;和
  2. 将宽度作为关键字参数传递给 str.format

例如:

>>> print("{0:>{number_length}}".format(1, number_length=8))
1

你也可以使用字典解包:

>>> widths = {'number_length': 8}
>>> print("{0:>{number_length}}".format(1, **widths))
1

str.format 不会在本地范围内查找合适的名称;它们必须明确传递。

对于您的示例,这可以像这样工作:

>>> widths = {'number_length': 5,
'name_length': 24,
'viewers_length': 9}
>>> template= '{0:<{number_length}}{1:<{name_length}}{2:<{viewers_length}}'
>>> print(template.format('#', 'channel', 'visitors', end='', **widths))
# channel visitors

(请注意,end 和任何其他显式关键字参数必须位于 **widths 之前。)

关于Python3 - 在字符串格式化程序参数中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com