0% found this document useful (0 votes)
3 views

Python Tutorial_ For Loops

The document is a tutorial on Python for loops, detailing their syntax and types, including count-controlled, numeric ranges, and iterator-based loops. It explains how to use the range() function in conjunction with for loops and provides examples of iterating over lists and handling side effects during iteration. The tutorial emphasizes the importance of understanding for loops in Python programming.

Uploaded by

Sentinel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Python Tutorial_ For Loops

The document is a tutorial on Python for loops, detailing their syntax and types, including count-controlled, numeric ranges, and iterator-based loops. It explains how to use the range() function in conjunction with for loops and provides examples of iterating over lists and handling side effects during iteration. The tutorial emphasizes the importance of understanding for loops in Python programming.

Uploaded by

Sentinel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Python Course

Home Python 2 Tutorial Python 3 Tutorial Advanced Topics Numerical Programming Machine Learning Tkinter Tutorial Contact

Previous Chapter: Loops, while Loop


Next Chapter: Difference between interators und Iterables

For Loops

Introduction
Follow Bernd Klein,
the author of this
Like the while loop the for loop is a programming language statement, i.e. an iteration statement, which allows a code block to be repeated a certain number of times.
website, at Google+:
Bernd Klein on
Python 3 There are hardly programming languages without for loops, but the for loop exists in many different flavours, i.e. both the syntax and the semantics differs from one
Google
Tutorial programming language to another.
Bernd Klein on
The Origins of Different kinds of for loops:
Facebook
Python
Count-controlled for loop (Three-expression for loop)
Starting with
This is by far the most common type. This statement is the one used by C. The header of this kind of for loop consists of a three-parameter loop control expression.
Python: The Generally it has the form: Search this website:
Interactive Shell for (A; Z; I)
Executing a A is the initialisation part, Z determines a termination expression and I is the counting expression, where the loop variable is incremented or dcremented. An example of this kind of loop is the for-loop of the Go
Script programming language C:
Indentation for (i=0; i <= n; i++) This topic in German
Data Types and This kind of for loop is not implemented in Python! / Deutsche
Numeric Ranges Übersetzung: For-
Variables
This kind of for loop is a simplification of the previous kind. It's a counting or enumerating loop. Starting with a start value and counting up to an end value, like for i = 1 to 100 Schleifen
Operators
Python doesn't use this either.
Sequential Data Vectorized for loops
Types: Lists and
Python 3
They behave as if all iterations are executed in parallel. This means, for example, that all expressions on the right side of assignment statements get evaluated before the assignments.
Strings Iterator-based for loop
This is a tutorial in
List Finally, we come to the one used by Python. This kind of a for loop iterates over an enumeration of a set of items. It is usually characterized by the use of an implicit or explicit iterator. In each iteration step a
Python3, but this
Manipulations loop variable is set to a value in a sequence or other data collection. This kind of for loop is known in most Unix and Linux shells and it is the one which is implemented in Python.
chapter of our course
Shallow and is available in a
Deep Copy version for Python
Dictionaries 2.x as well: For
Syntax of the For Loop
Sets and Frozen Loops in Python 2.x
Sets
As we mentioned earlier, the Python for loop is an iterator based for loop. It steps through the items of lists, tuples, strings, the keys of dictionaries and other iterables. The Python for loop starts with the keyword
An Extensive Classroom
"for" followed by an arbitrary variable name, which will hold the values of the following sequence object, which is stepped through. The general syntax looks like this:
Example Using Training
Sets for <variable> in <sequence>: Courses
input via the <statements>
else: The goal of this
keyboard
<statements> website is to provide
Conditional
educational material,
Statements The items of the sequence object are assigned one after the other to the loop variable; to be precise the variable points to the items. For each item the loop body is executed. allowing you to learn
Loops, while
Python on your own.
Loop Nevertheless, it is
For Loops Example of a simple for loop in Python: faster and more
Difference efficient to attend a
>>> languages = ["C", "C++", "Perl", "Python"]
between >>> for x in languages: "real" Python course
interators und ... print(x) in a classroom, with
Iterables ... an experienced
C trainer. So why not
Output with Print C++ attend one of the live
Formatted output Perl Python courses in
with string Python
Strasbourg, Paris,
modulo and the >>>
Luxembourg,
format method Amsterdam, Zürich /
Functions The else block is special; while Perl programmer are familiar with it, it's an unknown concept to C and C++ programmers. Semantically, it works exactly as the optional else of a while loop. It Zurich, Vienna /
Recursion and will be executed only if the loop hasn't been "broken" by a break statement. So it will only be executed, after all the items of the sequence in the header have been used. Wien, London, Berlin,
Recursive Munich, Hamburg,
Functions If a break statement has to be executed in the program flow of the for loop, the loop will be exited and the program flow will continue with the first statement following the for loop, if there is Frankfurt or Lake
any at all. Usually break statements are wrapped into conditional statements, e.g. Constance by Bernd
Parameter
Klein, the author of
Passing in
edibles = ["ham", "spam","eggs","nuts"] this tutorial?
Functions for food in edibles:
Namespaces if food == "spam":
Global and Local print("No more spam please!")
break Onsite Training
Variables Courses
print("Great, delicious " + food)
Decorators else:
Memoization with print("I am so glad: No spam!") Let us come to your
Decorators print("Finally, I finished stuffing myself") company,
Read and Write organization or
If we call this script, we get the following result: institute and train
Files
Modular $ python for.py your employees, as
Great, delicious ham we've done it many
Programming
No more spam please! times in Amsterdam
and Modules
Finally, I finished stuffing myself (The Netherlands),
Packages in $ Berlin (Germany),
Python Bern (Switzerland),
Regular Removing "spam" from our list of edibles, we will gain the following output: Basel (Switzerland),
Expressions Zurich (Switzerland),
$ python for.py
Regular Locarno
Great, delicious ham
Expressions, Great, delicious eggs (Switzerland), Den
Great, delicious nuts Haag (The Hague),
Advanced
I am so glad: No spam! Hamburg (Germany),
Lambda
Finally, I finished stuffing myself Frankfurt (Germany),
Operator, Filter, $ Toronto (Canada),
Reduce and Map Edmonton (Canada),
List Maybe, our disgust with spam is not so high that we want to stop consuming the other food. Now, this calls into play the continue statement. In the following little script we use the continue statement to go on with Munich (Germany)
Comprehension our list of edibles, when we have encountered a spam item. So continue prevents us from eating spam! and many other
Iterators and cities. We do training
edibles = ["ham", "spam", "eggs","nuts"]
Generators for food in edibles: courses in England,
Exception if food == "spam": Switzerland,
print("No more spam please!") Liechtenstein,
Handling
continue Austria, Germany,
Tests, DocTests, print("Great, delicious " + food) France, Belgium, the
UnitTests # here can be the code for enjoying our food :-) Netherlands,
Object Oriented else: Luxembourg, Poland,
print("I am so glad: No spam!")
Programming UK, Italy and other
print("Finally, I finished stuffing myself")
Class and locations in Europe
Instance The output looks as follows: and in Canada.
Attributes
$ python for.py This way you will get
Properties vs.
Great, delicious ham a perfect training up
getters and No more spam please! to your needs and it
setters Great, delicious eggs will be extremely cost
Inheritance Great, delicious nuts
efficient as well.
I am so glad: No spam!
Multiple Contact us so we can
Finally, I finished stuffing myself
Inheritance $ define and find the
Magic Methods best course
and Operator curriculum to meet
The range() Function your needs, and
Overloading
schedule course
OOP, Inheritance
The built-in function range() is the right function to iterate over a sequence of numbers. It generates an iterator of arithmetic progressions: sessions to be held at
Example
Example: your location.
Slots
Classes and >>> range(10)
Class Creation range(0, 10)
Skilled Python
Road to >>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Programmers
Metaclasses >>>
Metaclasses You are looking for
Metaclass Use range(n) generates an iterator to progress the integer numbers starting with 0 and ending with (n -1). To produce the list with these numbers, we have to cast range() with the list(), as we did in the previous experienced Python
Case: Count example. developers or
Function Calls range() can also be called with two arguments: programmers? We
Abstract Classes can help you, please
range(begin,end) contact us.
Python The above call produces the list iterator of numbers starting with begin (inclusive) and ending with one less than the number "end".
Example: Quote of the
Day:
In Greek mythology,
>>> range(4,10)
Python is the name
range(4, 10) "To err is human, but
of a a huge serpent >>> list(range(4,10))
and sometimes a to really foul things
[4, 5, 6, 7, 8, 9]
dragon. Python had >>> up you need a
been killed by the computer." (Paul R.
god Apollo at Delphi. Ehrlich)
Python was created So far the increment of range() has been 1. We can specify a different increment with a third argument. The increment is called the "step". It can be both negative and positive, but not zero:
out of the slime and
mud left after the range(begin,end, step)
great flood. He was
appointed by Gaia Example with step:
(Mother Earth) to Data Protection
>>> list(range(4,50,5)) Declaration
guard the oracle of [4, 9, 14, 19, 24, 29, 34, 39, 44, 49]
Delphi, known as >>>
Pytho. Data Protection
The programming It can be done backwards as well: Declaration
language Python has
not been created out >>> list(range(42,-12,-7))
of slime and mud but [42, 35, 28, 21, 14, 7, 0, -7]
>>>
out of the
programming
The range() function is especially useful in combination with the for loop, as we can see in the following example. The range() function supplies the numbers from 1 to 100 for the for loop to calculate the sum of
language ABC. It has
these numbers:
been devised by a
Dutch programmer, n = 100
named Guido van
Rossum, in sum = 0
Amsterdam. for counter in range(1,n+1):
sum = sum + counter

print("Sum of 1 until %d: %d" % (n,sum))


Origins of
Python
Calculation of the Pythagorean Numbers
Guido van Rossum
wrote the following Generally, it is assumed that the Pythagorean theorem was discovered by Pythagoras that is why it has its name. But there is a debate whether the Pythagorean
about the origins of theorem might have been discovered earlier or by others independently. For the Pythagoreans, - a mystical movement, based on mathematics, religion and
Python in a foreword philosophy, - the integer numbers satisfying the theorem were special numbers, which had been sacred to them.
for the book
"Programming These days Pythagorean numbers are not mystical anymore. Though to some pupils at school or other people, who are not on good terms with mathematics, they
Python" by Mark Lutz may still appear so.
in 1996:
"Over six years ago, So the definition is very simple:
in December 1989, I Three integers satisfying a2+b2=c2 are called Pythagorean numbers.
was looking for a
"hobby" The following program calculates all pythagorean numbers less than a maximal number.
programming project Remark: We have to import the math module to be able to calculate the square root of a number.
that would keep me
occupied during the
from math import sqrt
week around
n = int(input("Maximal Number? "))
Christmas. My office for a in range(1,n+1):
(a government-run for b in range(a,n):
research lab in c_square = a**2 + b**2
Amsterdam) would c = int(sqrt(c_square))
be closed, but I had a if ((c_square - c**2) == 0):
home computer, and print(a, b, c)
not much else on my
hands. I decided to Iterating over Lists with range()
write an interpreter
for the new scripting
If you have to access the indices of a list, it doesn't look to be a good idea to use the for loop to iterate over the lists. We can access all the elements, but the index of an element is not available. But there is a way
language I had been
to access both the index of an element and the element itself. The solution consists in using range() in combination with the length function len():
thinking about lately:
a descendant of ABC fibonacci = [0,1,1,2,3,5,8,13,21]
that would appeal to for i in range(len(fibonacci)):
Unix/C hackers. I print(i,fibonacci[i])
chose Python as a print()
working title for the
project, being in a The output looks like this:
slightly irreverent
0 0
mood (and a big fan
1 1
of Monty Python's 2 1
Flying Circus)." 3 2
4 3
5 5
6 8
7 13
8 21

Remark: If you apply len() to a list or a tuple, you get the number of elements of this sequence.

List iteration with Side Effects

If you loop over a list, it's best to avoid changing the list in the loop body. To give you an example, what can happen, have a look at the following example:

colours = ["red"]
for i in colours:
if i == "red":
colours += ["black"]
if i == "black":
colours += ["white"]
print(colours)

What will be printed by "print(colours)"?

['red', 'black', 'white']

To avoid these side effects, it's best to work on a copy by using the slicing operator, as can be seen in the next example:

colours = ["red"]
for i in colours[:]:
if i == "red":
colours += ["black"]
if i == "black":
colours += ["white"]
print(colours)

Now the output looks like this:

['red', 'black']

We still might have done something, what we shouldn't have done. We changed the list "colours", but our change hasn't had any effect on the loop anymore. The elements to be looped remained the same during
the iterations.

Previous Chapter: Loops, while Loop


Next Chapter: Difference between interators und Iterables

© 2011 - 2018, Bernd Klein, Bodenseo; Design by Denise Mitchinson adapted for python-course.eu by Bernd Klein

You might also like