python - 当迭代字符串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 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))
这将为您提供您链接的网站中列出的预期结果。
推荐阅读
- python - llvmlite 中的有符号/无符号 int 类型
- reactjs - ReactJS:处理多个复选框
- angular - 快速重复 HTTP 调用的 Angular/RXJS 数据问题
- django - 如何使用 django rest 框架正确保存和验证对象
- r - 使用列名列表从矩阵中删除列
- c++ - asm 使用 std::string 调用函数
- c# - AngularJS API 调用远程 API 返回 ERR_CERT_AUTHORITY_INVALID - 显示不正确的证书路径
- java - 在使用 kit 命令进行 minecraft bukkit java 开发时需要帮助
- assembly - 我想先打印偶数,然后再打印奇数
- javascript - Flatlist TouchableHighlight 传递值