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

Основы программирования на языке Python

Покупка
Артикул: 712489.02.99
Доступ онлайн
439 ₽
В корзину
Книга представляет собой учебник по программированию на языке Python. Она написана простым языком, приводятся типичные ошибки начинающих программировать, и даётся ряд полезных советов. Рассмотрены основные типовые задачи и методы их решения с подробными комментариями. Во второе издание добавлено Приложение 3 с ответами к заданиям и задачами по разработке программ. Издание будет полезно школьникам и студентам, а также учителям средних школ и преподавателям вузов и колледжей и всем, кто начинает изучать программирование с помощью языка Python или уже имеющих небольшой опыт программирования на другом языке.
Златопольский, Д. М. Основы программирования на языке Python : учебник / Д. М. Златопольский. - 2-е изд. - Москва : ДМК Пресс, 2018. - 396 с. - ISBN 978-5-97060-641-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2012512 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Златопольский Д. М.

Основы 
программирования 
на языке
Python

2-е издание

Москва, 2018

УДК    373.167.1:004.42+004.42(075.3)
ББК     32.973.721
З67

З67     Златопольский Д. М. 

Основы программирования на языке Python. 2-е изд. – М.: ДМК 
Пресс, 2018. – 396 с.: ил.

ISBN 978-5-97060-641-4

Книга представляет собой учебник по программированию на языке 
Python. Она написана простым языком, приводятся типичные ошибки 
начинающих программировать, и даётся ряд полезных советов. Рассмотрены основные типовые задачи и методы их решения с подробными комментариями. Во второе издание добавлено Приложение 3 
с ответами к заданиям и задачами по разработке программ.
Издание будет полезно школьникам и студентам, а также учителям средних школ и преподавателям вузов и колледжей и всем, кто 
начинает изучать программирование с помощью языка Python или 
уже имеющих небольшой опыт программирования на другом языке.

УДК  373.167.1:004.42+004.42(075.3)
ББК  32.973.721

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

   © Златопольский Д. М., 2018
ISBN 978-5-97060-641-4 
   © Оформление, издание ДМК Пресс, 2018

Оглавление

Введение.................................................................. 7

Глава.1..Понятия.«алгоритм».и.«программа».................... 8

Глава.2..Python..Первые.шаги......................................13

Глава.3..Вывод.информации.на.экран............................21

Глава.4..Переменные.величины..Ввод.данных..
в.программу..Инструкция.присваивания........................31

Глава.5..Варианты.действий.в.программе......................45

5.1. Два варианта действий  ......................................................... 45
5.2. Один, но не обязательный вариант действий  ........................ 54
5.3. Три и более вариантов действий ............................................ 59

Глава.6..Повторение.действий.в.программе...................65

6.1. Инструкция for ....................................................................... 65
6.2. Инструкция while .................................................................... 75
6.3. Преобразование одной инструкции цикла в другую ............... 83

Глава.7..Программируем.простейшие.игры....................92

7.1. Игра «Чет или нечет?»  ........................................................... 92
7.2. Игра «Кубик» .......................................................................... 94
7.3. Игра «Отгадай число» ............................................................ 95
7.4. Игра «Карты» ......................................................................... 96
7.5. Проверка знания таблицы умножения .................................... 98
7.6. Игра «Предметы на столе» ..................................................... 98

Глава.8..Повторение.повторений................................102

Глава.9..«Обрабатываем».натуральное.число................113

9.1. Выделение цифр ................................................................. 113
9.2. Определение m-й справа цифры числа ................................ 114
9.3. Определение m-й слева цифры числа ................................. 115
9.4. Определение суммы цифр числа ......................................... 116
9.5. Определение максимальной цифры числа ........................... 116
9.6. Определение минимальной цифры числа ............................ 117

Оглавление

9.7. Определение номера максимальной цифры числа  
при счете справа налево ..................................................... 117
9.8. Определение номера минимальной цифры числа  
при счете справа налево ..................................................... 118

Глава.10..Типовые.задачи.обработки.набора.чисел.......126

10.1. Суммирование всех чисел набора ........................................ 126
10.2. Суммирование чисел набора, которые обладают  
некоторыми свойствами (удовлетворяют некоторому  
условию) ............................................................................. 127
10.3. Подсчет количества чисел набора, которые обладают 
некоторыми свойствами ..................................................... 128
10.4. Определение среднего арифметического тех чисел  
набора, которые обладают некоторыми свойствами ........... 129
10.5. Определение порядкового номера некоторого значения 
в заданном наборе .............................................................. 131
10.6. Определение максимального значения в наборе чисел ....... 132
10.7. Определение порядкового номера максимального  
значения в наборе чисел ..................................................... 134
10.8. Определение максимального значения тех чисел набора, 
которые удовлетворяют некоторому условию ..................... 135
10.9. Нахождение второго по величине максимального числа  
набора ................................................................................ 136

10.9.1. Поиск числа, которое стояло бы на предпоследнем месте,  
если бы числа набора были отсортированы по неубыванию ....... 137
10.9.2. Нахождение числа набора, больше которого только  
максимальное............................................................................ 139
10.10. Нахождение количества максимальных элементов  
набора ............................................................................... 140
10.11. Нахождение третьего максимума ....................................... 141

Глава.11..Работа.со.строками....................................145

11.1. Общие вопросы ................................................................. 145
11.2. Типовые задачи обработки строк ....................................... 148
11.3. Преобразования «число ↔ строка»  ................................... 163

Глава.12..Использование.списков...............................165

12.1. Общие вопросы ................................................................. 165
12.2. Заполнение списка значениями ......................................... 166
12.3. Вывод списка на экран ....................................................... 171

Глава.13..Типовые.задачи.обработки.списков...............176

13.1. Расчеты ............................................................................... 176
13.1.1. Суммирование элементов списка .............................................. 176

Оглавление

13.1.2. Нахождение суммы элементов списка с заданными  
свойствами (удовлетворяющих некоторому условию) .............. 177
13.1.3. Нахождение количества элементов списка с заданными 
свойствами  .............................................................................. 178
13.1.4. Нахождение среднего арифметического значения элементов 
списка с заданными свойствами............................................... 179

13.2. Поиск и отбор нужных элементов ......................................... 181

13.2.1. Вывод на экран элементов с заданными свойствами  ................ 181
13.2.2. Запись всех элементов списка с заданными свойствами  
в другой список ........................................................................ 181
13.2.3. Вывод на экран индексов элементов списка с заданными 
свойствами ............................................................................... 182
13.2.4. Поиск индекса первого элемента списка с заданными  
свойствами ............................................................................... 182

13.3. Работа с максимальными/минимальными элементами  
списка ................................................................................. 183
13.3.1. Определение индекса максимального элемента списка ............ 184
13.3.2. Определение количества максимальных/минимальных  
элементов списка ..................................................................... 185
13.3.3. Нахождение второго по величине (второго максимального  
или второго минимального) значения списка  ........................... 186

13.4. Перестановки элементов ..................................................... 188

13.4.1. Обмен местами двух элементов списка ..................................... 188
13.4.2. Удаление элемента из списка .................................................... 188
13.4.3. Циклический сдвиг элементов списка влево .............................. 191
13.4.4. Вставка элемента в список ........................................................ 192
13.4.5. Циклический сдвиг элементов списка вправо ............................ 194
13.4.6. Перестановка всех элементов списка в обратном порядке ........ 195

13.5. Проверка соответствия списка в целом некоторому  
условию .............................................................................. 197

13.5.1. Проверка факта наличия в списке элемента с заданными 
свойствами (удовлетворяющего некоторому условию) ............. 197
13.5.2. Проверка факта наличия в списке элемента с заданным  
значением ................................................................................ 203
13.5.3. Проверка того факта, что все элементы списка соответствуют 
некоторому условию ................................................................. 203
13.5.4. Проверка списка на упорядоченность ........................................ 203

13.6. Задача «Слияние (объединение) списков» ........................... 204

Глава.14..Использование.словарей.............................208

14.1. Общие вопросы ................................................................... 208
14.2. Создание словаря ................................................................ 209
14.3. Обращение к отдельному элементу словаря ........................ 210
14.4. Перебор элементов словаря ................................................ 211
14.5. Некоторые другие средства для работы со словарями ......... 211
14.6. Частотный словарь .............................................................. 212

Оглавление

14.7. Словари со значениями разных типов .................................. 213

Глава.15..Использование.файлов...............................216

15.1. Общие вопросы ................................................................... 216
15.2. Запись информации в файл ................................................. 218
15.3. Чтение информации из файла .............................................. 221
15.4. Изменение файлов .............................................................. 232
15.4.1. Запись в файл новой строки....................................................... 232
15.4.2. Замена строки файла ................................................................. 233

Глава.16..Об.использовании.функций..........................235

Приложение.1..Служебные.(ключевые).слова..
языка.Python...........................................................250

Приложение.2..Разрабатываем.графический..
интерфейс.программы.............................................251

П2.1. Общие вопросы ................................................................. 251
П2.2. Создание виджетов ........................................................... 255
П2.3. Размещаем виджеты ......................................................... 259
П2.4. Доступ к значениям в виджетах ......................................... 262
П2.5. Изменение конфигурации виджетов  ................................. 266
П2.6. Заставляем виджеты работать .......................................... 268
П2.7. Итоги ................................................................................. 279
П2.8. Задания для самостоятельной работы .............................. 280

Приложение.3..Ответы.к.заданиям..Программы.решения.
задач,.предложенных.для.самостоятельной.работы......284

Литература............................................................395

Введение

Когда человек хочет передвинуть гору, он начинает с того, что убирает маленькие камни.

Восточная мудрость

Эта книга для тех, кто хочет научиться программировать на языке 
программирования Python. Ее отличие в том, что в ней главное – не 
описание языка программирования, которое представлено в большинстве книг по программированию. В данной книге рассматриваются особенности разработки программ, описываются методы решения 
типовых задач, встречающихся при разработке, распространенные 
алгоритмы, даются советы и т. п. Это учебник, в котором в доступной 
форме излагаются вопросы, с которыми сталкивается человек, начинающий осваивать этот непростой, но захватывающий и очень интересный процесс – программирование.
В первой части книги (главы 1–6) рассматриваются особенности 
разработки компьютерных программ и соответствующие инструкции 
языка Python. После их изучения читатель сможет разработать ряд 
простейших игр, описанных в главе 7. В завершающей части книги 
(главы 8–16) рассматриваются основные структуры данных языка 
Python (строки, списки, словари), вопросы, связанные с работой с 
файлами, а также с совершенствованием программ на основе использования функций. 
По всем темам, рассмотренным в книге, приводятся большое число 
примеров и задач, подробная методика их решения и соответствующие программы с комментариями. Дается ряд полезных советов. 
В приложении 2 описаны особенности разработки программ на 
языке Python с графическим пользовательским интерфейсом.
В приложении 3 приводятся ответы к заданиям и программы решения задач, предложенных в книге для самостоятельной работы.

Глава.1...
Понятия.«алгоритм».
и.«программа»

Алгоритм решения задачи – точное описание порядка действий, которые надо выполнить для решения задачи.
Приведем ряд примеров.
Вот старинная задача: «Однажды крестьянину понадобилось перевезти через реку волка, козу и капусту. У крестьянина есть лодка, в которой может поместиться, кроме самого крестьянина, только одно существо или предмет – или волк, или коза, или капуста. 
Если крестья нин оставит без присмотра волка с козой, то волк съест 
козу; если крестьянин оставит без присмотра козу с капустой – коза 
съест капусту. Как крестьянину перевезти на другой берег все свое 
имущест во в целости и сохранности?»
Чтобы решить задачу, крестьянин должен действовать так:
1) погрузить на лодку козу;
2) перевезти ее на другой берег;
3) выгрузить ее;
4) вернуться;
5) погрузить на лодку волка;
6) перевезти его на другой берег;
7) выгрузить его;
8) погрузить на лодку козу;
9) вернуться с ней на первый берег;
10) выгрузить ее;
11) погрузить на лодку капусту;
12) перевезти ее на другой берег;
13) оставить капусту на этом берегу;
14) вернуться на первый берег;
15) погрузить на лодку козу;
16) перевезти ее на другой берег;

Глава 1. Понятия «алгоритм» и «программа»

17) выгрузить козу;
18) остаться на втором берегу.
Возможен и второй вариант решения задачи (найдите его). Самостоятельно составьте также алгоритм решения такой задачи: «К реке 
подошла группа из 20 солдат, которым нужно переправиться на другой берег. Река глубокая и бурная, и ее без лодки переплыть невозможно. Солдаты увидели двух мальчиков с лодкой. Лодка такова, 
что в ней размещается только один солдат, только один мальчик или 
только два мальчика. Как солдатам переправиться?» 
Можно говорить об алгоритме приготовления торта в домашних 
условиях (только в этом случае мы алгоритм называем «рецептом»).
Пример из математики. Представьте, что товарищ принес вам чертеж прямоугольника и просит сообщить ему площадь этой фигуры. 
Какие действия вы должны выполнить, чтобы решить поставленную 
перед вами задачу? Вот ответ:
1) узнать (измерить) длину одной из сторон прямоугольника и 
запомнить (или записать) ее;
2) узнать (измерить) длину второй стороны фигуры и запомнить 
(или записать) ее;
3) рассчитать площадь, перемножив два найденных значения;
4) сообщить результат товарищу.
Каждый алгоритм рассчитан на какого-то исполнителя – человека (группу людей) или устройство (робот и др.), который выполняет 
действия, описанные в алгоритме. 

Задание.для.самостоятельной.работы
Представьте, что на стержень A надеты три диска:

A

B
C

Рис..1.1

Задача состоит в том, чтобы перенести диски со стержня A на стержень C, используя стержень B как промежуточный. При этом должны 
соблюдаться три условия: 
1) за один «ход» можно переносить лишь один диск; 
2) нельзя класть больший диск на меньший; 
3) снятый диск нельзя отложить в сторону – он должен быть надет на один из стержней.

Глава 1. Понятия «алгоритм» и «программа»

Опишите алгоритм решения задачи.
Понятие «программа решения задачи» возникает, когда речь идет 
о решении задачи на компьютере. Программа решения задачи – это 
алгоритм решения данной задачи, записанный в виде (на языке), 
«понятном» данному компьютеру. А какой язык «понимает» компьютер? В нем, как в техническом устройстве, информация может быть 
представлена в двоичном виде – в виде последовательности условных 
нулей и единиц. Значит, и описание действий, которые нужно выполнить для решения (в программировании их называют «командами»), 
должно поступать в компьютер в двоичном виде. Поэтому в первых 
электронных компьютерах программы представляли из себя последовательность двоичных чисел1:

1010 1101 0101 1000 …

Представляете, как трудно было программисту найти нужное место 
в программе, чтобы что-то изменить или добавить, найти и исправить 
ошибку? Чтобы устранить этот недостаток, были разработаны так называемые «языки программирования высокого уровня» (ЯПВУ)2 – 
Фортран, Алгол, Бейсик и др. Программы на ЯПВУ оформляются в 
привычном человеку3 виде: числа записываются как десятичные, а 
команды и другие служебные слова – на естественном (пусть и иностранном, но достаточно понятном) языке: PRINT, IF, BEGIN и т. п. 
Однако при этом получается противоречие – человеку-программисту 
удобно разрабатывать и читать программу, но компьютер такую программу не «поймет»!

Программа ЯПВУ 

?      
   ? 

Компьютер Язык двоичных кодов 

Рис..1.2

1 
Так как числа в двоичной системе «длинные», то для записи программ использовалась также восьмеричная или шестнадцатеричная система счисления. 
2 
Мы не рассматриваем использование для разработки программ языков ассемблера, 
имевшее место до применения ЯПВУ.
3 
ЯПВУ поэтому так и называются, что они, так сказать, «ориентированы» на человека, в отличие от машиноориентированных языков (языков двоичных кодов и ассемблеров).

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