python - 不一致的返回值Pylint
问题描述
我已经使用 pylint 检查了我的代码,并且收到了以下建议。'函数中的所有 return 语句都应该返回一个表达式,或者它们都不应该返回。(不一致的返回语句)'。代码块如下。我正在传递一个值,需要返回它所属的值范围。如果我将返回值移到 if 之外,它将返回不正确的计数值。有什么建议么?
def findRangeValue(ranges, number):
count = -1
n = 2
for x in range(len(ranges)-n+1):
count += 1
batch = range[x:x + n]
if batch[0] < number <= batch[1]:
return count
解决方案
None
您需要确认函数在最常见的情况下始终具有非空(非)返回值。- 当循环中的所有 if 语句失败时,您的代码将返回
None
,需要在循环外添加最终返回值。
示例代码:
def findRangeValue(ranges, number):
count = -1
n = 2
for x in range(len(ranges)-n+1):
count += 1
batch = ranges[x:x + n]
if batch[0] < number <= batch[1]:
return count
return -1
print(findRangeValue([1,3,5,7,9], 4))
print(findRangeValue([1,3,5,7,9], 10))
结果:
1
-1
推荐阅读
- assembly - ARM汇编语言添加寄存器问题
- bash - Bash:带有几个参数的测试(内置):它们是如何解析的?
- r - bzip2 在路径中,但在安装 R 时未找到
- macos - 为什么gdb运行后会挂起?
- excel - aggrid community 下载器类在 v22.0.0+ 中不可用
- mips - 使用 MIPS 中的移位除以余数
- python - 如何在 Pyserial 中更改超时?
- javascript - 在 firebase 查询中使用 Promise 或 Await
- jestjs - 如何在 JEST 测试类中使用布尔值
- reactjs - 如果用户使用 React 路由器登录,如何从 /login 重定向到其他地方