Python3定义函数返回None值问题:电价时段计算器异常返回排查
问题成因
- Python的函数默认返回规则:所有没有显式写
return语句的函数,执行完成后都会默认返回None。你写的power_price_calculator函数全程仅通过print()直接输出提示内容,没有返回任何自定义值,因此调用后返回值就是None。 - 你最后一行代码写的是
print(power_price_calculator(dayEvaluate, hourEvaluate)),相当于先执行函数本身的打印逻辑输出分段结果,又额外打印了函数的返回值,就出现了多余的None。
修复方法
- 如果你不需要拿到分段结果做后续处理,直接删掉最后一行外层的
print(),直接写power_price_calculator(dayEvaluate, hourEvaluate)调用函数即可,函数内部已经自带打印逻辑,不需要再嵌套一层打印。 - 如果你需要后续用到分段结果,可以把函数内各分支的
print(xxx)改为return xxx,最后再打印函数返回值,就不会出现多余内容。
额外逻辑问题提示
你现有代码的小时分段判断逻辑缩进有误,目前写在了while (hourEvaluate not in hour)的循环内部:如果初始传入的hourEvaluate本身就是0-23之间的合法值,while循环不会执行,对应的分段判断逻辑也完全不会运行,只会结束函数没有任何分段输出。建议把分段判断的逻辑调整到和while循环同级,减少一层缩进,放在if dayEvaluate in day[:4]:分支下即可。
内容的提问来源于stack exchange,提问作者MadMarx17
相关产品推荐
相关产品推荐

