- •§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. Переменные, операции и выражения
И вот, наконец, мы приступаем собственно к программированию. Можете сразу запустить интерпретатор Питона. Не повредит, если вы проверите работоспособность примеров на своем компьютере и поэкспериментируете с ними. Если найдете какую-нибудь ошибку или опечатку - пишите на pythonbook@,it-arts.ru. Возможно, ваше имя появится в списке разработчиков книги.
§2.1. Значения и типы
Все программы работают со значениями. Значением может быть число или строка. Например, в первой программе мы уже печатали на экране строковое значение
"Hello world! ". Аналогичным образом мы можем вывести и число:
>» print 12 12
"Hello world! " и 12 принадлежат к различным типам: str (от англ. string - строка) и int (от англ. integer - целое число)3. Интерпретатор отличает строку от числа по кавычкам, в которые она заключена.
Если есть целые числа, то, по идее, должны быть и дробные. Давайте попробуем такую команду:
>» print 2, 4 2 4
Вот и первый пример семантической ошибки: мы предполагали, что интерпретатор выведет десятичное число, но он воспринял запятую как разделитель между двумя целыми числами и вывел их, разделив пробелом. Вообщем, он нас неправильно понял, ведь разделителем дробной и целой частей числа в Питоне, как и в большинстве других языков программирования, служит точка4:
>» print 2 . 4 2.4
Если вы не уверены в том, к какому типу принадлежит значение, это можно проверить так:
>» type ("Hello |
wor |
Id!") |
<type 'str'> |
|
|
>» type (12) |
|
|
<type 'int'> |
|
|
>» type (2.4) |
|
|
<type 'float'> |
|
|
Строковый тип называется в Питоне str, целочисленный носит название int, a дробный - float (от англ. floating-point number - числа с плавающей точкой).
В некоторых версиях Питона эти типы носят несокращенные названия: string и integer.
Такой непривычный для нас способ разделения целой и дробной части является американским стандартом записи десятичных дробей.
23
Ревизия: 170
Переменные, операции и выражения
Упражнение. Проведите самостоятельно следующий эксперимент: проверьте типы значений "12" и "2.4"? Какого они типа и почему?
Упражнение. Что произойдет, если строку "8. 53" попытаться преобразовать с целое число с помошъю функции int () ? Как решить эту проблему?
§2.2. Преобразование типов
В предыдущем разделе мы научились выводить на экран целые числа - это довольно просто делается, не так ли? Но для интерпретатора эта задача выглядит несколько сложнее, т.к. ему перед выводом числовых значений приходится преобразовывать их в строки.
Программист тоже может это делать - Питон имеет целую коллекцию встроенных функций, которые умеют преобразовывать значения одного типа в другой. Например, функция int() преобразовывает значение в целочисленный тип. Если преобразование произвести невозможно, то возникает исключение:
>» int ("32") |
|
|
32 |
|
|
>» int ("Hello") |
|
|
Traceback (most recent call |
last): |
|
File "", line 1, in ? |
|
|
ValueError: invalid literal |
for int(): |
Hello |
Функция int () может приводить к целому типу и дробные числа, но не забывайте, что при преобразовании она просто отбрасывает дробную часть:
>» int(3.99999)
3
>» int(-2.3)
-2
Функция float () преобразовывает целые числа и строки в дробный тип.
>» float (32)
32.0
>» float ("3.14159";
3.14159
И, наконец, функция str () отвечает за преобразование к строковому типу. Именно ее предварительно запускает команда print:
>» str(32)
'32'
>» str(3.14149)
'3.14149'
24
Ревизия: 170
Переменные, операции и выражения
Может показаться странным, что Питон различает целое число 1 от дробного 1.0: это оно и то же число, но принадлежат к различным типам. Дело в том, что от типа значения зависит способ его хранения в памяти.
