Программирование на языке Python

Учебный курс.

Роберт Седжвик, Кевин Уэйн, Роберт Дондеро «Программирование на языке Python» Вильямс, 2017 год, (56,9 мб. pdf + 73,4 мб. code)

Эта книга поможет развить практические навыки и знания основных технологических приемов в программировании на языке Python, который стал признанным лидером при использовании в научных вычислительных системах. При этом Python, как нельзя лучше подходит для начального изучения программирования студентами технических специальностей и изучающих прикладную математику. Представленный учебный курс написан преподавателями Принстонского университета и все приводимые в книге примеры — это реальные решения которые имели практическую реализацию.

Учебный курс состоит из четырех частей: базовые элементы (1), функции(2), объектно-ориентированное программирование(3) и алгоритмы(4).

Рассмотрены такие вопросы и понятия, как: (1) — переменные, оператор присвоения, встроенные типы данных, управление потоком, массивы, ввод-вывод, графика и звук; (2) — программные функции, включая библиотеки функций и рекурсия; (3) — введение в абстракцию данных и современные парадигмы программирования; (4) — организация и методы обработки данных, практические реализации работы алгоритмов.

Главная задача учебного пособия — научить методике и привить навыки, необходимые для правильной постановки задач, поиска применения эффективных решений в программировании. Оно предназначено для обычных студентов первого курса научно-технических вузов. Таким образом, здесь не предусматривается предварительная подготовка свыше обычной обязательной для других базовых научных и математических курсов. ISBN: 978-5-9908462-1-0

Оглавление книги

Содержание.

Базовые элементы

Элементы программирования
Первая программа
Программа 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

Скачать техническую литературу бесплатно56,9 мб. pdf Скачать примеры кода бесплатно73,4 мб. code

Похожая литература