1

让我们考虑一个字符串:

s = 'abcdefghijl'

还有一个将字符串切成一定宽度的函数:

def wrap(string,max_width):
    for i in range(0,len(string),max_width):
        print(string[i:i+max_width])

wrap(s,3)

将在最后一次迭代中打印None,因为切片字符串时我会越界。有没有办法在不创建这样的列表理解的情况下解决这个问题:

def wrap(string, max_width):
    return "\n".join([string[i:i+max_width] for i in range(0, len(string), max_width)])
4

1 回答 1

0

我在 Python 3.6 中测试了你的函数:

def wrap(string, max_width):
    return "\n".join([string[i:i+max_width] for i in range(0, len(string), max_width)])

它工作正常。现在,要获得您想要的打印版本,您必须按如下方式调用该函数:

print(wrap(s,3))

这将为您提供您链接的网站中列出的预期结果。

于 2020-03-11T09:45:50.253 回答