[Tutor] /tutorial/controlflow.html "break statement"
Pierre-Michel Averseng
pierre at averseng.re
Mon Dec 2 15:34:39 CET 2013
Hello,
what do you think about the results given by IDLE3 with a script studied
recently in T. Digest Vol 117, issue 70 & seq. ?
I'm working with Linux (Debian family => i.e Linux Mint LMDE :
[please, could you excuse my poor English... ? Thanks ! ;^)) ]
> Linux hojulien 3.10-2-486 #1 Debian 3.10.5-1 (2013-08-07) i686 GNU/Linux
> Python 3.3.2+ (default, Aug 4 2013, 17:23:22)
> [GCC 4.8.1] on linux
The script studied was :
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
print(n, 'is a prime number')
Here is the result given in IDLE3 on my Presario CQ61:
>>> for n in range(2,10):
for x in range(2, n):
if n % x == 0:
print(n, '=',x,'*',n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
3 is a prime number
4 = 2 * 2
5 is a prime number
5 is a prime number
5 is a prime number
6 = 2 * 3
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 = 2 * 4
9 is a prime number
9 = 3 * 3
I found this script at :
http://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
>
> 4.4. break
> <http://docs.python.org/3/reference/simple_stmts.html#break> and
> continue
> <http://docs.python.org/3/reference/simple_stmts.html#continue>
> Statements, and else
> <http://docs.python.org/3/reference/compound_stmts.html#else>
> Clauses on Loops
>
> The break <http://docs.python.org/3/reference/simple_stmts.html#break>
> statement, like in C, breaks out of the smallest enclosing for
> <http://docs.python.org/3/reference/compound_stmts.html#for> or while
> <http://docs.python.org/3/reference/compound_stmts.html#while> loop.
>
> Loop statements may have an else clause; it is executed when the loop
> terminates through exhaustion of the list (with for
> <http://docs.python.org/3/reference/compound_stmts.html#for>) or when
> the condition becomes false (with while
> <http://docs.python.org/3/reference/compound_stmts.html#while>), but
> not when the loop is terminated by a break
> <http://docs.python.org/3/reference/simple_stmts.html#break>
> statement. This is exemplified by the following loop, which searches
> for prime numbers:
>
> >>>
> >>> for n in range(2, 10):
> ... for x in range(2, n):
> ... if n % x == 0:
> ... print(n, 'equals', x, '*', n//x)
> ... break
> ... else:
> ... # loop fell through without finding a factor
> ... print(n, 'is a prime number')
> ...
> 2 is a prime number
> 3 is a prime number
> 4 equals 2 * 2
> 5 is a....
Surprising ! isn't it ?
Best regards
Pierre
More information about the Tutor
mailing list