Fixed: NameError: name 'locale_encoding' is not defined
File /bin/rst2html.py, line 17, in <module>
from docutils.core import publish_cmdline, default_description
File /usr/lib/python2.7/site-packages/docutils/core.py, line 20, in <module>
from docutils import frontend, io, utils, readers, writers
File /usr/lib/python2.7/site-packages/docutils/frontend.py, line 41, in <module>
import docutils.utils
File /usr/lib/python2.7/site-packages/docutils/utils/__init__.py, line 20, in <module>
import docutils.io
File /usr/lib/python2.7/site-packages/docutils/io.py, line 18, in <module>
from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
File /usr/lib/python2.7/site-packages/docutils/utils/error_reporting.py, line 60, in <module>
codecs.lookup(locale_encoding or '') # None -> ''
NameError: name 'locale_encoding' is not defined
===============
Python syntax
===============
.. contents::
:local:
List comprehension
==================
List comprehension produce complete list with compact syntax::
[x**2 for x in xrange(1,10)]
[x+y for x in xrange(1,10) for y in xrange(1,10)]
[x-y for x in xrange(1,10) for y in xrange(1,10) if x>y]
xlist = [x**2 for x in xrange(1,10)]
print xlist[0], xlist[2], xlist[-1]
print xlist[2:4]
print sum(xlist), sum(xlist)
Generator expression
====================
Generator expression produce generator with compact syntax::
(x**2 for x in xrange(1,10))
(x+y for x in xrange(1,10) for y in xrange(1,10))
print [x for x in (x**2 for x in xrange(1,10))]
xgen = (x**2 for x in xrange(1,10))
try:
xgen[0]
except TypeError:
print "'generator' object has no attribute '__getitem__'"
print sum(xlist), sum(xlist)
Parentheses is required only if expression is ambiguous.