我想根据变量的值将字符串填充到一定长度,并且我想知道是否有标准的Pythonic方法使用string.format
{{3 }}。现在,我可以使用字符串连接:
padded_length = 5
print(("\n{:-<" + str((padded_length)) + "}").format("abc"))
# Outputs "abc--"
padded_length = 10
print(("\n{:-<" + str((padded_length)) + "}").format("abc"))
#Outputs "abc-------"
我试过这个方法:
print(("{:-<{{padded_length}}}".format(padded_length = 10)).format("abc"))
但它引发了IndexError: tuple index out of range
例外:
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
print(("{:-<{{padded_length}}}".format(padded_length = 10)).format("abc"))
IndexError: tuple index out of range
除了字符串连接之外,是否有一种标准的内置方法可以做到这一点?第二种方法应该有效,所以我不确定它为什么会失败。
答案 0 :(得分:5)
以下示例应为您提供解决方案。
padded_length = 5
print("abc".rjust(padded_length, "-"))
打印:
--abc
答案 1 :(得分:5)
print(("\n{:-<{}}").format("abc", padded_length))
你尝试的另一种方式应该是这样写的
print(("{{:-<{padded_length}}}".format(padded_length=10)).format("abc"))
答案 2 :(得分:2)
你需要逃离最外面的花括号。以下工作对我来说很好:
>>>'{{0:-<{padded_length}}}'.format(padded_length=10).format('abc')
'abc-------'