xlrd······················0.9.3····················py34_0
xlsxwriter················0.5.5····················py34_0
yaml······················0.1.4·························1
zeromq····················4.0.4·························0
zlib······················1.2.7·························1
Установка и использование pip и virtualenv
Пакет pip — это самый популярный способ установить сторонние (нестандартные) пакеты Python. Несколько раздражает то, что такой полезный инструмент не являлся частью стандартного Python и его приходилось загружать и устанавливать самостоятельно. Как говорил мой друг, это жестокий, пугающий ритуал. Хорошая новость заключается в том, что, начиная с версии 3.4, pip является стандартной частью Python.
Вместе с pip часто используется программа virtualenv — это способ установить пакеты Python в заданный каталог, чтобы избежать взаимодействий с уже существующими пакетами Python. Это позволяет вам использовать любые Python-функции, даже если у вас нет разрешения изменять текущую установленную версию.
Если у вас установлен Python 3, но под рукой только версия pip для Python 2, получить версию для Python 3 под Linux или OS X можно следующим способом:
$ curl — O http://python-distribute.org/distribute_setup.py
$ sudo python3 distribute_setup.py
$ curl — O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python3 get-pip.py
Это установит pip-3.3 в каталог bin вашей версии Python 3. Далее для установки сторонних пакетов вы можете использовать pip-3.3 вместо версии для Python 2.
Вот несколько хороших руководств по pip и virtualenv:
• http://bit.ly/jm-pip-vlenv;
• http://bit.ly/hhgp-pip.
Установка и использование conda
До недавнего момента pip всегда загружал файлы исходных кодов, а не бинарные файлы. Это могло стать проблемой для модулей Python, которые построены на основе библиотек С. Недавно разработчики Anaconda создали conda (http://www.continuum.io/blog/conda), для того чтобы решить эту проблему. pip — это менеджер пакетов для Python, а conda работает с любыми языками программирования и ПО. conda также не нуждается в чем-то вроде virtualenv для того, чтобы содержать отдельно разные пакеты.
Если вы установили дистрибутив Anaconda, у вас уже есть программа conda. Если нет, можете установить Python 3 и conda со страницы http://conda.pydata.org/miniconda.html. Как и в случае с Anaconda, убедитесь, что файл, который вы загружаете, начинается с Miniconda3, а не с Miniconda — это версия для Python 2.
conda работает вместе с pip. Несмотря на то что он имеет собственный публичный репозиторий пакетов (http://binstar.org/), команды вроде conda search также выполнят поиск в репозитории PyPI (http://pypi.python.org/). Если у вас возникают проблемы с pip, conda может стать хорошей альтернативой.
Приложение Д. Ответы к упражнениям
Глава 1. Python: с чем его едят
1. Если вы еще не установили Python 3, сделайте это сейчас. Прочтите приложение Г, чтобы узнать детали.
2. Запустите интерактивный интерпретатор Python 3. И вновь детали вы найдете в приложении Г. Интерпретатор должен вывести несколько строк о себе, а затем строку, начинающуюся с символов >>>. Перед вами приглашение для ввода команд Python.
Вот так это выглядит на моем MacBook Pro:
$ python
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
3. Немного поэкспериментируйте с интерпретатором. Используйте его как калькулятор и наберите текст 8 * 9. Нажмите клавишу Enter, чтобы увидеть результат. Python должен вывести 72:
>>> 8 * 9
72
4. Теперь введите число 47 и нажмите Enter. Появилось ли число 47 в следующей строке?
>>> 47
47
5. Теперь введите print(47) и нажмите клавишу Enter. Появилось ли снова число 47 в следующей строке?
>>> print(47)
47
Глава 2. Ингредиенты Python: числа, строки и переменные
1. Сколько секунд содержится в часе? Используйте интерактивный интерпретатор как калькулятор и умножьте количество секунд в минуте (60) на количество минут в часе (тоже 60):
>>> 60 * 60
3600
2. Присвойте результат вычисления предыдущего задания (секунды в часе) переменной, которая называется seconds_per_hour:
>>> seconds_per_hour = 60 * 60
>>> seconds_per_hour
3600
3. Сколько секунд содержится в сутках? Используйте переменную seconds_per_hour:
>>> seconds_per_hour * 24
86400
4. Снова посчитайте количество секунд в сутках, но на этот раз сохраните результат в переменной seconds_per_day:
>>> seconds_per_day = seconds_per_hour * 24
>>> seconds_per_day
86400
5. Разделите значение переменной seconds_per_day на значение переменной seconds_per_hour. Используйте деление с плавающей точкой (/):
>>> seconds_per_day / seconds_per_hour
24.0
6. Разделите значение переменной seconds_per_day на значение переменной seconds_per_hour. Используйте целочисленное деление (//). Совпадает ли полученный результат с ответом на предыдущее упражнение, если не учитывать символы.0 в конце?
>>> seconds_per_day // seconds_per_hour
24
Глава 3. Наполнение Python: списки, кортежи, словари и множества
1. Создайте список, который называется years_list, содержащий год, в который вы родились, и каждый последующий год вплоть до вашего пятого дня рождения. Например, если вы родились в 1980 году, список будет выглядеть так: years_list = [1980, 1981, 1982, 1983, 1984, 1985].
Если вы родились в 1980, вам нужно ввести следующее:
>>> years_list = [1980, 1981, 1982, 1983, 1984, 1985]
2. В какой из годов, содержащихся в списке years_list, был ваш третий день рождения? Помните, в первый год вам было 0 лет.
Вам нужно смещение 3. Поэтому, если вы родились в 1980-м:
>>> years_list[3]
1983
3. В какой из годов, содержащихся в списке years_list, вам было больше всего лет?
Вам нужно получить последний год, поэтому используйте смещение -1. Вы также можете использовать смещение 5, поскольку знаете, что в этом списке всего шесть элементов. Однако смещение -1 позволяет получить последний элемент из списка любой длины. Для тех, кто родился в 1980 году:
>>> years_list[-1]
1985
4. Создайте список things, содержащий три элемента: "mozzarella", "cinderella", "salmonella":
>>> things = ["mozzarella", "cinderella", "salmonella"]
>>> things
['mozzarella', 'cinderella', 'salmonella']
5. Напишите с большой буквы тот элемент списка things, который относится к человеку, а затем выведите список. Изменился ли элемент списка?
Эта строка записывает слово с прописной буквы, но не меняет его в списке:
>>> things[1].capitalize()
'Cinderella'
>>> things
['mozzarella', 'cinderella', 'salmonella']
Если вы хотите изменить его в списке, вам нужно присвоить его снова:
>>> things[1] = things[1].capitalize()
>>> things
['mozzarella', 'Cinderella', 'salmonella']
6. Переведите сырный элемент списка things в верхний регистр целиком и выведите список:
>>> things[0] = things[0].upper()
>>> things
['MOZZARELLA', 'Cinderella', 'salmonella']
7. Удалите болезнь из списка things, получите Нобелевскую премию и затем выведите список на экран.