0 знаков
6. Погружение в Python
Кратко- В статье представлен синтаксис языка Python на примере создания простого будильника.
- В примере рассматриваются встроенные структуры данных, такие как списки, и использование точечной нотации для обращения к атрибутам объекта времени.
- Условная конструкция
if/elif/else
используется для проверки наличия значения минут в списке и выполнения блока кода в зависимости от условия.- В Python переменные начинают существовать при первом упоминании в коде, и их тип не важен, так как они подстраиваются под любой тип данных.
- В статье кратко представлены основы синтаксиса Python, включая модули, методы и атрибуты, а также особенности работы с переменными и отступами для выделения блоков кода.
Первый раздел мог показаться слишком скучным и неинформативным, а пример чересчур банальным. Поэтому сейчас начнем с более сложного примера, который проиллюстрирует синтаксис языка Python и его простоту.
Напишем простой будильник, если это так можно назвать, который будет проверять время и, если минуты совпадают со значениями определенными нами, то выведем «Сигнал в такое-то время», иначе «Пока еще не настало время». Ниже код нашей программы.
from datetime import datetime
minute_alarm_clock = [0, 15, 30, 45]
alarm_clock = datetime.today().minute
if alarm_clock in minute_alarm_clock:
print("Сигнал в ", alarm_clock, " мин.")
else:
print("Пока еще не настало время, сейчас ", alarm_clock, " мин.")
Теперь разберём каждую строчку. Первая строка импортирует определенную функциональность, которую в дальнейшем мы используем. В данном случае мы взяли только один «подмодуль» библиотеки datetime
. Так получилось, что он совпадает с именем библиотеки (такое случается далеко не всегда).
Стандартная библиотека Python содержит много полезного кода, предназначенного для повторного использования. Это сделано для того, чтобы программисты не изобретали каждый свой велосипед, а использовали уже готовый, который эффективен в работе и тщательно протестирован. Пока по этому вопросу достаточно, к нему мы еще неоднократно вернемся, а сейчас перейдем к следующей строке.
minute_alarm_clock = [0, 15, 30, 45]
Язык Python обладает встроенными структурами данных. Сейчас рассмотрим только одну из них: список. Это тот же массив, но в отличии от С++, элементы заключаются в квадратных скобках. В примере мы перечислили 4 элемента, которые обозначают минуты, когда должен сработать сигнал будильника. Этот список мы присвоили переменной minute_alarm_clock
.
Думаю, необходимо отвлечься и рассказать подробнее о переменных. В том же С++ или Java, перед использованием переменной, необходимо ее сначала объявить, то есть явно указать что мы будем в ней хранить: число, строку, булево значение и т.д. Но в Python не нужно об этом задумываться. Переменные начинают существовать при первом упоминании их в коде, а тип присваиваемых им значений не важен, так как они подстроятся под любой. Нашей переменной присваивается список minute_alarm_clock
, поэтому она сама становится списком. Теперь рассмотрим следующую строку.
alarm_clock = datetime.today().minute
В ней тоже есть переменная. Здесь остановимся на правой части выражения. Чтобы было проще понять, перепишем строку, введя дополнительную переменную.
time_now = datetime.today()
alarm_clock = time_now.minute
Здесь мы вызываем метод today
, который является частью подмодуля datetime
(т.е. внутри модуля datetime
, есть подмодуль datetime
, внутри которого есть метод today
). О том, что today
метод, нам говорят круглые скобки после него. Итак, теперь в переменной time_now
хранится объект времени (этот объект состоит из частей). Если вы его выведете на экран, то увидите точные время и дату. Но нам нужны только минуты, поэтому переходим к следующей строке:
alarm_clock = time_now.minute
Для тех, кто знаком с другими языками программирования, синтаксис точечной нотации является знакомым. Поясню: чтобы обратиться к минутам, хранящимся в объекте time_now
, необходимо просто через точку написать minute
. Для того чтобы обратиться к часам, атрибут minute
следует заменить на hour
. А чтобы узнать какие вообще атрибуты содержит метод today
, необходимо обратиться к документации. Следующая строка:
if alarm_clock in minute_alarm_clock:
У нас есть список чисел, и есть значение минут. Теперь, чтобы проверить наличие такого значения минут в списке, будем использовать конструкцию if
. Ее суть: проверить условие и, если оно истинно, выполнить блок. В отличии от С++, у Python есть оператор in, который в данном случае нам очень поможет. В примере мы проверяем, содержится ли значение минут в определенном нами списке.
Следующим отличием Python от других языков программирования это то, как выделяются блоки. После if
указывается условие, далее ставится двоеточие (:), после которого начинается блок, который будет выполняться в случае истинности условия. И это не все. Блок выделяется визуально отступом, как в примере. Если отступа не будет, код не заработает. В С++ можно не делать отступов и не переносить строки, так как блоки выделяются фигурными скобками, а выражения отделяются точкой с запятой.
Ключевое слово else
является продолжением конструкции if
и выполняется в случаях, когда условие в if
ложно. Более подробно рассмотрим условную инструкцию if
в дальнейшем.
Можем еще более усложнить пример. Если сигнал будильника не сработал, то проверяем четные или нечетные сейчас минуты:
from datetime import datetime
minute_alarm_clock = [0, 15, 30, 45]
minute_alarm_clock_odd = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59]
time_now = datetime.today()
alarm_clock = time_now.minute
if (alarm_clock in minute_alarm_clock):
print("Сигнал в ", alarm_clock, " мин.")
elif (alarm_clock in minute_alarm_clock_odd):
print("Сейчас нечетные минуты: ", alarm_clock, " мин.")
else:
print("Сейчас четные минуты: ", alarm_clock, " мин.")
Для этого добавим еще одно ключевое слово: elif
. Оно является некоторым гибридом между if
и else
. Работает такая конструкция следующим образом: если сейчас не время сигнала будильника, то проверяем, есть ли значение минут в списке нечетных минут, и, если есть, то выводим «Сейчас нечетные минуты». Если все условия ложны, то вывести «Сейчас четные минуты».
На этом все. Мы кратко познакомились с синтаксисом Python. Узнали что такое модули, методы и атрибуты. Познакомились с тем как работают переменные и зачем они нужны. Узнали о первой структуре данных – списках. Применили условную конструкцию if/elif/else
.
Напомню, что в Python значение переменных присваиваются динамически, выражения отделяются не точкой с запятой, как во многих языках, а переносом строки. В свою очередь, блоки выделяются обязательными отступами.
В следующем уроке мы детально разберемся с типами и моделью данных в Python, а так же как работает операция присваивания (=
).
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ