【发布时间】:2017-04-17 16:53:58
【问题描述】:
>>> import textwrap
>>> string = "This is a very very very very very long string."
>>> print textwrap.wrap(string,8)
>>> print textwrap.fill(string,8)
输出:
['This is', 'avery', 'very', 'very', 'very', 'very', 'long', 'string.']
这是
非常
非常
非常
非常
非常
长
字符串。
我知道 textwrap.wrap() 给了我一个列表,而 textwrap.fill 给了我一个字符串。 在文档中它说,“将单个段落包装在文本(字符串)中,因此每行最多宽度字符长”。
但是我不明白为什么不是由 textwrap.wrap() 形成的列表中每个元素的长度,如果 8 作为宽度参数传递,则为 8。为什么有时是 7,6 等。
同样,我不明白为什么在 textwrap.fill() 的情况下,每行的长度 = 8 个字符(如果宽度作为 8 传递,或者如果宽度作为 5 传递,则为 5)。 例如,有时是 7、6、4 等。为什么不完全等于宽度。 因为它说每行最多应该是宽度字符,所以如果将 with 传递为 8,为什么在使用行中可用的所有 8 个字符之前它会中断?
不应该像下面这样吗:
>>> import textwrap
>>> string = "This is a very very very very very long string."
>>> print textwrap.fill(string,8)
输出:
这是
很v
非常
非常好
很长
字符串。
【问题讨论】:
标签: python python-2.7