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

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

Покупка
Артикул: 712489.01.99
К покупке доступен более свежий выпуск Перейти
Книга представляет собой учебник по программированию на языке Python. Она написана простым языком, при этом повествование «идет» не от возможностей языка, а от особенностей конкретных задач. Приводятся типичные ошибки начинающих программировать и дается ряд полезных советов. Рассмотрены основные типовые задачи и методы их решения с подробными комментариями. Издание рассчитано на школьников, студентов и любых других читателей, начинающих изучать программирование с помощью языка Python или уже имеющих небольшой опыт написания программ на другом языке. Книга также будет полезна учителям средних школ, преподавателям вузов и колледжей.
Златопольский, Д.М. Основы программирования на языке Python / Д.М. Златопольский. - Москва : ДМК Пресс, 2017. - 284 с. - ISBN 978-5-97060-552-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1028147 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Златопольский Д. М. 

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

Москва, 2017

УДК    004.438Python
ББК     32.973.26-018.1
З67

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

Основы программирования на языке Python. – М.: ДМК Пресс, 
2017. – 284 с.: ил.

ISBN 978-5-97060-552-3

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

УДК  004.438Python
ББК  32.973.26-018.1

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

© Д. Златопольский, 2017

ISBN 978-5-97060-552-3
© Оформление, издание ДМК Пресс, 2017

Оглавление

Введение.................................................................. 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

Введение

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

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

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

Глава.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 
ЯПВУ поэтому так и называются, что они, так сказать, «ориентированы» на человека, в отличие от машиноориентированных языков (языков двоичных кодов и ассемблеров).

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

Как же поступить, чтобы компьютер мог выполнять программу 
на ЯПВУ? А так, как можно общаться двум людям, один из которых 
знает только китайский язык, а второй – только русский: нужен переводчик! Поэтому во всех современных системах программирования 
предусмотрен транслятор – системная программа, осуществляющая 
перевод прикладной программы, написанной программистом на 
ЯПВУ, в язык машинных кодов и ее выполнение (см. рис. 1.3)4.

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

Транслятор 

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

Рис..1.3

Существуют два вида трансляторов:
1) интерпретаторы; 
2) компиляторы.
Интерпретатор читает очередную команду программы и сразу ее 
выполняет, не переводя всю программу в машинный код.
Компилятор читает всю программу целиком, делает ее перевод и 
создает законченный вариант программы на «машинном языке», который затем и выполняется.
Вопрос о преимуществах и недостатках каждого варианта транслятора здесь обсуждать не будем5, а скажем, что язык программирования Python6, как правило, работает в режиме интерпретации.
В качестве примера программы на Python приведем программу решения задачи расчета площади любого прямоугольника:

#Ввод размеров прямоугольника
a = int(input('Введите длину прямоугольника в см'))
b = int(input('Введите высоту прямоугольника в см'))
#Расчет площади
pl = a * b

4 
Транслятор обычно выполняет также диагностику ошибок и др.
5 
Подумайте над этим вопросом.
6 
Язык Python иногда называют языком программирования не проcто высокого, а 
«очень высокого уровня».

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

#Вывод ответа на экран
print('Площадь прямоугольника равна', pl, 'кв. см')

Итак, Python – это язык программирования, на котором разрабатываются программы. Чтобы сделать этот процесс удобным для вас 
и других программистов, разработаны системы программирования, 
включающие транслятор, текстовый редактор (позволяющий копировать, удалять и перемещать фрагменты программ), справочную систему, средства отладки (поиска ошибок в программе) и др.  Имеется 
несколько вариантов языка Python и систем программирования для 
него.
В данной книге используется вариант CPython с версией 3.6.0 
языка, который распространяется по свободной лицензии Python 
Software Foundation License. 

Контрольные.вопросы
1. Что такое «алгоритм решения задачи»?
2. Какие вы знаете способы записи алгоритма?
3. В чем особенности алгоритма, который называют «программой»?
4. Почему языки программирования высокого уровня так называются?
5. Что такое «транслятор»? Какие функции он выполняет? 
6. Какие виды трансляторов вы знаете? В чем особенность каждого вида?
7. Что включает в себя система программирования?

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

Итак, вы установили систему программирования с языком Python. 
Запустите ее: Пуск → Все программы → Python 3.6 → IDLE (Python 
3.6 32-bit):

Рис..2.1

Откроется главное окно Python Shell так называемой интегрированной среды разработки (Integrated DeveLopment Environment – 
IDLE)1:

Рис..2.2..Окно.Python.Shell

Окно Python Shell обеспечивает доступ к интерактивному режиму 
работы, когда каждая введенная команда сразу выполняется. 
Поскольку никаких команд языка Python мы пока не знаем, то будем использовать систему программирования как калькулятор (возможности системы это позволяют).
1. 2 + 5 
2. 3 * (5 – 8) 
3. 2.4 + 3.0/2 

1 
В дальнейшем окно Python Shell удобнее вызывать с помощью ярлыка, который 
надо разместить, например, на рабочем столе. Для размещения ярлыка нужно перетащить строку IDLE (Python 3.6 32-bit) (см. рис. 2.1) на рабочий стол.

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

Наберите подобные примеры в интерактивном режиме (после 
>>>; в конце каждого примера нажимайте клавишу <Enter>). Обратите внимание, что в числах с дробной частью в качестве разделителя 
используется точка, а не запятая. Набранные команды сразу выполняются, и результат выводится на экран. 
В интерактивном режиме можно также писать и выполнять очень 
простые программы. Но для написания сложных программ используется другой режим работы – программный, когда записывается вся 
программа и при запуске выполняется целиком (предварительно она 
сохраняется в файле на диске (что удобно для повторного выполнения). Программу на Python часто называют «скриптом». 
Мы будем говорить главным образом о программном режиме.
Чтобы перейти в программный режим, нужно в меню File выбрать 
пункт New File или одновременно нажать клавиши <Ctr+N>. Появится окно для разработки программы (окно редактора):

Рис..2.3

Теперь мы можем написать свою первую программу на Python. 
В большинстве книг по программированию первая программа решает задачу вывода на экран приветствия «Здравствуй, мир!». Так же 
поступим и мы. 
Напомним, что программа, как и алгоритм решения задачи, состоит из команд, которые надо выполнить для решения задачи. Эти команды в языке Python называются «инструкциями».  
Вот текст программы:

print('Здравствуй, мир!')

Вы, конечно, поняли, что для вывода на экран некоторого текста 
в языке Python используется инструкция print(). Ее особенности 
подробно описаны в следующей главе.
После начала набора текста программы в окне редактора в заголовке окна слово Untitled будет «окружено» символами «*»:

Рис..2.4

К покупке доступен более свежий выпуск Перейти