- •§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. Подсчет букв
§10.2. Операции над словарями
Оператор del удаляет из словаря пару ключ-значение. Например, следующий словарь содержит названия различных фруктов и количество каждого фрукта на складе:
86
Ревизия: 170
Словари
>» inventory = {'apples' |
430, |
'bananas |
': 312, 'oranges |
': 525, |
'pears': 217} |
|
|
|
|
>» print inventory |
|
|
|
|
{'oranges': 525, 'apples' |
430, |
'pears': |
217, 'bananas': |
312} |
Если кто-нибудь купил все груши, мы можем удалить этот элемент из словаря:
>» del inventory [ 'pears ' ] |
|
|
|
>» print inventory |
|
|
|
{'oranges': 525, 'apples': |
430, |
'bananas' |
: 312} |
Или если скоро мы ожидаем поступления новых груш, мы можем просто изменить значение связанное с грушами:
>» inventory [ 'pears ' ] = |
0 |
|
|
|
|
|
>» print inventory |
|
|
|
|
|
|
{'oranges': 525, 'apples |
. |
430, |
'pears' |
o, |
'bananas' |
: 312} |
Функция len также работает со словарями, она возвращает число пар ключ-значение:
>» len (inventory) 4
§10.3. Методы словарей
[NOTE: возможно стоит ввести понятие метода (на простом уровне) немного пораньше]
Метод - это обычная функция, принимающая аргументы и возвращающая значения, но отличающаяся синтаксисом вызова. Подробнее с методами мы будем разбираться в главах, посвященных объектно-ориентированному программированию, где станет понятны более глубокие различия между обычными функциями и методами.
Итак, метод key получает словарь и возвращает список ключей которые находит, но вместо синтаксиса функции keys (eng2sp), мы используем синтаксис метода eng2sp.keys О.
>» eng2sp . keys () ['one', 'three', 'two']
Такая форма записи с точкой задает имя функции, keys, а так же имя объекта, к которому необходимо применить функцию, eng2sp. Пустые круглые скобки показывают, что этот метод не принимает параметров.
Вызов метода называют invocation; в этом случае, мы могли сказать, что мы вызываем keys() объекта eng2sp.
Похожий метод values () - он возвращает список значений в словаре:
>» eng2sp .values () ['uno', 'tres', 'dos']
Метод items возвращает список кортежей ключ-значение:
>» eng2sp . items ()
87
Ревизия: 170
Словари
[('one','uno'), ('three', 'tres'), ('two', 'dos')]
Если метод принимает аргументы, он использует тот же синтаксис что и вызов функции. Например, метод has_key () принимает ключ и возвращает истину (1) если такой ключ присутствует в словаре.
>» eng2sp .has_key ( ' one ' )
1
>» eng2sp .has_key ( ' deux')
0
Если вы пытаетесь вызвать метод без указания объекта, вы получаете ошибку. В этом случае, сообщение об ошибке не очень информативное:
>» has_key ( ' one ' ) NameError: has_key
