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

Остаток от деления является простой, но важной концепцией в арифметике, алгебре, в теории чисел и криптографии. Нужно разделить число на несколько равных групп, и если в конце что-то останется, это и есть остаток от деления.
Делим конфеты поровну между людьми:
- 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 % 2→121 % 3→019 % 5→4
Скомбинируем в одном выражении логический оператор "проверка равенства" == и арифметический оператор % и напишем функцию проверки четности:
def is_even(number: int) -> bool:
return number % 2 == 0
print(is_even(10)) # => True
print(is_even(3)) # => FalseПриоритет арифметических операций выше логических. Значит, сначала вычисляется арифметическое выражение number % 2, а затем результат сравнивается с нулем и возвращается результат проверки равенства.
Теперь напишем функцию, которая принимает строку и проверяет, начинается ли эта строка с латинской буквы a.
Алгоритм:
- Получим и запишем в переменную первый символ из строки-аргумента
- Сравним, равен ли символ латинской букве
a - Вернем результат
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Полезное
Python: Комбинирование операций и функций
Логические операции являются выражениями, поэтому их можно комбинировать с другими выражениями. Например, мы хотим проверить четность числа, то есть его кратность двум. В программировании для этого проверяют остаток от деления на два. Если остаток равен 0, число четное. Если остаток не равен 0, число нечетное.

Остаток от деления является простой, но важной концепцией в арифметике, алгебре, в теории чисел и криптографии. Нужно разделить число на несколько равных групп, и если в конце что-то останется, это и есть остаток от деления.
Делим конфеты поровну между людьми:
- 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 % 2→121 % 3→019 % 5→4
Скомбинируем в одном выражении логический оператор "проверка равенства" == и арифметический оператор % и напишем функцию проверки четности:
def is_even(number: int) -> bool:
return number % 2 == 0
print(is_even(10)) # => True
print(is_even(3)) # => FalseПриоритет арифметических операций выше логических. Значит, сначала вычисляется арифметическое выражение number % 2, а затем результат сравнивается с нулем и возвращается результат проверки равенства.
Теперь напишем функцию, которая принимает строку и проверяет, начинается ли эта строка с латинской буквы a.
Алгоритм:
- Получим и запишем в переменную первый символ из строки-аргумента
- Сравним, равен ли символ латинской букве
a - Вернем результат
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Полезное
Ваше упражнение проверяется по этим тестам
import solution
def test1():
assert not solution.is_international_phone("89602223423")
assert solution.is_international_phone("+79602223423")Решение учителя откроется через:
20:00
