如何在Python 3中以字符串格式设置空格
如何设置字符串格式,以便使用变量确保长度可以根据需要更改?例如,假设长度最初为10,然后输入更改,然后长度变为15。如何获取要更新的格式字符串如何在Python 3中以字符串格式设置空格,python,variables,string-formatting,python-3.5,Python,Variables,String Formatting,Python 3.5,如何设置字符串格式,以便使用变量确保长度可以根据需要更改?例如,假设长度最初为10,然后输入更改,然后长度变为15。如何获取要更新的格式字符串 length = 0 for i in self.rows: for j in i: if len(j) > length: length = len(j) print('% length s') 显然,上面的语法是错误的,但我不知道如何让它工作。
length = 0
for i in self.rows:
for j in i:
if len(j) > length:
length = len(j)
print('% length s')
显然,上面的语法是错误的,但我不知道如何让它工作。您可以这样声明:
print('%20s'%'stuff')
20将是打印字符串中的字符数。多余的空白。您可以使用
%*s
并将长度作为另一个参数传入:
>>> length = 20
>>> string = "some string"
>>> print("%*s" % (length, string))
some string
或使用格式字符串创建格式字符串:
>>> print(("%%%ds" % length) % string)
some string
使用str.format
>>> length = 20
>>> string = "some string"
>>> print('{1:>{0}}'.format(length, string))
some string
format
方法允许将漂亮的关键字参数与位置参数结合使用:
>>> s = 'my string'
>>> length = 20
>>> '{:>{length}s}'.format(s, length=length)
' my string'
长度改变了空白的大小,它不是打印出来的东西我只是打印出来的。我很确定我看到的是空白。OP试图得到一个不依赖于提前知道长度的格式字符串。他希望能够更改长度,但使用相同的格式字符串。tobias_k的答案应该给你一个想法。tobias_k的答案确实是一个更完整的例子(尽管解决方案是相同的,…我认为)。我应该删除我的帖子吗?你能修正你的缩进吗?您正在尝试在for循环中打印吗?请显示示例输入和预期输出。为什么不使用print(s)
?它会打印任何s
是什么。顺便说一句,你可以用max(map(len,(j代表i行中的j代表i中的j))
还有一些方法可以用str.format
实现这一点,但我现在记不起来或找不到它了……啊,我自己刚刚找到了!;-)