Простой Python для опытных программистов
Покупка
Новинка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
СОЛОН-Пресс
Автор:
Гаско Рик
Под ред.:
Комлев Николай Юрьевич
Год издания: 2021
Кол-во страниц: 268
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-91359-452-5
Артикул: 767815.02.99
Я написал учебник программирования для тех, кто не умеет программировать вообще, но хочет. Я написал книгу для умеющих программировать, но желающих программировать лучше. Потом я написал книгу для не умеющих программировать вообще, но желающих программировать на Питоне (Python). И вот, круг замкнулся. Эта книга для тех, кто программировать может вполне прилично, но теперь хочет освоить Питон. Сначала очень краткое изложение структур языка — ведь читатель программировать уже хорошо умеет. Далее некоторые продвинутые темы, в первую очередь — Объектно Ориентированное Программирование и как оно устроено в Питоне. Это обязательно надо знать. Сейчас в подготовке моя книга Простой Питон: Практическое применение — игры и математика.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 00.03.03: Информатика
- 09.03.01: Информатика и вычислительная техника
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.03: Прикладная информатика
- ВО - Специалитет
- 00.05.03: Информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Серия «Программирование» Рик Гаско Простой 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 BeijingCambridgeFarnhamKölnSebastopolTokyo Что-то мне стало тревожно. Как говорят в таких случаях у шумеров: «Якщо це не зрада, то що тоді зрада?». И вообще – чей Крым? Из хорошего: англоязычная книга Лутца кажется гораздо лучше переведённых – возможно, это проблема переводчика? Из плохого: Лутц утомляет проблемами скорости, эффективности и оптимизации. Да какая разница? О книге – это то, что и заявлено в заголовке – краткий справочник по Питону. В первую очередь справочник, и очень справочный справочник – 10