Содержание.
Базовые элементы
Элементы программирования
Первая программа
Программа 1.1.1. Hello, World (helloworld.py) 21
Программа 1.1.2. Использование аргумента командной строки (useargument.py) 24
Встроенные типы данных
Программа 1.2.1. Пример конкатенации строк (ruler.py) 39
Программа 1.2.2. Целочисленные операторы (intops.py) 42
Программа 1.2.3. Операторы чисел с плавающей точкой (floatops.py) 45
Программа 1.2.4. Квадратичная формула (quadratic.py) 46
Программа 1.2.5. Високосный год (leapyear.py) 50
Условные выражения и циклы
Программа 1.3.1. Орел или решка (flip.py) 73
Программа 1.3.2. Ваш первый цикл (tenhello s.py) 76
Программа 1.3.3. Вычислительные степеней числа 2 (powersoftwo.py) 77
Программа 1.3.4. Ваш первый вложенный цикл (divisorpattern.py) 83
Программа 1.3.5. Гармонические числа (harmonic.py) 86
Программа 1.3.6. Метод Ньютона (sqrt.py) 87
Программа 1.3.7. Преобразование в двоичный формат (binary.py) 89
Программа 1.3.8. Модель разорения игрока (gambler.py) 91
Программа 1.3.9. Разложение на множители целых чисел (factors.py) 93
Массивы
Программа 1.4.1. Выборка без замены (sample.py) 122
Программа 1.4.2. Модель коллекции купонов (couponcollector.py) 126
Программа 1.4.3. Решето Эратосфена (primesieve.py) 128
Программа 1.4.4. Случайные блуждания без самопересечений (selfavoid.py) 136
Ввод и вывод
Программа 1.5.1. Создание случайной последовательности ( randomseq.py) 137
Программа 1.5.2. Интерактивный пользовательский ввод (twentyquestions . py) 139
Программа 1.5.3. Среднее потока чисел (average.py) 145
Программа 1.5.4. Простой фильтр (rangefilte r.py) 160
Программа 1.5.5. Стандартный ввод и фильтрация рисунка (plotfilte r.py) 165
Программа 1.5.6. Вывод графика функции (functiongraph.py) 171
Программа 1.5.7. Прыгающий мяч (bouncingball.py) 180
Программа 1.5.8. Обработка цифрового сигнала (playthattune.py)
Случай из практики: случайная навигация по сайтам
Программа 1.6 .1. Вычисление матрицы переходов (transition.py) 196
Программа 1.6.2. Моделирование случайной навигации (randomsurfer. py) 199
Программа 1.6.3. Смешение цепи Маркова (markov.py) 205
Функции и модули.
Определение функций
Программа 2.1.1. Гармонические числа (повторно) (harmonicf.py) 215
Программа 2.1.2. Гауссовы функции (gauss.py) 225
Программа 2.1.3. Коллекционер купонов (повторно) (coupon.py) 226
Программа 2.1.4. Проигрывание мелодии (повторно) (playthattunedeluxe.py) 235
Модули и клиенты
Программа 2.2. 1. Модуль Гауссовых функций (gaussian.py) 249
Программа 2.2.2. Пример клиента модуля Гауссовых функций (gaussiantable.py) 250
Программа 2.2.3. Модуль случайных чисел (stdrandom.py) 259
Программа 2.2.4. Система итерационных функций (ifs.py) 266
Программа 2.2.5. Модуль анализа данных (stdstats.py) 269
Программа 2.2.6. Рисование значений данных (stdstats.py, продолжение) 272
Программа 2.2.7. Исследование Бернулли (bernoulli.py) 274
Рекурсия
Программа 2.3.1. Алгоритм Евклида (euclid.py) 290
Программа 2.3.2. Ханойская башня (towersofhanoi.py) 293
Программа 2.3.3. Код Грея (beckett.py) 299
Программа 2.3.4. Рекурсивная графика (htree.py) 301
Программа 2.3.5. Броуновский мост (brownian.py) 303
Случай из практики: просачивание
Программа 2.4.1. Скаффолдинг просачивания (реrcolation0.py) 320
Программа 2.4.2. Обнаpyжение вертикального просачивания (percolationv.py) 322
Программа 2.4.3. Ввод-вывод просачивания (реrcolationio.py) 324
Программа 2.4.4. Клиент визуализации (visualizev.py) 325
Программа 2.4.5. Оценка вероятности просачивания (estimatev.py) 327
Программа 2.4.6. Обнаpyжение просачивания (percolation.py) 329
Программа 2.4.7. Адаптивный графический клиент (реrcplot.py) 332
Объектно-ориентированное программирование
Использование типов данных
Программа 3.1.1. Идентификация потенциального гена (potentialgene.py) 353
Программа 3.1.2. Клиент заряженной частицы (chargeclient.py) 357
Программа 3.1.3. Квадраты Альберса (alberssquares.py) 362
Программа 3.1.4. Модуль яркости (luminance.py) 364
Программа 3.1.5. Преобразование цвета в полутон (grayscale.py) 368
Программа 3.1.6. Масштабирование изображений (scale.py) 369
Программа 3.1.7. Эффект постепенного изменения (fade.py) 370
Программа 3.1.8. Визуализация электрического потенциала (potential.py) 373
Программа 3.1.9. Конкатенация файлов (cat.py) 376
Программа 3. 1. 10. Анализ экранных данных для котировки акций (stockquote.py) 378
Программа 3. 1.11. Разделение файла (spli t.py) 379
Создание типов данных
Программа 3.2. 1. Заряженная частица (charge.py) 400
Программа 3.2.2. Секундомер (stopwat ch.py) 404
Программа 3.2.3. Гистограмма (histogram.py) 406
Программа 3.2.4. Черепашья графика ( turtle.py) 409
Программа 3.2.5. Удивительная спираль (spiral.py) 412
Программа 3. 2.6. Комплексные числа (complex.py) 417
Программа 3.2.7. Множество Мандельброта (mandelbr ot.py) 42 1
Программа 3.2.8. Биржевая учетная запись (stockaccount.py) 425
Разработка типов данных
Программа 3.3. 1. Комплексные числа (complexpola r.py) 446
Программа 3.3.2. Счетчик (counter.py) 449
Программа 3.3.3. Пространственные векторы (vector.py) 456
Программа 3.3.4. Эскиз документа (sketch.py) 473
Программа 3.3.5. Обнаружение подобия (comparedocuments.py) 475
Случай из практики: моделирование N тел
Программа 3.4.1. Гравитационное тело (body.py) 490
Программа 3.4.2. Моделирование N тел (universe.py) 493
Алгоритмы и структура данных
Эффективность
Программа 4.1.1. Задача суммирования триплетов (threesum.py) 503
Программа 4.1.2. Проверка гипотезы удвоения (doublingtest.py) 505
Сортировка и поиск
Программа 4.2.1. Бинарный поиск (20 вопросов) (ques tions.py) 544
Программа 4.2.2. Дихотомический поиск (bisection.py) 548
Программа 4.2.3. Бинарный поиск (в отсортированном массиве) (binarysearch.py) 551
Программа 4.2.4. Сортировка вставкой (insertion.py) 555
Программа 4.2.5. Проверка сортировки удвоением (timesort.py) 557
Программа 4.2.6. Сортировка с объединением (merge.py) 560
Программа 4.2.7. Подсчет частот (frequencycount.py) 565
Стеки и очереди
Программа 4.3.1. Стек (массив переменного размера) (arraystack.py) 580
Программа 4.3.2 Стек (связанный список) (linkedstac k.py) 584
Программа 4.3.3. Вычисление выражения (evaluate.py) 59 1
Программа 4.3.4. Очередь FIFO (связанный список) (linkedqueue.py) 595
Список упражнений
Программа 4.3.5. Модель очереди М/М/1 (mm1queue.py) 601
Программа 4.3.6. Моделирование балансировки нагрузки (loadbalance.py) 604
Таблицы идентификаторов
Программа 4.4.1. Поиск в словаре (lookup.py) 626
Программа 4.4.2. Индексация (index.py) 628
Программа 4.4.3. Хеш-таблица (hashst.py) 634
Программа 4.4.4. Бинарное дерево поиска (bst.py) 64 1
Случай из практики: феномен "тесного мира"
Программа 4.5.1. Тип данных графа (graph.py) 674
Программа 4.5.2. Использование графа для инверсии индeкca (invert.py) 678
Программа 4.5.3. Клиент кратчайших путей (separation.py) 681
Программа 4.5.4. Реализация кратчайших путей (pathfinder.py) 687
Программа 4.5.5. Проверка "тесного мира" (smallworld.py) 692
Программа 4.5.6. Граф "исполнитель-исполнитель" (реrformer.py) 694
Добавить комментарий