Python实现类似slice的substring函数时循环结束输出None怎么解决
问题根因
你代码输出多出None的核心原因是:
- Python中所有没有显式写
return语句的函数,默认都会返回None - 你的
substring函数内部已经通过print输出了ell,外层又额外print了函数的返回值(也就是None),两个输出拼接就得到了ellNone
解决方案
有两种常用修正方式,按需选择即可:
方案1:去掉外层的print,直接调用函数
def substring(start,stop,s): for i in s[start:stop+1]: print(i,end="") substring(1,3,'Hello') # 输出:ell
方案2:修改函数逻辑返回结果字符串,外层再打印输出
这种方式更符合函数封装的通用规范,返回的结果可以后续复用,不会直接打印到控制台:
def substring(start,stop,s): return s[start:stop+1] print(substring(1,3,'Hello')) # 输出:ell
内容的提问来源于stack exchange,提问作者monstajoe
相关产品推荐
相关产品推荐

