summaryrefslogtreecommitdiff
path: root/sandbox/code-block-directive/docs/for-else-test.py.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/code-block-directive/docs/for-else-test.py.txt')
-rw-r--r--sandbox/code-block-directive/docs/for-else-test.py.txt92
1 files changed, 0 insertions, 92 deletions
diff --git a/sandbox/code-block-directive/docs/for-else-test.py.txt b/sandbox/code-block-directive/docs/for-else-test.py.txt
deleted file mode 100644
index d9687ecd5..000000000
--- a/sandbox/code-block-directive/docs/for-else-test.py.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-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.
-
-Convert between text <-> code source formats with::
-
- pylit --code-block-marker='.. code-block:: python'
-
-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
-
- >>> execfile('for-else-test.py')
- >>> 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
-