diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2007-06-28 08:09:06 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2007-06-28 08:09:06 +0000 |
commit | aa9e09501709665eec25973aecbeb5c4b00d2ce0 (patch) | |
tree | 2fd6586703b8286c07fbbc126b2050d8119402bb /sandbox/code-block-directive/docs/for-else-test.py | |
parent | f27b0d0364d3956c11b178938c57b5ca87c18884 (diff) | |
download | docutils-aa9e09501709665eec25973aecbeb5c4b00d2ce0.tar.gz |
Moved the stylesheets to data/ sub-directory.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@5300 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'sandbox/code-block-directive/docs/for-else-test.py')
-rw-r--r-- | sandbox/code-block-directive/docs/for-else-test.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/sandbox/code-block-directive/docs/for-else-test.py b/sandbox/code-block-directive/docs/for-else-test.py new file mode 100644 index 000000000..d3edf4400 --- /dev/null +++ b/sandbox/code-block-directive/docs/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 +# |