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

Простой Python для опытных программистов

Покупка
Новинка
Основная коллекция
Артикул: 767815.02.99
Я написал учебник программирования для тех, кто не умеет программировать вообще, но хочет. Я написал книгу для умеющих программировать, но желающих программировать лучше. Потом я написал книгу для не умеющих программировать вообще, но желающих программировать на Питоне (Python). И вот, круг замкнулся. Эта книга для тех, кто программировать может вполне прилично, но теперь хочет освоить Питон. Сначала очень краткое изложение структур языка — ведь читатель программировать уже хорошо умеет. Далее некоторые продвинутые темы, в первую очередь — Объектно Ориентированное Программирование и как оно устроено в Питоне. Это обязательно надо знать. Сейчас в подготовке моя книга Простой Питон: Практическое применение — игры и математика.
Гаско, Р. Простой Python для опытных программистов / Р. Гаско ; под ред. Н. Ю. Комлева. - Москва : СОЛОН-ПРЕСС, 2021. - 268 с. - (Серия «Программирование»). - ISBN 978-5-91359-452-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2185852 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Серия «Программирование» 
 
 
Рик Гаско 
 
 
 
 
 
Простой Python 
для 
опытных 
программистов 
 
 
 
 
 
 
 
 
Москва 
СОЛОН-Пресс 
2021 
 


УДК 681.3 
ББК 32.973-18 
     К 63 
 
Под редакцией Н. Комлева 
 
Рик Гаско  
Простой Python для опытных программистов. — М.: 
СОЛОН-Пресс, 2021. — 268 с.: ил. (Серия «Программирование») 
 
ISBN 978-5-91359-452-5 
 
Я написал учебник программирования для тех, кто не умеет программировать вообще, но хочет. Я написал книгу для умеющих программировать, но желающих программировать лучше. Потом я написал книгу для не умеющих программировать вообще, но желающих 
программировать на Питоне (Python). 
И вот, круг замкнулся. Эта книга для тех, кто программировать 
может вполне прилично, но теперь хочет освоить Питон. 
Сначала очень краткое изложение структур языка — ведь читатель программировать уже хорошо умеет. Далее некоторые продвинутые темы, в первую очередь — Объектно Ориентированное Программирование и как оно устроено в Питоне. Это обязательно надо 
знать. 
Сейчас в подготовке моя книга Простой Питон: Практическое 
применение — игры и математика 
 
 
 
 
По вопросам приобретения обращаться: 
ООО «СОЛОН-Пресс» 
Тел: (495) 617-39-64, (495) 617-39-65 
E-mail: kniga@solon-press.ru, www.solon-press.ru 
 
 
 
ISBN 978-5-91359-452-5 
© «СОЛОН-Пресс», 2021 
 
© Рик Гаско, 2021 


 
 
 
 
 
 
Посвящается 
тем программистам, 
кому интересны подробности 
 
 


Содержание 
 
Вступление 
.................................................................................................... 7 
О чём эта книга .......................................................................................... 7 
Для кого эта книга ..................................................................................... 7 
Что ещё почитать 
....................................................................................... 8 
Предупреждения, разъяснения и соглашения 
....................................... 11 
О том, что в этой книге будет 
................................................................. 12 
Какой именно Питон? ............................................................................. 14 
Proudly presents! ....................................................................................... 15 
Последние новости 
.................................................................................. 15 
Самые последние новости ...................................................................... 16 
Часть первая, она же и последняя. Краткое введение в Питон для  
опытных программистов 
............................................................................ 17 
Глава первая. Питон в статике .................................................................. 17 
Технические подробности ...................................................................... 17 
Начнём с комментариев, и с того, как вообще пишут текст ............... 19 
Переменные и типы, которых нет 
.......................................................... 21 
Вывод и ввод 
............................................................................................ 23 
Числа и операции над ними 
.................................................................... 27 
Нетрадиционные числа ........................................................................... 32 
Булевские переменные и выражения 
..................................................... 34 
Случайность в Питоне ............................................................................ 36 
Глава первая, продолжение. Питон в статике. Строки ........................... 41 
На что похожа строка 
.............................................................................. 41 
О грустном ............................................................................................... 43 
Срезы ........................................................................................................ 44 
Как всё-таки что-то со строкой сделать ................................................ 46 
Всякое необязательное, но иногда полезное 
......................................... 48 
Глава вторая. Краткое введение. Питон в динамике 
............................... 55 
Условные операторы 
............................................................................... 55 
Циклы, которые есть ............................................................................... 62 
Задача с циклами с обсуждением.  И с перспективой на будущее ..... 68 
Абсолютно то же самое, но совсем по-другому ................................... 75 
Другие циклы 
........................................................................................... 76 
Глава третья. Списки, кортежи, словари 
.................................................. 82 
Массивы, которых нет ............................................................................ 82 
Кортеж – это понятно, только зачем? 
.................................................... 85 
4 


Словари – это просто............................................................................... 86 
Глава четвёртая. Питон, расфасованный по пакетикам. Функции ........ 89 
Немного вообще по теме. ....................................................................... 89 
Функции вообще 
...................................................................................... 91 
Функции конкретно 
................................................................................. 96 
Теперь о мелочах ................................................................................... 100 
Запретное – проверка типов параметров 
............................................. 104 
Кое-что ещё о параметрах .................................................................... 117 
И ещё о параметрах – важное и полезное ........................................... 120 
Функция с функцией для функции от функции ................................. 125 
Lambda. Оно надо? ................................................................................ 128 
О скучном. Область видимости переменных 
...................................... 131 
Глава пятая. Питон, как консервы в холодильнике. Файлы 
................. 136 
Бинарные файлы .................................................................................... 136 
Файлы. Задача почти реальная. Постановка задачи 
........................... 142 
Файлы. Задача почти реальная. Просто записать 
............................... 145 
Файлы. Задача почти реальная. Не только просто прочитать ........... 147 
Замечания и размышления о бинарных файлах ................................. 150 
Файлы текстовые ................................................................................... 151 
Файлы текстовые. Работа над ошибками ............................................ 152 
Объект в файл, или, по-другому, сериализация ................................. 154 
Около файлов. Рекурсивный обход директорий ................................ 155 
Глава шестая. Более сложные примеры из жизни файлов 
.................... 158 
Текстовый файл – скучно и коряво 
...................................................... 158 
Текстовый файл – научно и бесполезно. И, возможно, забавно ....... 168 
Глава седьмая. Введение в графику, которого нет 
................................ 181 
Глава восьмая. Питон и математика ....................................................... 182 
Хорошая одномерная функция 
............................................................. 184 
Хорошая одномерная функция. Плохой метод 
................................... 189 
Теперь очень серьёзно. Многомерная функция 
.................................. 196 
Глава девятая. Модули, очень коротко .................................................. 198 
Глава десятая. Классы 
.............................................................................. 202 
Два слова о классах. Или три ............................................................... 203 
Всё объектно-ориентированное программирование коротко ........... 205 
Простые примеры абсолютно бесполезных классов 
.......................... 207 
А теперь – инкапсуляция подробнее ................................................... 209 
А теперь – конструктор 
......................................................................... 212 
Наследование ......................................................................................... 214 
Это можно пропустить 
.......................................................................... 217 
5 


Полиморфизм 
......................................................................................... 219 
Теперь тот же полиморфизм, но для Питона ...................................... 225 
Немного более сложный и осмысленный пример .............................. 228 
Это мы любим – свойства 
..................................................................... 231 
Это скучно – записать и прочитать класс ........................................... 236 
Разрозненные замечания о классах 
...................................................... 241 
Перегрузка, или переопределение, операторов .................................. 245 
Приложение A. Как работать в традиционной среде ............................ 248 
Приложение B. Как работать в интерактивной среде ........................... 251 
Приложение C. Что такое Geany. Коротко 
............................................. 255 
Приложение D. Так что же такое текстовый файл ................................ 256 
Приложение E. Что нужно знать об оптимизации – на трёх  
страницах................................................................................................... 258 
Теория, в смысле – классификация методов 
....................................... 259 
Практика, в смысле – оптимизация для альтернативно  
одарённых .............................................................................................. 260 
Приложение F. Страшное слово – PEP-8 ............................................... 265 
Приложение G. Что-то в этом есть ......................................................... 266 
Приложение H. 18+. Отношение к Питону через проекцию  
А. С. Пушкина 
........................................................................................... 267 
 
6 


Вступление 
О чём эта книга 
Я написал книгу о языке программирования Питон. Книга была предназначена только для начинающих программировать с самого начала. Говоря 
по-русски – тем, кто ничего в программировании не понимает и хочет 
начать освоение программирования именно с языка Питон. С этой задачей 
я успешно справился. Однако чуть позже ко мне пришёл Добрый Издатель и задал ряд вполне разумных вопросов. А где книга для тех, кто 
умеет программировать и кому не надо объяснять, что такое цикл и что 
такое массив? А где книга для тех, кто умеет программировать очень хорошо 
и 
желает 
знать, 
как 
все 
устроено 
в Питоне 
объектно-ориентированное программирование (ООП) – а оно там даже очень 
есть. В отличие от массивов, которых – сюрприз – в Питоне просто нет. И – 
вопрос даже более важный – где книга о том, о чём опытные программисты на других языках даже и не спрашивают, потому что в их языках этого 
просто нет? А в Питоне есть много странных вещей, которых нет в традиционных языках программирования. 
 
И тут я задумался и решил написать эту книгу. 
 
Для кого эта книга 
Для программистов, которые хорошо и, может быть, даже отлично умеют 
программировать на традиционных языках программирования. Под традиционным языком здесь и далее понимается C++, просто C, Delphi и 
мутанты наподобие C#. Фортран – в ту же копилку, на нём всё ещё программируют, но таких всё меньше. К сожалению, уже выросло поколение 
программистов, даже не слышавших про язык Pl/I. Для тех, кто не в танке – 
это подразумевалось как сокращение от Programming Language Number 
One. Для всех этих программистов что-то в Питоне покажется странным, 
что-то неудобным, а что-то наоборот – светлым и радостным. 
 
В этой книге я не буду объяснять, что такое переменная, что такое тип 
переменной, массив, запись, файл, цикл, строка – особенно с учётом того, 
что многие из этих понятий в Питоне начисто отсутствуют. 
 
Вначале я объясню элементарные понятия программирования применительно к Питону. Во многом это будет повторение того, что я уже писал в 
7 


предыдущей книге. Но я, как порядочный человек, ничего из предыдущей 
книги копировать не буду – весь текст написан заново и все примеры 
программного кода тоже вполне оригинальны. Разумеется, если вы не 
читали предыдущую книгу, вам это будет абсолютно безразлично.  
 
И да, книга предназначена также для особо одарённых, которые могут 
изучать по ней Питон с нуля. Но ответственность за результат лежит на 
вас.  
 
 
Что ещё почитать 
Книги по Питону естественным образом делятся на два подмножества: 
книги, уже переведённые на русский язык, и книги, которые ещё не переведены. Книги, относящиеся ко второй группе, естественным образом 
придётся читать в английском оригинале. Я уже много раз повторял – 
идите на курсы английского, если вы не в состоянии прочитать английский 
технический текст. <Кстати, здесь могла бы быть ваша реклама, если вы 
владелец курсов, конечно>. 
 
Абсолютно все согласны, что лучший из авторов, переведённых на русский, это Марк Лутц. В оригинале его зовут – Mark Lutz. Книг по Питону 
он написал невероятное множество, переведено намного меньше, можно 
сказать – почти ничего. Из того что есть, основная – для начинающих – это: 
 
Марк Лутц «Изучаем Питон» / Learning Python (2008) 
издавалась на русском много раз 
 
Почему-то на обложке вместо традиционной змеи имеет место какая-то 
крыса. Достаточно просто и достаточно подробно объясняются основы 
Питона и даже чуть больше. С этой книги действительно можно начать 
знакомство с языком. 
 
Его же книга для тех, кто любит подробности и кому хочется странного: 
 
Программирование на Python / Programming Python (2001) 
 
Основы Питона уже пора знать, но если вам интересно применение Питона 
к узким техническим областям, то это книга для вас. Узкие темы – не 
8 


значит бесполезные темы, эти темы могут оказаться полезными исключительно для вас. Я уже говорил, что для меня из всех узких тем по жизни 
оказалось исключительно полезным только объектно-ориентированное 
программирование. Хотя узкой темой оно является только в контексте 
Питона. 
 
Напоминаю, традиционно на обложках книг по Питону изображается или 
неведомая змея, или конкретная крыса. И то и другое – непонятно почему, 
для меня, по крайней мере.  
 
Как ни странно, кроме русского языка, есть и другие языки, неведомо зачем. Например, американский английский, не путать с британским английским. У них теперь даже и между собой разборки начались на тему, 
какой правильнее. А всего-то двести лет понадобилось. У нас, типа славян, 
всё быстрее: тридцать лет – и появился украинский русский язык. Но это я 
отвлёкся, позже я напишу книгу о применении IT-методов в лингвистике. 
Сейчас я только о том, что бывают хорошие книги, которые пока не переведены. 
 
Python Crash Course by Eric Matthes 
 
Английский язык книги прост, ясен и понятен, как и в большинстве книг 
по программированию. Излагает чётко и внятно. Упомянутый ранее Лутц 
демонстрирует технологию программирования на примере унылой пиццерии, где выпекают множество разных пицц, а сотрудникам часто повышают зарплату, но никогда не понижают и не вышибают пинком под 
зад. Вроде бы теперь это называется толерантностью и политкорректностью. Ну не люблю я толерантов, не люблю. У этого автора – Eric 
Matthes – пицца тоже встречается, но только конкретно, в качестве еды. 
Его примеры – всё больше компьютерные игры с отстрелом aliens – чужих. 
Ну люблю я отстреливать чужих, люблю. Цитата из автора: 
 
Imagine an alien was just shot in a game. Write an if statement to test whether an 
alien’s color is green. If it is, the player just earned 5 points. 
«Вы только что подстрелили чужого. Проверьте цвет. Если зелёный, 
добавьте на счёт пять очков». 
 
Нет ли здесь расизма? Почему за чёрных не дают очков? 
 
9 


На данный момент это лучшая книга по Питону из всех прочитанных 
мною. И ещё мне очень понравился его полиграфический подход 
к программному коду. Автор часто повторяет ранее приведённый код 
с добавлениями. Старая часть у него приведена серым шрифтом, новая – 
чисто чёрным. Во-первых, это наглядно. Во-вторых – незаметно, но ощутимо увеличивает оплачиваемый текст. В следующей своей книге я тоже 
так сделаю. 
 
Маленькое печальное уточнение – книга делится на две части. В первой – 
краткий курс языка. Во второй части – реализация нескольких проектов. 
Всё, что я похвалил, относится только к первой части. Проекты из второй 
части программируются с применением нескольких специализированных 
библиотек, к изучению которых дело и сводится. Не факт, что эти библиотеки когда-нибудь вам понадобятся.  
 
И всё, что в Crash написано о файлах, написано не очень хорошо. 
 
Ещё из непереведённого – наш вечный и универсальный Лутц, только 
теперь на родном английском. 
 
Python Pocket Reference/ Python in Your pocket. Fifth Edition. 
 
Так и хочется впендюрить вместо каждой точки по восклицательному 
знаку. Издано O’Reilly Media. Меня привлекла гордая надпись на титульном листе – список городов: 
 
2014 BeijingCambridgeFarnhamKölnSebastopolTokyo  
 
Что-то мне стало тревожно. Как говорят в таких случаях у шумеров: 
«Якщо це не зрада, то що тоді зрада?». И вообще – чей Крым? 
 
Из хорошего: англоязычная книга Лутца кажется гораздо лучше переведённых – возможно, это проблема переводчика? 
 
Из плохого: Лутц утомляет проблемами скорости, эффективности и оптимизации. Да какая разница? 
 
О книге – это то, что и заявлено в заголовке – краткий справочник по 
Питону. В первую очередь справочник, и очень справочный справочник – 
10