diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2007-10-22 09:56:40 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2007-10-22 09:56:40 +0000 |
commit | 4a33f10b2bc9eadd02c4538d126d0076e591bfbd (patch) | |
tree | 0dcb9c9a28866555ac32e1c4d367293b86ef3170 /sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py | |
parent | f81238ff65e7885ba3eadecedf3c263961be2bbf (diff) | |
download | docutils-4a33f10b2bc9eadd02c4538d126d0076e591bfbd.tar.gz |
move example files for "legacy" implementation
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@5460 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py')
-rw-r--r-- | sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py new file mode 100644 index 000000000..d3edf4400 --- /dev/null +++ b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py @@ -0,0 +1,85 @@ +# Example for syntax highlight with Pygments +# ========================================== +# +# Translate this document to HTML with a pygments enhanced frontend:: +# +# rst2html-pygments --stylesheet=pygments-default.css +# +# or to LaTeX with:: +# +# rst2latex-pygments --stylesheet=pygments-default.sty +# +# to gain syntax highlight in the output. +# +# .. Run the doctests with ``pylit --doctest for-else-test.py``. +# +# +# for-else-test +# ------------- +# +# Test the flow in a `for` loop with `else` statement. +# +# First define a simple `for` loop. +# +# .. code-block:: python + +def loop1(iterable): + """simple for loop with `else` statement""" + for i in iterable: + print i + else: + print "iterable empty" + print "Ende" + +# Now test it: +# +# The first test runs as I expect: iterator empty -> else clause applies: +# +# .. code-block:: pycon +# +# >>> loop1(range(0)) +# iterable empty +# Ende +# +# However, the else clause even runs if the iterator is not empty in the first +# place but after it is "spent": +# +# .. code-block:: pycon +# +# >>> loop1(range(3)) +# 0 +# 1 +# 2 +# iterable empty +# Ende +# +# It seems like the else clause can only be prevented, if we break out of +# the loop. Let's try +# +# .. code-block:: python + +def loop2(iterable): + """for loop with `break` and `else` statement""" + for i in iterable: + print i + break + else: + print "iterable empty" + print "Ende" + +# And indeed, the else clause is skipped after breaking out of the loop: +# +# .. code-block:: pycon +# +# >>> loop2(range(3)) +# 0 +# Ende +# +# The empty iterator runs as expected: +# +# .. code-block:: pycon +# +# >>> loop2(range(0)) +# iterable empty +# Ende +# |