Python判断字符串长度奇偶的函数返回None是什么原因?
问题原因
你编写的strEorO函数仅在内部执行了打印操作,没有显式定义返回值。Python中所有未显式编写return语句的函数,执行完成后都会默认返回None,因此你把函数调用结果赋值给result再打印时,就会先输出函数内部打印的奇偶结果,再输出多余的None。
修复方案
可以选择两种常用方式调整代码:
- 方式1:修改函数逻辑,将结果通过return返回,保留原测试代码的调用逻辑
修改后的函数代码如下:
def strEorO(inputVal): if len(inputVal) % 2 == 0: return 'even' else: return 'odd'
调整后函数会把奇偶判断结果作为返回值赋值给result,后续print(result)就只会输出你需要的判断结果。
- 方式2:不修改原函数,调整测试代码,不需要捕获返回值再打印
修改后的测试代码如下:
strEorO('airplane')
因为原函数本身已经内置了打印逻辑,直接调用即可得到结果,不会出现多余的None输出。
内容的提问来源于stack exchange,提问作者Joe 5
相关产品推荐
相关产品推荐

