/
Программирование
/
Курс Python
/

Комбинирование операций и функций

Python: Комбинирование операций и функций

Логические операции являются выражениями, поэтому их можно комбинировать с другими выражениями. Например, мы хотим проверить четность числа, то есть его кратность двум. В программировании для этого проверяют остаток от деления на два. Если остаток равен 0, число четное. Если остаток не равен 0, число нечетное.

even-or-odd

Остаток от деления является простой, но важной концепцией в арифметике, алгебре, в теории чисел и криптографии. Нужно разделить число на несколько равных групп, и если в конце что-то останется, это и есть остаток от деления.

Делим конфеты поровну между людьми:

  • 7 конфет, 2 человека: 2 x 3 + остаток 1 (7 не кратно 2)
  • 21 конфету, 3 человека: 3 x 7 + остаток 0 (21 кратно 3)
  • 19 конфет, 5 человек: 5 x 3 + остаток 4 (19 не кратно 5)

Оператор % вычисляет остаток от деления:

  • 7 % 21
  • 21 % 30
  • 19 % 54

Скомбинируем в одном выражении логический оператор "проверка равенства" == и арифметический оператор % и напишем функцию проверки четности:

def is_even(number: int) -> bool:
    return number % 2 == 0

print(is_even(10))  # => True
print(is_even(3))   # => False

Приоритет арифметических операций выше логических. Значит, сначала вычисляется арифметическое выражение number % 2, а затем результат сравнивается с нулем и возвращается результат проверки равенства.

Теперь напишем функцию, которая принимает строку и проверяет, начинается ли эта строка с латинской буквы a.

Алгоритм:

  1. Получим и запишем в переменную первый символ из строки-аргумента
  2. Сравним, равен ли символ латинской букве a
  3. Вернем результат
def is_first_letter_an_a(text: str) -> bool:
    first_letter = text[0]
    return first_letter == 'a'

print(is_first_letter_an_a('orange'))  # => False
print(is_first_letter_an_a('apple'))   # => True

Чтобы было понятно, что тут происходит, попробуйте проговорить происходящее аналогично тому, как мы расшифровывали процесс в примере с is_even().

Теперь вы знаете, что операции сравнения применяются в программировании наравне с арифметическими. Но помните, что равенство обозначается ==. Так вы не спутаете эту операцию с присваиванием значения переменной.

Задание

Реализуйте функцию is_international_phone(), которая принимает на вход строку - номер телефона и проверяет его формат. Если телефон начинается с +, значит это международный формат.

is_international_phone('89602223423')  # False
is_international_phone('+79602223423') # True

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются