Посты с тэгом pep


python кодировка исходников

Всем привет!

Я думаю каждый из нас ловил что-то подобное:

 File "python_coding_style.py", line 2
SyntaxError: Non-ASCII character '\xd0' in file python_coding_style.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Проблема в том что интерпретатор не знает в какой кодировке у нас файлы исходников. Проблема решается явным указанием их кодировки:
# coding: utf8

Чаще на практике встречаются следующие варианты

# -*- coding: utf8 -*-
# coding: utf8
# coding=utf8

В PEP-0263 декларируется, что для определения кодировки исходников годится все что подпадет под регулярку coding[:=]\s*([-\w.]+)
Например, #This Python file uses t


Python: PEP-8 или не PEP-8

Пост - не технический, кому не интересно - можете дальше не читать...

PEP-8, хоть и фактически является предложением по расширению Python под номером 8, среди Python-программистов уже стал термином, обозначающим правила стиля оформления кода. Нет, я не собираюсь сейчас описывать его здесь - про него можно почитать в первоисточнике. Вопрос в том, следовать этому стандарту, или не следовать?

Итак, стандарт это в большинстве случаев хорошо, так как вносит порядок во что бы то ни было. Например, стандарт USB 2.0 - просто отличнейший стандарт, представьте себе, если бы флешки были не USB, а каждая имела бы свой выход :)... Ужас, да, были бы у нас USB-порты как card


Переходим на Python 3. Новый print.

С недавнего времени решил начинать осваивать Python 3, а свои наблюдения и опыт изучения писать в блог, да так, чтобы и самому структурировать новые знания и читателям было интересно. Так что милости прошу к первой заметке о новой реализации стандартного вывода.

Первое знакомство
Наверное, первое, что бросается в глаза при переходе на Python 3, это новая реализация механизма стандартного вывода - оператор print был заменен на функцию print(). Зачем? Такое вот, казалось бы, незначительное, от нечего делать, изменение. Что ж, следует исследовать проблему поподробнее.

История
Нарекания на реализацию вывода как оператора print не один раз возникали и бурно обсуждались в списке рассылке (Python-dev mailing list),