Как мне упростить слишком широкое утверждение if? - PullRequest
0 голосов
/ 10 апреля 2019

Понятия не имею, как четко упростить требования для запуска оператора if. Есть ли более простой способ, которым я мог бы сделать это? Код должен возвращать True, если число равно 2 целым числам около 10, либо выше, либо ниже.

def nearten(num):
    if (abs(num - 2) % 10) == 0 or (abs(num + 2) % 10) == 0 or (abs(num - 1) % 10) == 0 or (abs(num + 1) % 10) == 0 or num % 10 == 0:
        return True
    return False

1 Ответ

3 голосов
/ 10 апреля 2019

Вы, конечно, слишком усложняете вещи.Вот гораздо более гибкая версия:

def near_ten(num, close=2):
    return abs(10 - num) <= close

Альтернативная версия (если вы ищете числа, близкие к любому кратному из 10):

def near_ten_multiple(num, close=2):
    return abs(10 - (num % 10)) <= close
...