PH2150 Scientific Computing Skills

Download Report

Transcript PH2150 Scientific Computing Skills

PH2150 Scientific Computing Skills
Control Structures in Python
• In general, statements are executed sequentially, top to bottom.
• There are many instances when you want to break away from this e.g,
• Branch point: choose to go in one direction or another based on meeting
some condition.
• Repeat: You may want to execute a block of code several times.
• Programming languages provide various control structures that allow for
more complicated execution paths.
• Here we will focus on two such examples conditionals and loops:
• Will see the if, while and for statements and associated else, elif, range,
break and continue commands
PH2150 Scientific Computing Skills
The if statement is used to check a condition: if the condition is TRUE, we run a block
of statements (the if-block), else (FALSE) we process another block of statements
(else-block) or continue if no optional else clause.
if guess==number: #if followed by condition we
are testing, colon indicates begin the if-block
<Block of statements> # indent shows
that you are in the if-block, when the block of
statements is completed you will drop back into
the main program.
if guess==number: #if TRUE execute statements
<Block of statements> # skips else
else:#if FALSE executes the second block
<Block of statements> # returns to main
program after these statements.
PH2150 Scientific Computing Skills
The elif statement allows you to check multiple expressions for TRUE and execute a
block of code as soon as one of the conditions evaluates to TRUE..
if guess==number: #1st condition
<Block of statements> #
elif condition2: # checks for a 2nd condition
which if TRUE runs second block of statements.
<Block of statements> #
elif condition3: # checks for a 3rd condition
which if TRUE runs 3rd block of statements.
<Block of statements> #
elif condition4: # checks for a 4th condition
which if TRUE runs 4th block of statements.
<Block of statements> #
else: # optional else if all above statements are
FALSE
<Block of statements> #
PH2150 Scientific Computing Skills
You may want to check for another condition after a condition resolves to TRUE. Here
you can use the nested if construct.
In a nested if construct, you can have an if...elif...else construct inside another
if...elif...else
if condition1: #
<Block of statements> # runs statements then checks next if.
if condition2: #checks for a 2nd condition which if TRUE runs
second block of statements.
<Block of statements> #
elif condition3: # checks for a 3rd condition which if TRUE runs
3rd block of statements.
<Block of statements> #
else: # if condition 1 is TRUE, but 2 and 3 are FALSE.
<Block of statements> #
else: # optional else if condition 1 is FALSE
<Block of statements> #
PH2150 Scientific Computing Skills
Loops: for loops are traditionally used when you have a piece of code which you
want to repeat number of times. As an alternative, there is the while Loop, the while
loop is used when a condition is to be met, or if you want a piece of code to repeat
forever.
for letter in 'Python':
# loops for each character in string
print 'Current Letter :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
# loops for each element in list
print 'Current fruit :', fruit
for index in range(len(fruits)): # loops for each element in
list
print 'Current fruit :', fruits[index]
FruitsA=[x for x in fruits if x[0]==‘a’] # returns [‘apple’]
PH2150 Scientific Computing Skills
Control Structures in Python: range()
The range() function creates a list of numbers determined by the input parameters.
range([start,] stop[, step]) -> list of integers
When step is given, it specifies the increment (or decrement).
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 2)
[0, 2, 4, 6, 8]
e.g. How to get every second element in a list?
for i in range(0, len(data), 2):
print data[i]
PH2150 Scientific Computing Skills
Loops: the while loop is used when a condition is to be met, or if you want a piece of
code to repeat forever.
while expression: #while TRUE execute block of statements
<Block of statements>
var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input("Enter a number :")
print "You entered: ", num
if num=='Q': # This gives a route out of loop
print “Goodbye”
break # break will terminate the loop