Искать
Вы превысили запрос на
0 знаков

6. Погружение в Python

Не пройден
0
0

Кратко

- В статье представлен синтаксис языка Python на примере создания простого будильника.

- В примере рассматриваются встроенные структуры данных, такие как списки, и использование точечной нотации для обращения к атрибутам объекта времени.

- Условная конструкция if/elif/else используется для проверки наличия значения минут в списке и выполнения блока кода в зависимости от условия.

- В Python переменные начинают существовать при первом упоминании в коде, и их тип не важен, так как они подстраиваются под любой тип данных.

- В статье кратко представлены основы синтаксиса 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 содержит много полезного кода, предназначенного для повторного использования. Это сделано для того, чтобы программисты не изобретали каждый свой велосипед, а использовали уже готовый, который эффективен в работе и тщательно протестирован. Пока по этому вопросу достаточно, к нему мы еще неоднократно вернемся, а сейчас перейдем к следующей строке.

Пример (python)
minute_alarm_clock = [0, 15, 30, 45]         

Язык Python обладает встроенными структурами данных. Сейчас рассмотрим только одну из них: список. Это тот же массив, но в отличии от С++, элементы заключаются в квадратных скобках. В примере мы перечислили 4 элемента, которые обозначают минуты, когда должен сработать сигнал будильника. Этот список мы присвоили переменной minute_alarm_clock.

Думаю, необходимо отвлечься и рассказать подробнее о переменных. В том же С++ или Java, перед использованием переменной, необходимо ее сначала объявить, то есть явно указать что мы будем в ней хранить: число, строку, булево значение и т.д. Но в Python не нужно об этом задумываться. Переменные начинают существовать при первом упоминании их в коде, а тип присваиваемых им значений не важен, так как они подстроятся под любой. Нашей переменной присваивается список minute_alarm_clock, поэтому она сама становится списком. Теперь рассмотрим следующую строку.

Пример (python)
alarm_clock = datetime.today().minute         

В ней тоже есть переменная. Здесь остановимся на правой части выражения. Чтобы было проще понять, перепишем строку, введя дополнительную переменную.

Пример (python)
time_now = datetime.today()
alarm_clock = time_now.minute      

Здесь мы вызываем метод today, который является частью подмодуля datetime (т.е. внутри модуля datetime, есть подмодуль datetime, внутри которого есть метод today). О том, что today метод, нам говорят круглые скобки после него. Итак, теперь в переменной time_now хранится объект времени (этот объект состоит из частей). Если вы его выведете на экран, то увидите точные время и дату. Но нам нужны только минуты, поэтому переходим к следующей строке:

Пример (python)
alarm_clock = time_now.minute      

Для тех, кто знаком с другими языками программирования, синтаксис точечной нотации является знакомым. Поясню: чтобы обратиться к минутам, хранящимся в объекте time_now, необходимо просто через точку написать minute. Для того чтобы обратиться к часам, атрибут minute следует заменить на hour. А чтобы узнать какие вообще атрибуты содержит метод today, необходимо обратиться к документации. Следующая строка:

Пример (python)
if alarm_clock in minute_alarm_clock:         

У нас есть список чисел, и есть значение минут. Теперь, чтобы проверить наличие такого значения минут в списке, будем использовать конструкцию if. Ее суть: проверить условие и, если оно истинно, выполнить блок. В отличии от С++, у Python есть оператор in, который в данном случае нам очень поможет. В примере мы проверяем, содержится ли значение минут в определенном нами списке.

Следующим отличием Python от других языков программирования это то, как выделяются блоки. После if указывается условие, далее ставится двоеточие (:), после которого начинается блок, который будет выполняться в случае истинности условия. И это не все. Блок выделяется визуально отступом, как в примере. Если отступа не будет, код не заработает. В С++ можно не делать отступов и не переносить строки, так как блоки выделяются фигурными скобками, а выражения отделяются точкой с запятой.

Ключевое слово else является продолжением конструкции if и выполняется в случаях, когда условие в if ложно. Более подробно рассмотрим условную инструкцию if в дальнейшем.

Можем еще более усложнить пример. Если сигнал будильника не сработал, то проверяем четные или нечетные сейчас минуты:

Пример (python)
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

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги раздела «Самые основы Python»Знакомство с Python
Типы данных в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Введение в раздел «Структуры данных в Python»Знакомство с Python
Первое знакомство с PythonЗнакомство с Python
Переменные, комментарии и типы данных в PHPКурс по PHP
Работа с файлами в PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Написание модулей в PythonЗнакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно