Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在字符串上迭代时,python在末尾返回None 让我们考虑一个字符串: s = 'abcdefghijl'_Python - Fatal编程技术网

在字符串上迭代时,python在末尾返回None 让我们考虑一个字符串: s = 'abcdefghijl'

在字符串上迭代时,python在末尾返回None 让我们考虑一个字符串: s = 'abcdefghijl',python,Python,以及一个函数,该函数将字符串按一定宽度进行切片: 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".j

以及一个函数,该函数将字符串按一定宽度进行切片:

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

这将得到您链接的网站中列出的预期结果。

不会返回任何结果,因为您没有返回任何内容…@Joannaraganau yap,哈哈哈:)我是说打印。在我的实验中,最后一行将打印none,它只是工作正常(打印'jl')。试试s[9:13],它仍然是“jl”,您如何运行您看到的
None
打印的代码?如果您的代码是脚本,它将不会打印
None
,因为表达式语句在脚本运行时不会打印出来(或者
print
也会打印
None
,因为它也会返回
None
)。如果在交互式解释器中运行代码,也不应该看到
None
,因为REPL通常会抑制返回值。我只希望你看到
None
打印出来,如果你打印了
print(wrap(s,3))
(第一个版本的代码)。它不会返回任何内容,因为你没有返回任何内容…@Joannaraganau yap,哈哈哈:)我是说打印。在我的实验中,最后一行将打印none,它只是工作正常(打印'jl')。试试s[9:13],它仍然是“jl”,您如何运行您看到的
None
打印的代码?如果您的代码是脚本,它将不会打印
None
,因为表达式语句在脚本运行时不会打印出来(或者
print
也会打印
None
,因为它也会返回
None
)。如果在交互式解释器中运行代码,也不应该看到
None
,因为REPL通常会抑制返回值。我只希望你看到
None
打印出来,如果你打印了
print(wrap(s,3))
(使用代码的第一个版本)。