Курс

"Программирование Phyton"

Циклы

Циклы – одни из основных концепций языка Питон. Они позволяют выполнить одно и то же действие несколько раз подряд. Например, с помощью циклов часто выводят записи с базы данных, а также они крайне полезны во время работы с массивами данных. В Python циклы выглядят несколько иначе от своих аналогов в прочих языках. 

 

Цикл while

Первый цикл, который мы рассмотрим, это цикл while. Он имеет следующее формальное определение:

while условное_выражение:   

инструкции

После ключевого слова while указывается условное выражение, и пока это выражение возвращает значение True, будет выполняться блок инструкций, который идет далее

Цикл for

Другой тип циклов представляет конструкция for. Цикл for вызывается для каждого числа в некоторой коллекции чисел. Коллекция чисел создается с помощью функции range(). Формальное определение цикла for:

for int_var in функция_range:

инструкции

 

После ключевого слова for идет переменная int_var, которая хранит целые числа (название переменной может быть любое), затем ключевое слово in, вызов функции range() и двоеточие

Функция range

Функция range имеет следующие формы:

range(stop): возвращает все целые числа от 0 до stop

range(start, stop): возвращает все целые числа в промежутке от start (включая) до stop (не включая). Выше в программе факториала использована именно эта форма

range(start, stop, step): возвращает целые числа в промежутке от start (включая) до stop (не включая), которые увеличиваются на значение step

Код и сопроводительные материалы

Списки

массивы

Списки (list) в языке Python

Встроенные функции работы со списками

Область применения

Одна из ключевых особенностей Python, благодаря которой он является таким популярным – это простота. Особенно подкупает простота работы с различными структурами данных – списками, кортежами, словарями и множествами. Сегодня мы рассмотрим работу со списками

Что такое список (list) в Python?

Список (list) – это структура данных для хранения объектов различных типов. Если вы использовали другие языки программирования, то вам должно быть знакомо понятие массива. Так вот, список очень похож на массив, только, как было уже сказано выше, в нем можно хранить объекты различных типов. Размер списка не статичен, его можно изменять. Список по своей природе является изменяемым типом данных. Про типы данных можно подробно прочитать здесь. Переменная, определяемая как список, содержит ссылку на структуру в памяти, которая в свою очередь хранит ссылки на какие-либо другие объекты или структуры. Списки также часто называют массивами в Питоне. Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться). Благодаря спискам мы можем хранить большое количество данных в одной переменной.

Списки можно также назвать массивами, так как выполняют они схожую роль. В Python существует множество разновидностей таких "массивов". В уроке мы рассмотрели лишь первый тип, который называется списком и имеет следующие характеристики:

его элементы можно переопределять

в него можно добавлять новые элементы

из него можно удалять элементы

в качестве ключей идут индексы (числа - 0, 1, 2...)

Это не все характеристики списка, тем не менее это ключевые моменты, которые отличают его от других "массивов" в языке Python

Как списки хранятся в памяти?

Как уже было сказано выше, список является изменяемым типом данных. При его создании в памяти резервируется область, которую можно условно назвать некоторым “контейнером”, в котором хранятся ссылки на другие элементы данных в памяти. В отличии от таких типов данных как число или строка, содержимое “контейнера” списка можно менять. Для того, чтобы лучше визуально представлять себе этот процесс взгляните на картинку ниже. Изначально был создан список содержащий ссылки на объекты 1 и 2, после операции a[1] = 3, вторая ссылка в списке стала указывать на объект 3

Код и сопроводительные материалы

Индексы и срезы

Рассмотрим индексированные коллекции (их еще называют последовательности — sequences) — список (list), кортеж (tuple), строку (string)

Под индексированностью имеется ввиду, что элементы коллекции располагаются в определённом порядке, каждый элемент имеет свой индекс от 0 (то есть первый по счёту элемент имеет индекс не 1, а 0) до индекса на единицу меньшего длины коллекции (т.е. len(mycollection)-1)
 

Получение значения по индексу

 

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

При задании отрицательного индекса, последний элемент имеет индекс -1, предпоследний -2 и так далее до первого элемента индекс которого равен значению длины коллекции с отрицательным знаком, то есть (-len(mycollection)

Код и сопроводительные материалы

Функции

Ключевые понятия: def, lambda и return, создание и вызов функций. Создание мини-программ на основе функций. Встроенные функции Python и рекурсия

 

Функции можно назвать небольшими подпрограммами, куда можно вынести повторяющийся код и обращаться к нему, когда это будет нужно. Функции значительно облегчают построение программ, так как нам не надо копировать однотипный код множество раз, а можно просто воспользоваться одной общей функцией.

Функции очень часто используются в программировании. В предыдущих занятиях мы уже встречались с встроенными функциями такими как ( print(), input(), len() и т.д. ). Попробуем разобраться что такое функции и как написать свою функцию

 

Что такое функция?

Часть кода, для которого мы (даем) присваиваем имя

Написав один раз, можно вызывать из разных мест программы

Функции позволяют структурировать код, разбив его на отдельные действия

Функции делают код более читабельным и упрощают поиск ошибок

 

Многие путают функции и методы в классах (ООП) и не понимают отличий между ними. На самом деле отличий нет, так как что методы, что функции являются одним и тем же. Функции что записаны вне классов называют функциями, а функции что записаны внутри классов называются методами

 

Задание:

Написать функцию month_to_season(), которая принимает 1 аргумент - номер месяца - и возвращает название сезона, к которому относится этот месяц.  Например, передаем 2, на выходе получаем 'Зима

Код и сопроводительные материалы

Другие типы данных

Словари (dict)

Словари отличаются способом их создания, а также индексами. Если в обычном списке в качестве индексов выступают числа (0, 1, 2...), то здесь на их замену приходят "ключи". Так, мы можем создать некий ключ (Студент Федя, например) и добавить к нему целый ряд характеристик (список) в качестве одного элемента. Теперь найти нужного нам студента будет намного проще, так как мы просто будет оперировать ключами, а не числами.

Во многих других языках программирования такие словари зачастую называются ассоциативными массивами, поэтому нередко можно услышать и такое название

Чтобы создать словарь вы можете воспользоваться следующей конструкцией:

dictionary = {'персона': 'человек',

              'марафон': 'гонка бегунов длиной около 26 миль',

              'противостоять': 'оставаться сильным, несмотря на давление',

              'бежать': 'двигаться со скоростью'}

 

Присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.

Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for и while), а также специальные методы словарей

Код и сопроводительные материалы