All issues PYL-R1705

Unnecessary

`else`

/ `elif`

used after `return`

PYL-R1705
Style

6 months ago
—
6 months old

Unnecessary "else" after "return", remove the "else" and de-indent the code inside it

```
22
23
24def recur_factorial(n: int) -> int:
25 if n == 1:26 return n
27 else:
28 return n * recur_factorial(n - 1)
```

Unnecessary "elif" after "return", remove the leading "el" from "elif"

```
6 high = len(arr) - 1
7 while low <= high:
8 mid = (low + high) // 2
9 if arr[mid] == target:10 return mid
11 elif arr[mid] < target:
12 low = mid + 1
```

Description

The use of `else`

or `elif`

becomes redundant and can be dropped if the last statement under the leading `if`

/ `elif`

block is a `return`

statement.
In the case of an `elif`

after `return`

, it can be written as a separate `if`

block.
For `else`

blocks after `return`

, the statements can be shifted out of `else`

. Please refer to the examples below for reference.

Refactoring the code this way can improve code-readability and make it easier to maintain.

```
def classify_number(x):
if x % 2 == 0:
return 'Even'
else:
return 'Odd'
def what_is_this_number(x):
if x % 2 == 0 and x >= 0:
return 'Even'
elif x % 2 == 0 and x < 0:
return 'Even and Negative'
elif x % 2 != 0 and x < 0:
return 'Odd and Negative.'
else:
return 'Odd'
```

```
def classify_number(x):
if x % 2 == 0:
return 'Even'
return 'Odd'
def what_is_this_number(x):
if x % 2 == 0 and x >= 0:
return 'Even'
if x % 2 == 0 and x < 0:
return 'Even and Negative'
if x % 2 != 0 and x < 0:
return 'Odd and Negative'
return 'Odd'
```