ebook img

Программирование на языке Python: учебный курс PDF

738 Pages·2017·56.959 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Программирование на языке Python: учебный курс

ПРОrРАММИРОВАНИЕ НА ЯЗЬIКЕ PYTHON: учебный курс INTRODUCTION ТО PROGRAMMING IN PYTHON Ап lnterdisciplinary Approach Robert Sedgewick Kevin Wayne Robert Dondero Princeton University ..•. .. . Addison-Wesley New York • Boston • lndianapolis • San Francisco Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo Singapore • Mexico City • ПРОГРАММИРОВАНИЕ НА ЯЗЬIКЕ PYTHON: учебный курс Роберт Седжвик Кевин Уэйн Роберт Дондеро Принстонский университет ДИАЛЕКТИКА Москва • Санкт-Петербург • Киев 2017 ББК 32.973.26-018.2.75 С28 УДК 681.3.07 Компьютерное издательство "Диалектика" Зав. редакцией Тригуб С.Н. Перевод с английского и редакция . Коваленко ВА. По общим вопросам обращайтесь в издательство "Диалектика" по адресу: iп[email protected], http://www.dialektika.com Седжвик, Роберт, Уэйн, Кевин, Дондеро, Роберт. С28 Программирование на языке Python: учебный курс. : Пер. с англ. - СПб. : ООО "Альфа-книга': 2017. - 736 с. : ил. - Парал. тит. англ. ISBN 978-5-9908462-1-0 (рус.) ББК 32.973.26-018.2.75 Всен азванпиряо граммнпырхо дуктяоввл яютзсаяр егистрироватнонрыгмоив ыммаир камсио ответ­ ствующифхи рм. Никакачяа стньа стоящиезгдоа нниияв какицхе лянхе м ожебты тьв оспроизвевдк еанкаоб йы т он и былоф ормеи какимбиы т он иб ылос редствабмуид,ть о э лектронинлыием еханичесвккилею,ч афяо ­ токопироваин зиаеп исньам агнитнныойс итеелсьл,ни а э тон етп исьменного разирзедшаетнеиляь ства Addison-WePsublleiys hing C!oпmсp.a ny, Authoritzreadn slfartoitmoh nEe n glilsahn guaegdeit ipounЬ lisЬhуeA dd dison-WPeusЬlleiys Choimnpga ny, IncC,o pyri©g h20t15 . Allr ighrtess ervNeod p.a rotf t hibso okm ayЬ еr eproduocret dr ansmiitnta endyf oromr Ь уa nym eans, electroormn eicch anical, pihnoctloucdoipnrygei cnogr,d oirЬn уga ny inforsmtaotriarogenet riseyvsatlew mi,t h­ outp ermissfiroontm hepu blisher. Russilaann guaegdei tiiospn u ЬlisЬhуeD di alektika ComputPeurb lBiosohakicsnc go rdtiotn hgAe g reement witRh& IE пterprIinsteesr national,© 2C01o7p. yright Книгнаа печатана содогглоавсонсроО у О О "ПРИМСНАБ': Научно-популярное издание Роберт Седжвик, Кевин Уэ йн, Роберт Дондеро Программирование на языке Python: учебный курс Литературный редактор Попова И.А. Верстка Мишутина О.В. Художественный редактор Е. П. Дынник Корректор Гордиенко Л.А. Подписавн пое чат21ь.0 9.2016. Форма7т0 х10.0/16 ГарнитуТрiаm es Ус1п1е.ч л..5 9 ,34. Уч.-из11д. 4.1, 9 Тираж40 0 экзЗ.а ка№з 6 235 ОтпечатавнА оО «ПервОабяр азцовтаияп ография• Филиа«1Ч1е ховсПкеичйа тныДйв ор» 142300, Московскоабя11 асrт. Чье,х оувл,П. о 11играфидс.т1о в, Сайтw:w w.chpdE.-rmua,is la:l es@chpтdе.л8r.(4u 99,) 270-73-59 ООО "Альфа-кн1и95г0а27', :С анкт-ПетурегрМ,ба гнитогоруслк"да .я30 ISBN97 8-5-9908462-1-0 (рус.) ©Компьютеринзоде- в"оД иалекти20к1а7, ", перевоодф,о рмленмиаек,е тирование ISBN97 8-0-13-407643-0 (англ.) © Pearson Edu!cпaсt2"0i1 o5 n, Введение 11 Глава Элементы программирования 19 1. 1.1. Первая программа 20 1.2. Встроенные типы данных 31 1.3. Условные выражения и циклы 70 1.4. Массивы 11 О 1.5. Ввод и вывод 147 1.6. Случай из практики: случайная навигация по сайтам 193 Глава Функции и модули 211 2. 2.1. Определение функций 212 2.2. Модули и клиенты 247 2.3. Рекурсия 285 2.4. Случай из практики: просачивание 316 Глава Объектно-ориентированное программирование 345 3. 3.1. Использование типов данных 346 3.2. Создание типов данных 393 3.3. Разработка типов данных 440 3.4. Случай из практики: моделирование N тел 486 Глава Алгоритмы и структура данных 499 4. 4.1. Эффективность 500 4.2. Сортировка и поиск 542 4.3. Стеки и очереди 576 4.4. Таблицы идентификаторов 619 4.5. Случай из практики: феномен "тесного мира" 667 Контекст 709 Глоссарий 713 Функции 719 API Предметный указатель 729 Элементы программирования Первая программа Программа 1.1.1. Hello, World (helloworld. ру) 21 Программа 1.1.2. Использование аргумента командной строки (useargument.py) 24 Встроенные типы данных Программа 1.2.1. Пример конкатенации строк (ruler. ру) 39 Программа 1.2.2. Целочисленные операторы (intops. ру) 42 Программа 1.2.3. Операторы чисел с плавающей точкой (floatops. ру) 45 Программа 1.2.4. Квадратичная формула (quadratic. ру) 46 Программа 1.2.5. Високосный год (leapyear. ру) 50 Условные выражения и циклы Программа 1.3.1. Орел или решка (flip. ру) 73 Программа 1.3.2. Ваш первый цикл (tenhellos. ру) 76 Программа 1.3.3. Вычислительные степеней числа 2 (powe rsoftwo. ру) 77 Программа 1.3.4. Ваш первый вложенный цикл (divisorpattern. ру) 83 Программа 1.3.5. Гармонические числа (ha rmonic. ру) 86 Программа 1.3.6. Метод Ньютона (sq rt. ру) 87 Программа 1.3.7. Преобразование в двоичный формат (Ьinary. ру) 89 Программа 1.3.8. Модель разорения игрока (gamЫer. ру) 91 Программа 1.3.9. Разложение на множители целых чисел (factors. ру) 93 Массивы Программа 1.4.1. Выборка без замены (sample. ру) 122 Программа 1.4.2. Модель коллекции купонов (couponcollector. ру) 126 Программа 1.4.3. Решето Эратосфена (primesieve. ру) 128 Программа 1.4.4. Случайные блуждания без самопересечений (selfavoid.py) 136 Список упражнений 7 Вводи вывод Программа 1.5.1. Создание случайной последовательности ( randomseq. ру) 149 Программа 1.5.2. Интерактивный пользовательский ввод (twentyquestions. py) 157 Программа 1.5.3. Среднее потока чисел (ave rage. ру) 159 Программа 1.5.4. Простой фильтр (rangefilter. ру) 163 Программа 1.5.5. Стандартный ввод и фильтрация рисунка (plotfilte r. ру) 169 Программа 1.5.6. Вывод графика функции (functiong raph. ру) 171 Программа 1.5.7. Прыгающий мяч (bouncingball. ру) 176 Программа 1.5.8. Обработка цифрового сигнала (playthattune. py) 181 Случай из практики: случайная навигация по сайтам Программа 1.6.1. Вычисление матрицы переходов (t ransi tion. ру) 196 Программа 1.6.2. Моделирование случайной навигации (randomsurfer. py) 199 Программа 1.6.3. Смешение цепи Маркова (markov. ру) 205 Функции и модули Определение функций Программа 2.1.1. Гармонические числа (повторно) (harmonicf. ру) 215 Программа 2.1.2. Гауссовы функции (gauss. ру) 225 Программа 2.1.3. Коллекционер купонов (повторно) (coupon. ру) 226 Программа 2.1.4. Проигрывание мелодии (повторно) (playthattunedeluxe. py) 235 Модули и клиенты Программа 2.2.1. Модуль Гауссовых функций (gaussian. ру) 249 Программа 2.2.2. Пример клиента модуля Гауссовых функций (gaussiantaЫe. py) 250 Программа 2.2.3. Модуль случайных чисел (std random. ру) 259 Программа 2.2.4. Система итерационных функций (i fs. ру) 266 Программа 2.2.5. Модуль анализа данных (stdstats. ру) 269 Программа 2.2.6. Рисование значений данных (stdstats. ру, продолжение) 272 Программа 2.2.7. Исследование Бернулли (bernoulli. ру) 274 8 Список упражнений Рекурсия Программа 2.3.1. Алгоритм Евклида (euclid. ру) 290 Программа 2.3.2. Ханойская башня (towersofhanoi. ру) 293 Программа 2.3.3. Код Грея (beckett. ру) 299 Программа 2.3.4. Рекурсивная графика (ht ree. ру) 301 Программа 2.3.5. Броуновский мост (Ь rownian. ру) 303 Случай из практики: просачивание Программа 2.4.1. Скаффолдинг просачивания (ре rcolationO. ру) 320 Программа 2.4.2. Обнаружение вертикального просачивания (percolationv.py) 322 Программа 2.4.3. Ввод-вывод просачивания (ре rcolationio. ру) 324 Программа 2.4.4. Клиент визуализации (visualizev. ру) 325 Программа 2.4.5. Оценка вероятности просачивания (estimatev. ру) 327 Программа 2.4.6. Обнаружение просачивания (percolation. ру) 329 Программа 2.4.7. Адаптивный графический клиент (ре rcplot. ру) 332 Объектно-ориентированное программирование Использование типов данных Программа 3.1.1. Идентификация потенциального гена (potentialgene. py) 353 Программа 3.1.2. Клиент заряженной частицы (chargeclient. ру) 357 Программа 3.1.3. Квадраты Альберса (alberssquares. ру) 362 Программа 3.1.4. Модуль яркости (luminance. ру) 364 Программа 3.1.5. Преобразование цвета в полутон (g rayscale. ру) 368 Программа 3.1.6. Масштабирование изображений (scale. ру) 369 Программа 3.1.7. Эффект постепенного изменения (fade. ру) 370 Программа 3.1.8. Визуализация электрического потенциала (potential.py) 373 Программа 3.1.9. Конкатенация файлов (cat. ру) 376 Программа 3.1.10. Анализ экранных данных для котировки акций (stockquote. ру) 378 Программа 3.1.11. Разделение файла (split . ру) 379 Создание типов данных Программа 3.2.1. Заряженная частица (charge. ру) 400 Программа 3.2.2. Секундомер (stopwatch. ру) 404 Программа 3.2.3. Гистограмма (histog ram. ру) 406 Список упражнений 9 Программа 3.2.4. Черепашья графика ( t u rt le. ру) 409 Программа 3.2.5. Удивительная спираль (spi ral. ру) 412 Программа 3.2.6. Комплексные числа (complex. ру) 417 Программа 3.2.7. Множество Мандельброта (mandelbrot. ру) 421 Программа 3.2.8. Биржевая учетная запись (stockaccount. ру) 425 Разработка типов данных Программа 3.3.1. Комплексные числа (complexpola r. ру) 446 Программа 3.3.2. Счетчик (counte r. ру) 449 Программа 3.3.3. Пространственные векторы (vector. ру) 456 Программа 3.3.4. Эскиз документа (sketch. ру) 473 Программа 3.3.5. Обнаружение подобия (comparedocuments. ру) 475 Случай из практики: моделирование тел N Программа 3.4.1. Гравитационное тело (body. ру) 490 Программа 3.4.2. Моделирование N тел (unive rse. ру) 493 Алгоритмы и структура данных Эффективность Программа 4.1.1. Задача суммирования триплетов (th reesum. ру) 503 Программа 4.1.2. Проверка гипотезы удвоения (douЫingtest. ру) 505 Сортировка и поиск Программа 4.2.1. Бинарный поиск (20 вопросов) (questions. ру) 544 Программа 4.2.2. Дихотомический поиск (bisection. ру) 548 Программа 4.2.3. Бинарный поиск (в отсортированном массиве) (binarysearch.py) 551 Программа 4.2.4. Сортировка вставкой (insertion. ру) 555 Программа 4.2.5. Проверка сортировки удвоением (timesort. ру) 557 Программа 4.2.6. Сортировка с объединением (me rge. ру) 560 Программа 4.2.7. Подсчет частот (f requencycount. ру) 565 Стеки и очереди Программа 4.3.1. Стек (массив переменного размера) (arraystack.py) 580 Программа 4.3.2 Стек (связанный список) (linkedstack. ру) 584 Программа 4.3.3. Вычисление выражения (evaluate. ру) 591 Программа 4.3.4. Очередь FIFO (связанный список) (linkedqueue. ру) 595

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.