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 |