Python中格式化字符串时无法使用变量指定宽度如何解决?
解决格式化字符串中用变量指定对齐宽度的问题
你遇到的问题是因为格式说明符里的x被当成了字面字符,而非变量引用。以下是几种可行的解决方式:
方法1:使用f-string(Python 3.6及以上)
这是最直观简洁的写法,直接在格式字符串中嵌入变量:
x = 5 y = "test" print(f"{y:<{x}}|")
运行后会输出test |(test后补1个空格,总宽度为5,末尾拼接|)。
方法2:在format中传递宽度参数
通过嵌套占位符,先传入宽度变量再指定对齐规则:
x = 5 y = "test" print("{:<{}}|".format(y, x))
这里第一个{}对应字符串y,第二个{}对应宽度变量x,格式说明符里的<表示左对齐。
方法3:旧式%格式化(兼容旧版Python)
如果需要兼容Python 3.6之前的版本,可以用这种写法:
x = 5 y = "test" print("%-*s|" % (x, y))
-表示左对齐,*用来接收宽度变量x,s表示按字符串格式处理。
内容的提问来源于stack exchange,提问作者h h
相关产品推荐
相关产品推荐

