- •§0.1. Базовые знания
- •§0.2. Где достать интерпретатор языка Питон?
- •§0.3. Установка интерпретатора языка Питон в unix
- •§0.3.1. Установка/обновление Питона из грт-пакета
- •§0.3.2. Установка Питона из исходного кода
- •§0.4. Установка Питона в ос Windows
- •§0.5. Запуск программ, написанных на Питоне
- •§0.6. Среда разработки
- •§1.1. Алгоритмы и программы
- •§1.2. Языки программирования и уровни абстракции
- •Глава 1. Базовые понятия
- •§1.3. Формальные и естественные языки
- •§1.4. Интерпретаторы и компиляторы
- •§1.5. Первая программа
- •§1.6. Что такое отладка?
- •§1.6.1. Синтаксические ошибки (syntax errors)
- •§1.6.2. Ошибки выполнения (runtime errors)
- •§1.6.3. Семантические ошибки (semantic errors)
- •§1.6.4. Процесс отладки
- •Глава 2. Переменные, операции и выражения
- •§2.1. Значения и типы
- •§2.2. Преобразование типов
- •§2.3. Переменные
- •§2.4. Имена переменных и ключевые слова
- •§2.5. Выражения
- •§2.6. Выполнение выражений
- •§2.7. Операторы и операнды
- •§2.8. Порядок операций
- •§2.9. Простейшие операции над строками
- •§2.10. Композиция
- •Глава 3. Функции §3.1. Подпрограммы
- •§3.2. Вызовы функций
- •§3.3. Справочная система
- •§3.4. Импорт модулей и математические функции
- •§3.5. Композиция
- •§3.6. Создание функций
- •§3.7. Параметры и аргументы
- •§3.8. Локальные переменные
- •§3.9. Поток выполнения
- •§3.10. Стековые диаграммы
- •§3.11. Функции, возвращающие результат
- •Глава 4. Компьютерная графика
- •Глава 5. Логические выражения, условия и рекурсия §5.1. Комментарии в программах
- •§5.2. Простые логические выражения и логический тип данных
- •§5.3. Логические операторы
- •§5.4. Выполнение по условию и «пустота»
- •§5.5. Ввод данных с клавиатуры
- •§5.6. Альтернативные ветки программы (Chained conditionals)
- •§5.7. Пустые блоки
- •§5.8. Вложенные условные операторы (Nested conditionals)
- •§5.9. Рекурсия
- •§5.10. Стековые диаграммы рекурсивных вызовов
- •§5.11. Максимальная глубина рекурсии
- •§5.12. Числа Фибоначчи
- •Глава 6. Циклы
- •§6.1. Оператор цикла while
- •§6.2. Счетчики
- •§6.3. Бесконечные циклы
- •§6.4. Альтернативная ветка цикла while
- •§6.5. Табулирование функций
- •§6.6. Специальные и экранируемые символы
- •§6.7. Числа Фибоначчи и оператор цикла while
- •§6.8. Вложенные операторы цикла и двумерные таблицы
- •§6.9. Классификация операторов цикла
- •§6.10. Управляющие структуры
- •Глава 7. Строки
- •§7.1. Оператор индексирования
- •§7.2. Длина строки и отрицательные индексы
- •§7.3. Перебор и цикл for
- •§7.4. Срезы строк
- •§7.5. Сравнение строк
- •§7.6. Строки нельзя изменить
- •§7.7. Функция find
- •§7.8. Циклы и счётчики
- •§7.9. Модуль string
- •§7.10. Классификация символов
- •§10.2. Операции над словарями
- •§10.3. Методы словарей
- •§10.4. Использование псевдонимов и копирование
- •§10.5. Разряженные матрицы
- •§10.6. Подсказки
- •§10.7. Тип «длинное целое число»
- •§10.8. Подсчет букв
Глава 4. Компьютерная графика
/* модуль turtle*/
48
Ревизия: 170
Логические выражения, условия и рекурсия
Глава 5. Логические выражения, условия и рекурсия §5.1. Комментарии в программах
Любой дурак может написать программу, которую поймет компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
Мартин Фаулер (Martin Fowler), «Рефакторинг» ("Refactoring")
По мере увеличения размеров ваших программ рано или поздно вы столкнетесь с одной проблемой: их станет сложнее читать. В идеале программа должна читаться так же легко, как если бы она была написана на естественном языке, но, с одной стороны, естественные языки все же не имеют такой четкой формальной формы описания объектов и процессов, а с другой- чрезмерная формализованность зачастую приводит к усложнению описания простых вещей. Поэтому для повышения понятности кода, его полезно снабжать комментариями на естественном языке, и большинство языков программирования, не исключая Питон, предоставляют такую возможность.
Комментирование кода считается правилом «хорошего тона», поэтому не забывайте про комментарии - этим вы и себе облегчите жизнь.
Когда над программой работает один программист, то отсутствие комментариев компенсируется хорошим знанием кода (если, конечно, этот код был написан в сознательном состоянии), но при работе в команде, за редкими исключениями, комментарии просто необходимы. Кроме того, через какое-то время вы сами не сможете разобраться в своей программе, если в ней не будет никаких дополнительных замечаний.
В Питоне комментарии помечаются символом # - строки, начинающиеся с этого символа, просто игнорируются интерпретатором и никак не влияют на ее трансляцию и выполнение:
# Подсчет процентного соотношения двух величин: 20 и 80
print 100 * 20 / 80, "%"
Комментарий может следовать и после инструкций, т.е. начинаться не с самого начала строки:
>» print 100 * 20 / 80, "%" # целочисленное деление
25 %
Кроме того, комментариями стоит снабжать и функции. Для этого предусмотрен еще один способ комментирования:
def printTwice(value): |
|
|
"""Описание функции printTwice() |
|
|
Данная функция получает значение и выводит |
его дважды, |
разделив |
пробелом.""" |
|
|
print value, value |
|
|
49
Ревизия: 170
Логические выражения, условия и рекурсия
Как видите, комментарии с описанием функций должны находиться сразу после заголовка функции. Они заключаются с двойные кавычки три раза и могут занимать несколько строк. Более того, в Питоне предусмотрена возможность вывода этих комментариев. Для этого достаточно воспользоваться встроенной переменной _doc_ (начинается и заканчивается парами символов подчеркивания):
>» print print-Twice. doc |
|
|
Описание функции printTwice() |
|
|
Данная функция получает значение и выводит |
его дважды, |
разделив |
пробелом. |
|
|
Этот же комментарий выведет команда справочной системы Питона help (printTwice).
Изучайте описания встроенных функций и при написании своих функций старайтесь комментировать их в том же стиле, чтобы другим программистам было проще сориентироваться - к такой структуре уже все привыкли.
Не забывайте, что плохо документированный код программы является признаком эгоистичного программиста.
