首页 > 解决方案 > 当迭代字符串python时,最后返回None

问题描述

让我们考虑一个字符串:

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)])

标签: python

解决方案


我在 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))

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


推荐阅读