- •§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. Подсчет букв
§2.5. Выражения
В первой главе мы уже сталкивались с понятием выражения в общем виде и использовали их в программе. Давайте дадим определение этого термина. Выражение - это последовательность синтаксических единиц, описывающая элементарное действие на языке программирования. Например, print "Hello world!" и message = п являются выражениями.
Когда вы набираете выражение в командной строке, интерпретатор выполняет его и выводит результат, если таковой имеется. Результатом выражения print "Hello world! " является строка: Hello world!. Выражение присваивания ничего не выводит.
Скрипты обычно содержат последовательность выражений, результаты выражений выводятся по мере их выполнения. Например, запустим скрипт, содержащий следующие выражения:
print 1 х = 2 print x
Этот скрипт выведет следующее:
1
2 И снова выражение присваивания не порождает никакого вывода.
§2.6. Выполнение выражений
По сути, выражение - это последовательность значений, переменных и операторов. Если вы напишите выражение, то интерпретатор, выполнив его, выведет на экран:
>» 1 + 1
2
Значение само по себе рассматривается как выражение, так же как и переменная:
28
Ревизия: 170
Переменные, операции и выражения
>» 17
17
>» х = 2
>» х
2
Но выполнение и вывод результата выполнения выражения не совсем то же самое:
>» message = "Hello world!" >» message "Hello world!" >» print message Hello world!
Когда Питон выводит значение выражения в командном режиме, он использует тот же формат, что используется при вводе этого значения. Например, при выводе строк он заключает их в кавычки. Команда print также выводит значение выражения, но в случае со строками, она выводит содержимое строки без кавычек.
В скриптах, выражения вообще ничего не выводят, если в них нет инструкции print. Например, следующий скрипт не выводит ни одной строки:
17
3.2
"Hello, World!"
1 + 1
Упражнение. Измените скрипт из предыдущего примера так, чтобы он вывел значения всех четырех выражений.
В командном режиме интерпретатор Питона результат последнего выражения сохраняет в специальной переменной (знак подчеркивания). Вы можете просмотреть результат выполнения последнего выражения и использовать его в своих выражениях:
>» 1.2 5 + 1
2.25
>» print _
2.25
>» 5 + _
7.25
Поэтому Питон довольно удобно использовать как простой калькулятор. В последующих разделах мы разберемся с тем, какие операции способен выполнять интерпретатор Питона.
29
Ревизия: 170
Переменные, операции и выражения
§2.7. Операторы и операнды
Операторами называют специальные символы (или последовательности символов), обозначающие некоторые операции. Например, знаком + обозначают операцию сложения, а знаком * - умножение. Значения, над которыми выполняется операция, называют операндами.
Все нижеследующие выражения, с точки зрения Питона, корректны:
20 + 32 hour-1 hour*60+minute minute/60 5**2 (5 + 9)* (15-7)
Значения большинства из них понять нетрудно. Значения символов +, -, * и / в Питоне такие же, как в математике. Скобки используются для группировки операций, а двумя звездочками (**) обозначается операция возведения в степень.
Если операндом является переменная, то перед вычислением выражения производится подстановка на ее место значения, на которое указывает эта переменная.
Сложение, вычитание, умножение и возведение в степень работают привычным для нас способом, но действие операции деления несколько отличается. Это иллюстрирует следующий пример:
>» minute = 59
>» minute/60
0
Значение переменной minute равно 5 9; результат деления 5 9 на 60 должен быть 0.98333, а не 0. Причиной этого несоответствия является то, что Питон выполняет целочисленное деление.
Когда оба операнда - целые числа, и Питон считает, что результат тоже должен быть целым. Поэтому целочисленное деление всегда отбрасывает дробную часть.
Как получить дробный результат? Достаточно принудительно преобразовать один из операндов в дробное число:
>» minute = 59
>» float (minute) / 60
0.983333333333
Другой вариант:
>» |
minute |
= |
59 |
|
|
>» |
minute |
/ |
60 |
0 |
|
0.983333333333 |
|
||||
Если один из операндов принадлежит типу float, то второй автоматически преобразовывается к этому типу, как к более сложному.
