Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы алгоритмизации и программирования на Python

Покупка
Основная коллекция
Артикул: 683004.06.01
Доступ онлайн
от 516 ₽
В корзину
В учебном пособии рассмотрены основы алгоритмизации и программирования на языке Python. Содержится описание такого материала, как работа линейных, разветвляющихся и циклических структур, обработка списков, кортежей и вложенных последовательностей, создание модулей. Приведены примеры создания объектно-ориентированных и событийно-ориентированных программ. Кроме того, рассмотрены методы работы со строками, функциями, файлами. В конце каждой главы содержится набор контрольных вопросов и упражнений, задач для самостоятельного решения. В приложении приведены варианты к лабораторным работам по темам, изложенным в учебном пособии. Содержание книги будет полезно студентам и преподавателям средних профессиональных учебных заведений, а также школьникам при подготовке к Единому государственному экзамену по дисциплине «Информатика и ИКТ».
291
Гуриков, С. Р. Основы алгоритмизации и программирования на Python : учебное пособие / С.Р. Гуриков. — Москва : ИНФРА-М, 2023. — 343 с. — (Среднее профессиональное образование). - ISBN 978-5-16-016906-4. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1927269 (дата обращения: 30.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
ОСНОВЫ 

АЛГОРИТМИЗАЦИИ 

И ПРОГРАММИРОВАНИЯ 

НА PYTHON

С.Р. ГУРИКОВ

Рекомендовано 

Учебно-методическим советом СПО в качестве учебного пособия 

для студентов учебных заведений, реализующих программу 

среднего профессионального образования по специальностям 

09.02.01 «Компьютерные системы и комплексы», 

09.02.02 «Компьютерные сети», 

09.02.03 «Программирование в компьютерных системах», 

09.02.04 «Информационные системы (по отраслям)», 

09.02.05 «Прикладная информатика (по отраслям)»

Москва
ИНФРА-М

202УЧЕБНОЕ ПОСОБИЕ


УДК 004.43(075.32)
ББК 32.973.1-018я723
 
Г95

Гуриков С.Р.

Г95 
 
Основы алгоритмизации и программирования на Python : учебное пособие / 

С.Р. Гуриков. — Москва : ИНФРА-М, 2023. — 343 с. — (Среднее профессиональное 
образование). 

ISBN 978-5-16-016906-4 (print)
ISBN 978-5-16-109958-2 (online)
В учебном пособии рассмотрены основы алгоритмизации и программирования 

на языке Python. Содержится описание такого материала, как работа линейных, разветвляющихся 
и циклических структур, обработка списков, кортежей и вложенных 
последовательностей, создание модулей. Приведены примеры создания объектно-
ориентированных и событийно-ориентированных программ. Кроме того, рассмот-
рены методы работы со строками, функциями, файлами.

В конце каждой главы содержится набор контрольных вопросов и упражнений, за-

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

Содержание книги будет полезно студентам и преподавателям средних профессио-

нальных учебных заведений, а также школьникам при подготовке к Единому государ-
ственному экзамену по дисциплине «Информатика и ИКТ».

УДК 004.43(075.32)

ББК 32.973.1-018я723

Р е ц е н з е н т:

Шакин В.Н., кандидат технических наук, доцент, заведующий кафедрой «Ин-

форматика», декан общетехнического факультета (ОТФ2) Московского техни-
ческого университета связи и информатики

ISBN 978-5-16-016906-4 (print)
ISBN 978-5-16-109958-2 (online)
© Гуриков С.Р., 2016

ВВЕДЕНИЕ 

В условиях глобальных информационных процессов, решения социально-
экономических проблем актуализируется важность информатизации образования. 
На сегодняшний день почти все учебные заведения обладают новейшим компью-
терным оборудованием, подключенным к сети Интернет. 
Однако известно, что мало иметь современный персональный компьютер, 
нужно также позаботиться и об установке программного обеспечения. Не сек-
рет, что лицензионные программы стоят немалых денег, которые не всегда есть 
в бюджете того или иного учебного заведения. В частности, по этой причине 
компания Microsoft разработала ряд программ лицензирования программных 
продуктов специально для учебных заведений, например, Microsoft Academic 
Open License – для высших учебных заведений и учебных заведений среднего и 
среднего специального образования, а также Microsoft School Agreement – для 
начальных и средних учебных заведений. 
Вместе с очевидными достоинствами такого подхода имеется и существен-
ный недостаток – формирование зависимости начинающих пользователей от 
того или иного программного продукта. В результате после окончания учебного 
заведения вчерашние школьники или студенты задумываются о приобретении 
необходимых им программ уже на коммерческой основе. 
Следует отметить, что в учебных заведениях всех уровней можно использовать 
и преподавать свободные программные продукты, потому что только с их помо-
щью можно реализовать право человека на распространение, усовершенствование 
и изучение используемых им программ. 
Рынок программного обеспечения сегодня крайне изменчив и нестабилен, но, 
тем не менее, он находится в непрерывном развитии, и многие технологии обу-
чения, в частности программированию, уже безвозвратно устарели. Ярким при-
мером этого является обучение в средах Turbo Pascal и QBasic. Эти две про-
граммы, активно использующиеся в настоящее время в школьных курсах, уже не 
соответствуют уровню развития современных сред разработки. Более того, в них 
не поддерживаются принципы объектно-ориентированного подхода, а ведь 
именно на нем основаны методики разработки большинства современного про-
граммного обеспечения. 
Отличным решением, с точки зрения преподавания основ программирования 
и алгоритмизации школьникам и студентам, может стать изучение языка Python, 
который относится к категории свободно распространяемого программного 
обеспечения. Следует отметить, что разработчики контрольно-измерительных 
материалов Единого государственного экзамена по дисциплине «Информатика и 
ИКТ» уже включили в задания по программированию примеры кодов на этом 
языке. 
Python – современный, активно развивающийся язык программирования, ко-
торый привлекает разработчиков всего мира. Он используется во многих круп-

ных компаниях, таких как Google, IBM, Microsoft, Red Hat, Yahoo! и др. Это бес-
платная система с открытым кодом, поддерживающая динамическую типизацию 
(не надо заранее объявлять переменные), объектно-ориентированное програм-
мирование, интеграцию с другими языками, такими как C, C++, Java, обладает 
кроссплатформенностью (независимостью от той или иной операционной сис-
темы) и многими другими достоинствами. 
Тем не менее, проведенный анализ литературы по языку программирования 
Python, имеющейся на рынке книгопечатной продукции, показал, что ее содер-
жание практически не отвечает целям совместной работы студента и преподава-
теля в конкретном учебном заведении и на конкретном занятии. В основном 
книги по программированию на Python имеют характер справочных изданий 
либо вовлекают читателя в написание игровых моментов. Вероятно, подобное 
изложение представляет интерес для начинающего, но при этом рабочие про-
граммы дисциплин, связанных с обучением программированию, подразумевают 
совершенно иной алгоритм знакомства с языком. 
Таким образом, главная цель настоящего издания – обеспечить прочное и созна-
тельное освоение основ алгоритмизации и программирования, формирование прак-
тических умений – профессиональных, учебных, интеллектуальных, необходимых 
школьнику или студенту. Помимо приобретения чисто практических умений, цен-
ных с точки зрения освоения компьютерной грамотности, ребята получат наглядное 
представление о возможностях, предоставляемых компьютером человеку, вырабо-
тают при решении поставленных задач такие профессионально значимые качества, 
как самостоятельность, ответственность, точность, творческая инициатива. 
Учебное пособие построено так, что непосредственно к программированию 
читатель приступает с самого начала – первая программа описывается уже во 
второй главе (в первой главе приводятся теоретические основы алгоритмизации 
и программирования). 
Во второй главе описан процесс создания проекта на Python, рассказано о 
методах ввода и вывода данных, способах обработки исключительных ситуаций, 
возникающих в ходе выполнения программ. 
В третьей, четвертой и пятой главах подробно рассматриваются операто-
ры, относящиеся к трем «китам» программирования – линейному, разветвляю-
щемуся и циклическому алгоритмам. 
В шестой главе изложен процесс работы с кортежами (последовательность 
данных, не позволяющая изменять свои значения) и списками (являются изме-
няемыми последовательностями), а также работа со словарями (структурами 
данных). 
Материал седьмой главы даст представление о работе со строками, познако-
мит с функциями и методами работы с ними, базовыми алгоритмами их обра-
ботки. 
В восьмой главе объясняется работа со вложенными последовательностями, 
рассматриваются «классические» способы их обработки. 
В девятой главе речь пойдет о создании пользовательских функций, технике 
написания и импортирования собственных модулей. 

Десятая глава содержит информацию о работе с файлами, умение работать с 
которыми – необходимая компетенция человека, постигающего азы программи-
рования. 
Одиннадцатая и двенадцатая главы посвящены объектно-ориентированному 
и событийно-ориентированному программированию. Читатель получит пред-
ставление о создании таких объектов, как классы, научится писать методы, рас-
ширяющие функциональность классов, а также создавать новые классы на осно-
ве уже существующих. Кроме того, знакомство с программированием виджетов 
позволит приобрести навыки создания Windows-приложений на языке Python. 
В книге приведено около 200 листингов программ, снабженных коммента-
риями. Для удобства их чтения полужирным шрифтом выделены основные 
программные конструкции, функции и методы языка Python. При наборе на 
компьютере программ, приведенных в учебном пособии, следует учитывать, что 
в Python отступы (четыре пробела или нажатие клавиши Tab) являются частью 
синтаксиса программных конструкций. 
Материал, изложенный в пособии, особенно будет полезен школьникам при 
подготовке к ЕГЭ по дисциплине «Информатика и ИКТ», студентам, обучаю-
щимся на технических специальностях техникумов, колледжей и вузов. Апроба-
ция учебного пособия показала, что учащиеся, не имеющие подготовки в облас-
ти программирования, не только успешно осваивают представленные в пособии 
приложения, но и вносят свои очень интересные изменения, направленные на 
улучшение их работы. 
Преподаватели могут оценить учебное пособие с точки зрения методики пре-
подавания. Многие программы специально написаны таким образом, чтобы 
учащиеся имели возможность доработать или оптимизировать их код, что по-
может педагогу создать творческую атмосферу на занятиях. Практически к каж-
дому из разделов приведены примеры решения задач, упражнения, задачи для 
самостоятельного решения, контрольные вопросы, позволяющие оценить уро-
вень подготовки школьника или студента. 
Следует отметить, что учебное пособие не может претендовать на функцио-
нальную полноту или на полную оригинальность приведенных методов, алго-
ритмов и программ. Автор преследовал иную цель: привлечь внимание школь-
ников, студентов и преподавателей к такому активно развивающемуся языку 
программирования, как Python, дать почувствовать его преимущественные отли-
чия от других языков. Python доступен для свободного скачивания по адресу 
http://www.python.org/. 
Материал предлагаемого учебного пособия был подготовлен автором на ос-
нове многолетнего опыта преподавания курса алгоритмизации и программирования 
школьникам, студентам среднего и высшего профессионального образования, 
написания книг по программированию в различных средах. 
 

 

 

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ  
АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ 

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

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

1.1. Алгоритм. Свойства алгоритма. 
Способы описания алгоритма 

Если мы хотим написать программу на каком-либо языке программирования, то 

сначала нам следует составить алгоритм решения задачи. 

Алгоритм – это точное и простое описание последовательности действий для 

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

Каждый из нас ежедневно использует различные алгоритмы: инструкции, 

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

1. Достать ключ. 
2. Вставить ключ в замочную скважину. 
3. Повернуть ключ два раза против часовой стрелки. 
4. Вынуть ключ. 
Представим, что мы поменяли местами второе и третье действия. Мы сможем 

выполнить и этот алгоритм, но дверь не откроется, т. е. алгоритм станет невы-
полнимым. 

Для алгоритма важен не только набор действий, но и то, в каком порядке они 

выполняются. Понятие алгоритма в информатике является фундаментальным. 

е

Таким же, какими являются понятия точки, прямой и плоскости в геометрии, 
вещества в химии, пространства и времени в физике и т. д. 
Свойства алгоритма: 
 
дискретность (прерывность, раздельность) – алгоритм должен представлять 
процесс решения задачи как последовательное выполнение простых шагов 
(этапов); 
 
определенность – каждый шаг алгоритма должен быть четким и однознач-
ным. Выполнение алгоритма носит механический характер и не требует ни-
каких дополнительных сведений о решаемой задаче; 
 
результативность – алгоритм должен приводить к решению задачи за конеч-
ное число шагов; 
 
массовость – алгоритм решения разрабатывается в общем виде, т. е. он дол-
жен быть применим для решения некоторого класса задач, различающихся 
лишь исходными данными. 
Способы описания алгоритмов 
 
словесный; 
 
графический; 
 
табличный; 
 
формульный. 
1. Словесный способ каждый из нас использует ежедневно, пересказывая собе-
седнику, например, различные инструкции, правила, кулинарные рецепты, т. 
е. какую-то последовательность, приводящую к конечному результату. 
2. Графический способ представления алгоритмов является более компактным 
и наглядным по сравнению со словесным. Как часто для лучшего понимания 
той или иной ситуации нам проще начертить какую-то схему, план, согласно 
которым мы будем действовать. В программировании данный способ пред-
почтителен, поскольку позволяет с помощью последовательности функцио-
нальных блоков, каждый из которых соответствует выполнению одного или 
нескольких действий, представить ход решения той или иной задачи. Такое 
представление алгоритма называется структурной схемой алгоритма, или 
блок-схемой.  
3. Табличный способ используется, например, в бухгалтерии при составлении 
ежегодных отчетов, сводок и т. д. 
4. Формульный способ находит свое применение при решении задач из облас-
ти математики, физики и т. д. Например, при решении квадратного уравне-
ния мы приступаем к нахождению дискриминанта уравнения, а затем, в за-
висимости от полученного результата, находим корни уравнения по извест-
ным всем формулам. 

1.2. Назначение функциональных блоков 

На условные обозначения в схемах алгоритмов, программ, данных и систем 
распространяется ГОСТ 19.701—90. «ЕСПД. Схемы алгоритмов, программ, дан-
ных и систем. Обозначения условные и правила выполнения». При отрисовке 

блок-схем мы будем использовать функциональные блоки, представленные ни-
же. Заметим, что некоторые их названия или отрисовка не всегда совпадают с 
указанными в ГОСТ, поэтому при создании схем алгоритмов для курсовых, ди-
пломных работ, безусловно, следует обратиться к существующему стандарту. 

Начало и конец алгоритма 

 

 

Вычислительная операция 

 

Ввод/вывод данных 

 

 

 

Проверка условия  
(логического выражения) 

 

 

Начало циклического алгоритма 

 

 

Разрыв соединительных линий 
на странице 

Вызов пользовательской функции 

 

 

Линии потоков 

 

Комментарий 

 

 

 

Вывод на печать 

 

1.3. Основные этапы решения задач 

Процесс решения некоторой задачи в среде программирования, как правило, 
состоит из нескольких этапов, часть из которых выполняется пользователем, а 
часть – компьютером. 
1-й этап. Общая постановка задачи. 
На этом этапе описывается содержание задачи, составляется перечень исход-
ных данных. 
2-й этап. Разработка математической модели. 
Цель этого этапа состоит в установлении формализованных связей между ис-
ходными данными и искомыми результатами. Этап заключается в записи рас-
четных формул или функциональных зависимостей. 

3-й этап. Разработка алгоритма. 
Этап состоит в описании последовательности действий, в результате которых 
может быть получено решение задачи. 
4-й этап. Разработка программы. 
Программа составляется в полном соответствии с разработанным алгоритмом 
решения задачи. 
5-й этап. Отладка программы. 
Процесс поиска ошибок в программе и их устранение. 
6-й этап. Анализ результатов. 
Позволяет принять решение о необходимости внесения изменений в про-
грамму, проведении дополнительных расчетов или их окончании. 

1.4. Алфавит языка Python 

Изучение любого языка начинается с изучения алфавита, из букв складыва-
ются слова, из слов – предложения. То же происходит и при изучении языка 
программирования. Сначала мы должны уяснить, какие символы можно исполь-
зовать для записи слов языка, из которых можно формировать определенные 
конструкции. Итак, в алфавит языка Python входят: 
1. Латинские буквы от  a  до  z  и  от  A  до  Z. 
В Python есть различия между прописными и строчными буквами алфавита, 
например, chislo, CHISLO, Chislo – разные имена переменных. 
2. Цифры от 0 до 9. 
3. Специальные символы, например   +,   -,   *,   /. 
4. Зарезервированные (служебные) слова: for, if, class, def и т. д. 

1.5. Идентификаторы и общие правила их написания 

Для того чтобы программа решения задачи обладала свойством массово-
сти, следует употреблять не конкретные значения величин, а использовать их 
обозначения для возможности изменения по ходу выполнения программы их 
значений. Для обозначения в программе переменных и постоянных величин ис-
пользуются имена – идентификаторы (identification – установление соответст-
вия объекта некоторому набору символов). 
Программа на Python представляет собой последовательность инструк-
ций, которые называются операторами. Необходимо учитывать, следующее: 
 в идентификатор не могут входить пробелы, специальные символы алфа-
вита; 
 идентификатор начинается только с буквы или со знака подчеркивания; 
 идентификатор может состоять из букв, цифр и знака подчеркивания; 
 при написании идентификаторов можно использовать как прописные, так 
и строчные буквы латинского алфавита; 
 идентификатор не должен являться зарезервированным словом. 
Например: 

summa1 
правильно 
2delta 
ошибка 
Block_35 
правильно 
Nomer.doma 
ошибка 
Сумма 
ошибка 

1.6. Оператор присваивания 

Действия, выполняемые компьютером в процессе решения задачи, записы-
ваются в виде операторов алгоритмического языка. Изменение значения пере-
менной осуществляется оператором присваивания. Присваивание в Python 
означает связывание значения с некоторым именем переменной.  
Действие, выполняемое этим оператором, обозначается знаком «=».  
Слева от этого знака записывается имя той переменной, которой нужно при-
своить новое значение (например, x=). Справа может быть: 
1. Число, например x=5. 
Прокомментируем предложение, выделенное выше полужирным шрифтом. 
Дело в том, что при выполнении оператора x=5 в оперативной памяти по неко-
торому адресу будет создан объект, получивший значение 5. Затем будет созда-
на переменная x, которой будет присвоен адрес этого объекта. Такой механизм 
занесения значений в ячейки памяти отличает Python от других языков програм-
мирования. Однако в дальнейшем при объяснении материала, связанного с опе-
раторами присваивания, мы будем использовать упрощенный вариант и выра-
жаться так: «в ячейку x заносится число 5». 
2. Выражение, например, арифметическое x=(3*a)/2 или логическое  
x=a>1. 
3. Другая переменная, например x=a. 
Операторы выполняются в той последовательности, в которой они записаны 
в программе. Например, фрагмент программы нахождения среднего арифмети-
ческого включает операторы: 
a=5 
b=10 
s=a+b 
v=s/2 
Возможна запись оператора присваивания в следующем виде: 
*= оператор – умножение с присваиванием, например, x*=5 идентичен опе-
ратору x=x*5. 
/= оператор – деление с присваиванием, например, x/=5 идентичен оператору 
x=x/5. 
%= оператор – остаток от деления с присваиванием, например, x%=5 иденти-
чен оператору x=x%5. 
+= оператор – сложение с присваиванием, например, x+=5 идентичен опера-
тору x=x+5. 
-= оператор – вычитание с присваиванием, например, x-=5 идентичен опера-
тору x=x-5. 

Доступ онлайн
от 516 ₽
В корзину