具有可变长度的Python字符串格式

具有可变长度的Python字符串格式,python,string,Python,String,我试图在表中填充动态元素,但似乎本机填充函数不适用于变量。只是想知道我是否做错了什么,或者是否有简单的替代品来代替中间填充。我知道ljust和rjust,但出于某种原因没有m(iddle) 简单的例子: a=10 b='hi' print(f'{b:^a}') 或 产生 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Unknow

我试图在表中填充动态元素,但似乎本机填充函数不适用于变量。只是想知道我是否做错了什么,或者是否有简单的替代品来代替中间填充。我知道ljust和rjust,但出于某种原因没有m(iddle)

简单的例子:

a=10
b='hi'
print(f'{b:^a}')

产生

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Unknown format code 'a' for object of type 'str'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:类型为“str”的对象的格式代码“a”未知

在print语句中键入10代替a可以使其按预期工作,因此我猜“a”被格式化的字符串解释为字符串。助手函数是唯一的解决方法吗?

可能要添加另一组括号

In [114]: print(f'{b:^{a}}')                                                                                                                                                                                                                                                 
    hi    

In [115]: print(f'"{b:^{a}}"')                                                                                                                                                                                                                                               
"    hi    "
a=10
b='hi'
print(f'{b:^{a}}')

可能要添加另一组括号

a=10
b='hi'
print(f'{b:^{a}}')

期望输出是什么?期望输出是什么?绝对正确,谢谢。绝对正确,谢谢。