Погружение в
Python 3
1. Что нового в «Погружении в Python 3»
2. Установка Python
3. Ваша первая программа на Python
4. Встроенные типы данных
5. Генераторы
6. Строки
7. Регулярные выражения
8. Замыкания и генераторы
9. Классы и итераторы
10. Подробнее об итераторах
11. Тестирование
12. Рефакторинг
13. Файлы
14. XML
15. Сериализация объектов Python
16. Пример: перенос chardet на Python 3
18. Создание пакетов библиотек
19. Перенос кода на Python 3 с помощью 2to3
20. Особые названия методов
21. Куда пойти
22. Устранение проблем
23. О книге
24. О переводе
25. Pink Floyd, The Wall
или «минус первый уровень»
Вы прочитали «Погружение в Python» и, может быть, даже купили бумажную
версию. (Спасибо!) Вы уже неплохо знаете Python 2.
Вы готовы окунуться с
головой в Python 3… Если всё это про вас, читайте дальше. (Если что-либо из
этого неверно, вам следует начать с начала. )
Вместе с Python 3 поставляется скрипт под названием 2to3. Изучите его. Полюбите его. Используйте его. «Перенос кода на Python 3 с помощью
2to3» — справочник по всем тем изменениям, которые 2to3 может проделать
автоматически. Поскольку многое из этого — изменения в синтаксисе, лучше
всего начать именно с них. (print теперь функция, `x` не работает и т. д. )
«Пример: перенос chardet на Python 3» рассказывает о моей (в конце концов,
успешной) попытке перенести одну нетривиальную библиотеку с Python 2 на
Python 3. Это может вам помочь. А может и не помочь. Кривая обучения
получается довольно крутой из-за того, что вам сначала необходимо хоть
немного разобраться в этой библиотеке, чтобы понимать, что именно в ней
поломалось и как я это исправил. Часто программы ломаются на строках
(strings). Кстати, о строках…
3
Строки… Ох… С чего бы начать?… В Python 2 были строки (str) и юникодные
строки (unicode). В Python 3 — байты (bytes) и строки (string). То есть все
строки стали теперь юникодными, а когда хотите работать с кучей байтов, вы
используете новый тип bytes. Python 3 никогда автоматически не
преобразовывает строки в байты или наоборот, поэтому, если вы не уверены,
что из них вы имеете в какой-то определённый момент, ваш код почти
наверняка поломается. В главе о строках эта ситуация разбирается
подробнее. Байты и строки ещё не раз будут появляться в книге.
В главе «Файлы» вы узнаете разницу между чтением файлов в
«двоичном» и «текстовом» режимах. Чтение (и запись!) файлов в
текстовом режиме требует указание параметра encoding (кодировка). Одни файловые методы при работе с текстовыми файлами
подсчитывают символы, другие считают байты.