Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.
Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.
Полный список уроков доступен по тегу Архивный курс по 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, " мин.")
Урок был посвящен разбору каждой строчке этой программы. Появилось много нюансов языка и в следующем уроке мы поговорили о типах данных.
Python относится к языкам с неявной сильной динамической типизацией. Что это означает?
- Неявная типизация: вам не нужно при объявлении переменной указывать конкретный тип данных, к которой она относится, как, например, в языке С++.
- Под динамической типизацией понимается то, что поиск ошибок будет осуществляться на стадии выполнения программы. В языках со статической типизацией поиск ошибок выполняется на стадии компиляции. Например, в Python возможно присвоить одной переменной сначала объект одного типа данных, а потом другого.
- Под сильной (или строгой) типизацией понимается то, что язык Python не позволяет смешивать типы данных.
В уроке затронули модель данных и пробежались по всем основным типам языка.
В следующем уроке оттачивали не менее важный навык: работа со строками. Практически в любой программе нам нужно будет что-то выводить, например, в консоль. Разобрали несколько способов форматирования строк:
- использовать оператор
%- устаревший вариант; - метод
format(); - самый новый способ: f-строки.
Далее мы учились управлять ходом выполнения программы с помощью инструкции if. Выделили следующие важные моменты:
- ключевое слово
ifвсегда указывается первым в условной конструкции; - после ключевого слова
ifдолжно быть условие и, если оно истинно (возвращаетTrue), то выполняется код в блоке; - с помощью
elifможно добавить другие условия, которые будут выполняться после проверки условияif; elifне может существовать безif. Ключевое словоelifуказывается только послеif;- блок
elseвыполнится, только если все условия вifиelifложные (возвращаютFalse).
На примере вспомнить будет проще:
a = 2
if (a == 2):
print("Два")
elif (a == 3):
print("Три")
else:
print("Другое число")
В этом же уроке поговорили об операторах in, and, or, not и операторах сравнения:
a == b– проверяет, равны ли оба операнда и возвращает истину, если это так;a != b– проверяет, равны ли оба операнда и возвращает истину, если они различны;a > b– возвращает истину, если левый операнд (a), больше правого операнда (b);a < b– возвращает истину, если левый операнд (a), меньше правого операнда (b);a >= b– возвращает истину, если левый операнд (a), больше или равен правому операнду (b);a <= b– возвращает истину, если левый операнд (a), меньше или равен правому операнду (b).
С типами данных мы разобрались, но не выяснили как преобразовывать один тип в другой и проверять принадлежность объекта к конкретному из них. Это нужно уметь, так как Python обладает сильной типизацией, к тому же еще и неявной. В этом разделе был посвящен этому отдельный урок.
В последнем уроке мы учились сокращать объем кода за счет вызова методов цепочкой. Вы часто будете видеть эти приемы в чужом коде, поэтому я не мог не рассказать об этом.
Новая информация из раздела «Самые основы Python»
Операция присваивания и объявление переменных в Python
В разделе мы уделили отдельное внимание работе операции присваивания (=). Чтобы объявить переменную в языке Python, необходимо указать ее имя, поставить знак присваивания (=) и написать значение, которое будет сохранено в переменной. Пример:
a = 10
Переменной с именем a мы присвоили число десять. Целочисленное число десять является объектом, как и все в Python: числа, строки, списки и т.д. Объект является абстракцией данных. Данные – это не только объекты, но и отношения между ними. Объект состоит из трех частей: тип, идентификатор и значение.
Что происходит при инициализации переменной на уровне интерпретатора? Создается целочисленный объект 10, который сохраняется где-то в памяти. Данный объект имеет идентификатор, значение 10 и целочисленный тип. С помощью оператора присваивания (=) создается ссылка между переменной a и объектом 10, целочисленного типа.
Типы данных в Python
В языке Python типы данных можно разделить на три категории:
- Простые (строки, числа, булевы значения).
- Коллекции (списки, словари, множества, кортежи).
- Другие (итераторы, файлы, сокеты и так далее).
Над каждым типом можно выполнять как универсальные, так и уникальные операции. Чтобы освежить знания, прочитайте еще раз урок про типы данных.
Форматирование строк в Python
Есть три основных способа форматирования строк в Python. Устаревший вариант с использованием операции % мы не рассматривали. Вспомним синтаксис с использованием метода format():
a = "IP: {}".format('192.168.0.1')
print(a) # => IP: 192.168.0.1
И, на мой взгляд более предпочтительный способ, использование f-строк:
mask, ip = '24', '192.168.1.1'
result = f'{ip}/{mask}'
result # => 192.168.1.1/24
Условная инструкция if
Вспомним синтаксис условной инструкции if:
a = 2
if (a == 2):
print("Два")
elif (a == 3):
print("Три")
else:
print("Другое число")
Преобразование и проверка типов в Python
В основном для преобразования типов в Python нам понадобятся 7 функций:
int()- строка в число.bin()- десятичное число в двоичный формат.hex()- десятичное число в шестнадцатеричный формат.list()- строку в список.set()- строку во множество.tuple()- строку в кортеж.str()- объект в строку.
И следующие для проверки типов:
isdigit()- в строке только цифры?isalpha()- в строке только буквы?isalnum()- в строке и числа, и буквы?type()- к какому типу принадлежит объект?
Пример использования type():
a = 'Hello'
a = list(a)
if (type(a) == str):
print('Строка')
elif (type(a) == list):
print('Список)
В Python можно вызывать методы цепочкой
Следующий пример:
str = "Hello, World"
l_str = str.split(',')
first_word = l_str[0]
s_first_word = set(first_word)
c = s_first_word.__len__()
print(c) # => 4
Можно переписать благодаря возможности в Python перечислять методы цепочкой:
set(str.split(',')[0]).__len__() # => 4
Заключение
В этом разделе познакомились с базовыми понятиями языка: модель данных и типы данных. Научились преобразовывать типы и использовать условную инструкцию if. Выбрали для себя удобный способ форматирования строк и узнали о тонкостях языка, благодаря которым можно сократить объем кода. В следующем разделе познакомимся с циклами и модулем random.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.
