1   2   3   4   5   6   7   8   9   ...   37
Ім'я файлу: Ел Свейгарт. Большая книга проектов Python.pdf
Розширення: pdf
Розмір: 7929кб.
Дата: 19.05.2022
скачати
Пов'язані файли:
22 тема ПИТАННЯ.docx
Плеврити 3 мк.docx
ІСТОРІЯ_ХВОРОБИ.docx
Тема_№_22_Робочий_зошит_Ендокринна_система_Тихонова.docx
Лікування туберкульозу.docx
_Завдання_5_залік (2).docx

2022
БОЛЬШАЯ КНИГА
ПРОЕКТОВ
PYTHON
Э Л С В Е Й Г А Р Т

2022
БОЛЬШАЯ КНИГА
ПРОЕКТОВ
PYTHON
Э Л С В Е Й Г А Р Т

ББК 32.973.2-018.1
УДК 004.43
С24
Свейгарт Эл
С24 Большая книга проектов Python. — СПб.: Питер, 2022. — 432 с.: ил. — (Серия
«Библиотека программиста»).
ISBN 978-5-4461-1907-3
Вы уже освоили основы синтаксиса Python и готовы программировать? Отточите свои навыки на самых интересных задачах — графике, играх, анимации, расчетах и многом другом. Вы можете экспериментировать, добавляя к готовым проектам собственные детали.
В 256 строк кода поместится всё — «винтажная» экранная заставка, забег улиток на скорость, рекламный заголовок-приманка, вращающаяся спираль ДНК и так далее. Добавьте к этому пару строк своего кода, и вы сможете делиться собственными уникальными проектами в интернете.
16+
(В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
ББК 32.973.2-018.1
УДК 004.43
Права на издание получены по соглашению с No Starch Press. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на- дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими.
ISBN 978-1718501249 англ.
© 2021 by Al Sweigart. The Big Book of Small Python Projects: 81 Easy
Practice Programs, ISBN 9781718501249, published by No Starch Press Inc. 245 8th Street, San Francisco,
California United States 94103
ISBN 978-5-4461-1907-3
© Перевод на русский язык ООО Издательство «Питер», 2022
© Издание на русском языке, оформление ООО Издательство
«Питер», 2022
© Серия «Библиотека программиста», 2022

Оглавление
Об авторе ....................................................................................................................................
9
О научном редакторе ..........................................................................................................
10
Введение ....................................................................................................................................
11
Проект 1. Бейглз ..................................................................................................................
25
Проект 2. Парадокс дней рождения ............................................................................
30
Проект 3. Сообщение в виде битовой карты ...........................................................
35
Проект 4. Блек-джек ..........................................................................................................
39
Проект 5. Отскакивающий от краев логотип DVD .................................................
47
Проект 6. Шифр Цезаря ...................................................................................................
53
Проект 7. Взлом шифра Цезаря ...................................................................................
57
Проект 8. Генерация календарей ..................................................................................
60
Проект 9. Морковка в коробке .....................................................................................
65
Проект 10. Чо-хан ...............................................................................................................
71
Проект 11. Генератор заголовков-приманок .............................................................
75
Проект 12. Гипотеза Коллатца .......................................................................................
80
Проект 13. Игра
«
Жизнь
»
Конвея .................................................................................
83
Проект 14. Обратный отсчет ..........................................................................................
87
Проект 15. Глубокая пещера ...........................................................................................
90
Проект 16. Ромбы ................................................................................................................
93

6
Оглавление
Проект 17. Арифметика с игральными костями .....................................................
97
Проект 18. Выбрасыватель игральных костей ........................................................
104
Проект 19. Цифровые часы ...........................................................................................
108
Проект 20. Цифровой поток .........................................................................................
111
Проект 21. Визуализация ДНК .....................................................................................
114
Проект 22. Утята ...............................................................................................................
118
Проект 23. Гравировщик .................................................................................................
124
Проект 24. Разложение на множители ....................................................................
130
Проект 25. Быстрый стрелок ........................................................................................
134
Проект 26. Фибоначчи ...................................................................................................
137
Проект 27. Аквариум ......................................................................................................
141
Проект 28. Заливка ..........................................................................................................
150
Проект 29. Моделирование лесного пожара .........................................................
157
Проект 30. Четыре в ряд ...............................................................................................
162
Проект 31. Угадай число .................................................................................................
168
Проект 32. Простак .........................................................................................................
171
Проект 33. Мини-игра со взломом ............................................................................
173
Проект 34.
«
Виселица
»
и
«
Гильотина
»
179
Проект 35. Гексагональная сетка ...............................................................................
185
Проект 36. Песочные часы ............................................................................................
188
Проект 37. Голодные роботы .......................................................................................
194
Проект 38.
«
Я обвиняю!
»
202
Проект 39. Муравей Лэнгтона .....................................................................................
211
Проект 40. П0г0в0рим (leetspeak) .............................................................................
217
Проект 41. Под счастливой звездой...........................................................................
220

Оглавление
7
Проект 42. Магический хрустальный шар ...............................................................
228
Проект 43. Манкала ........................................................................................................
231
Проект 44. Бегущий в лабиринте 2D ........................................................................
238
Проект 45. Бегущий в лабиринте 3D ........................................................................
244
Проект 46. Моделирование статистики за миллион бросков игральных костей .......................................................................................
253
Проект 47. Генератор картин в стиле Мондриана ..............................................
256
Проект 48. Парадокс Монти Холла ...........................................................................
263
Проект 49. Таблица умножения..................................................................................
270
Проект 50. Девяносто девять бутылок .....................................................................
272
Проект 51. ДевяНосто деевяять буутылок ...............................................................
275
Проект 52. Счет в различных системах счисления .............................................
279
Проект 53. Периодическая таблица элементов ....................................................
283
Проект 54. Поросячья латынь ......................................................................................
287
Проект 55. Лотерея Powerball ......................................................................................
290
Проект 56. Простые числа .............................................................................................
295
Проект 57. Индикатор хода выполнения .................................................................
298
Проект 58. Радуга .............................................................................................................
302
Проект 59. Камень, ножницы, бумага .....................................................................
306
Проект 60. Камень, ножницы, бумага (беспроигрышная версия) .................
310
Проект 61. Шифр ROT13 ..................................................................................................
314
Проект 62. Вращающийся куб ......................................................................................
317
Проект 63. Царская игра Ура ......................................................................................
324
Проект 64. Семисегментный модуль индикации .................................................
333
Проект 65. Ковер из
«
Сияния
»
337
Проект 66. Простой шифр подстановки ...................................................................
340

8
Оглавление
Проект 67. Синусовидное сообщение .......................................................................
345
Проект 68. Игра в 15 .......................................................................................................
349
Проект 69. Бега улиток ..................................................................................................
355
Проект 70. Соробан
— японский абак ....................................................................
359
Проект 71. Повторение музыки ...................................................................................
365
Проект 72. Губкорегистр ................................................................................................
369
Проект 73. Головоломка судоку .................................................................................
372
Проект 74. Преобразование текста в речь ............................................................
379
Проект 75. Три карты Монте .......................................................................................
381
Проект 76. Крестики-нолики ........................................................................................
387
Проект 77. Ханойская башня .......................................................................................
391
Проект 78. Вопросы с подвохом .................................................................................
396
Проект 79. Игра
«
2048
»
403
Проект 80. Шифр Виженера .........................................................................................
411
Проект 81. Головоломка с ведрами воды ................................................................
416
Приложение A. Указатель тегов ................................................................................
422
Приложение Б. Таблица кодов символов ...............................................................
426

Об авторе
Эл Свейгарт (Al Sweigart) — разработчик программ- ного обеспечения, автор и участник Python Software
Foundation. Ранее работал руководителем по вопросам образования в Музее искусств и цифровых развлечений — музее компьютерных игр Окленда, Калифорния. Эл написал несколько книг по программированию, включая Automate the
Boring Stuff with Python
1
и Invent Your Own Computer Games with
Python
2
. Книги Эла свободно доступны под лицензией Creative Commons на его сай- те https://inventwithpython.com/
. Его кошка Зофи обожает снеки с водорослями нори.
1
Свейгарт Э. Автоматизация рутинных задач с помощью Python. — М.: Вильямс, 2017.
2
Свейгарт Э. Учим Python, делая крутые игры. — М.: Эксмо, 2021.

О научном редакторе
Сара Кучински (Sarah Kuchinsky) — магистр естествен- ных наук, корпоративный инструктор и консультант.
Она использует Python для множества целей, включая моделирование систем здравоохранения, разработку игр и автоматизацию задач. Сара — один из основателей конфе- ренции North Bay Python, председатель комиссии по обуча- ющим пособиям конференции PyCon US и ведущий организатор группы PyLadies Silicon Valley. Защитила дипломы по теории управления, инже- нерии и математике.

Введение
Программировать легко, когда можно просто скопиро- вать print('Hello,
world!')
. Вероятно, вам случалось читать хорошо структурированную книгу или проходить онлайн-курс для начинающих, прорабатывая упражнения и поддакивая жаргонным словечкам, которые вы (более или менее) понимали. Однако когда пришло время покидать гнездо и писать собственные программы, возможно, летать самостоятельно оказалось не так просто. Вы обнаружили, что пялитесь в пустое окно редактора и не знаете, как начать писать свои программы на Python.
Проблема в том, что следовать учебнику очень полезно для усвоения теории, но это далеко не всегда то же самое, что учиться писать новые программы с нуля. На данном этапе часто рекомендуют изучать программное обеспечение с открытым исходным кодом или работать над собственными проектами, но проекты с откры- тым исходным кодом далеко не всегда хорошо документированы или доступны для начинающих. И хотя работа над собственными проектами очень стимулирует, вы остаетесь совершенно без руководства.
В книге вы найдете практические примеры применения различных идей про- граммирования в виде коллекции более чем 80 игр, имитационных моделей и объ- ектов цифрового искусства. Они представляют собой не просто фрагменты кода, а полноценные работающие программы на Python. Вы можете скопировать их код, чтобы лучше познакомиться с тем, как они работают, поэкспериментировать, а затем попытаться воссоздать их самостоятельно в качестве практики. Вскоре вы найдете идеи для собственных программ и, главное, будете знать, как приступить к их реализации.
Проектирование маленьких программ
Программирование зарекомендовало себя как навык, открывающий большие возможности, в том числе по созданию технологических компаний стоимостью

12
Введение миллиарды долларов и потрясающих технических достижений. Стремиться к боль- шему при создании своего ПО легко, но когда переоцениваешь свои силы — в конце концов получаешь только незаконченные программы и разочарование. Однако вовсе не нужно быть компьютерным гением, чтобы создавать интересные и креативные программы.
Проекты на Python в этой книге отвечают нескольким основным принципам про- ектирования, чтобы упростить для начинающих понимание исходного кода.
Они маленькие — большинство приведенных в книге программ не превышает
256 строк кода, а часто они намного короче. Благодаря таким ограничениям размера читателю проще понять эти программы. Число 256 выбрано случай- но, но 256 = 2 8
, а степени двойки — счастливые для программистов числа.
Приводятся в виде текста — текст проще, чем графика. Когда и исходный код, и выводимые программой результаты представляют собой текст, можно легко отследить, скажем, причинно-следственную связь между оператором print('Thanks for playing!')
в коде и выводимой на экран надписью
Thanks for playing!
Не требуют установки — все программы заключены в отдельные, само- достаточные файлы исходного кода Python с расширением
.py
, например tictactoe.py
. Не нужно запускать программу установки и можно легко разместить такую программу в интернете, чтобы поделиться ею с другими.
Их много — в книге приведена 81 программа. Вы обязательно найдете про- граммы себе по вкусу среди настольных игр, карточных игр, художественных цифровых изображений, имитационных моделей, математических загадок, лабиринтов и развлекательных программ.
Они простые — эти программы были написаны так, чтобы быть понятными даже для начинающих. Выбирая между кодом на основе сложных, высоко- производительных алгоритмов и простым и ясным кодом, я всегда в этой книге склонялся к последнему.
Программы в текстовом формате могут показаться несколько старомодными, но подобный стиль программирования позволяет не отвлекаться на нюансы, связанные со скачиванием графических данных, установкой дополнительных библиотек и ор- ганизацией каталогов проекта. Вместо этого можно сосредоточиться на самом коде.

  1   2   3   4   5   6   7   8   9   ...   37

скачати

© Усі права захищені
написати до нас