Beruflich Dokumente
Kultur Dokumente
Victor Miclovich
V Codes 25th 26th May 09
http://code.google.com/p/lpython
Hello, class!!!
This, I think, is one of the coolest things you can write about in your source code. Being able to
control the interaction and behavior of small pieces of code.
I will briefly look at statements and quickly remind you of what you read about. I will
then integrate lists, dictionaries, looping statements, and so much more in a program that will
take in scores from a “teacher” and names, populates a dictionary variable (our own copy of a
database), and do fancy things: calculate a GPA, maximum score, minimum score; in cases of
idealism I will assume that no student has the same mark.
1.0.1 if statement
Have you ever had to make a decision in your life. I guess you have. So you might now
have to recall the steps you following in making a decision.
Take for example, a case of dating. You have just met the “person” of your dreams and you
know this is the one, right one. But, you will on several occasions probably ask that person out
probably to the movies.
This will take you through numerous decision making thoughts such as,
“If I don't get money by Saturday night, I am a goner. I think I should make some bucks
today.”
“If she [he] sees that I'm nervous, I'll ask to be excused and come up with some kind of
surprise”
Thoughts like those above could come up! It's natural. It is also artificiallynatural to programs
and software. Decisions like if the password is not write [ this will be displayed in the code:
passwordChecker.py] what does the program/software do (quit or giveanother chance), if
you've lost many lives in a video game of some kind, should the video game software as you
for a recharge, etc.
There are many examples that show the use of the if statement.
Syntax
if (x > 0):
else:
if condition is not true/fails). The else is a clause because it can't work alone...
1.0.2 The while statement
Imagine some situation where I want to do something over and over again. For instance
while my ice cream cap still has some sweet chocolate in it, continue eating, otherwise (case
when there's nothing) stop, and wash up!
So we can mimic (copy) a real life situation... and use while statements for the purpose of
performing something similar many times.
Syntax/Operation of the while statement
loopCounter = 0 #value e.g. 0
while (<condition>):
# an iterator...
count = 0
while count <= 10: # you may put brackets around condition
print count
Also, don't be surprised by the short length of lecture notes (between 3 to 7 pages long), it's
not me studying the language or art; I am just a way for you to understand stuff. With
examples, I am sure you will be able to pick up certain concepts; and ask if you get lost.
1.0.3 for statements
When you have a large list, say of names or dictionary key/value pairs, or you want to
mine some data from a huge dictionary... you can use the while statement, but it is a turd
easier to use a for statement which we call a list iterator (repeats a crawl thru' the list!).
data = ['victor', 'arnold', 'derick', 'peter']
# using a while loop
count = 0
while count < len(data):
print data[count]
count += 1
# using a for statements
for someName in data:
print someName
Explanation of the while loop:
It can be read a lot like English;
“While count is still less than the number of elements, print out the element/item found
at an index equal to count (in this case 0), increase the value of count by one, then test the
new value of count and ask yourself whether it is still less than the number of elements of the
list; if it is still the case, do like we did before; increase count, go out of loop... back to the
testing condition and keep doing that until count is no longer less than len(data)... remember
len() is a function that returns the length of the list or number of items in the list.
The reason count starts at zero is because counting in many programming languages starts at
0; that's why if we are to do something like data[len(data)] we get some error: list index out
of range. So the allowable index in our list is 0, 1, 2, 3. Get it?
So when a 4 is reached loop is broken, and we can get of the loop!”
What a mouthful of words, I just hope that made sense... now you know why the for iterator
is better... it took only two lines to implement and do the same thing, while the while
statement took more lines!
More info on the for statement
The for statement will go through a sequence, picking element by element.
>>> for x in “hello”:
print x
The x before the keyword in; in picks an element and assigns it to x... x is then passed to the
print function/statement.
Also, within the for statement's body you can nest other computations... fancy things that
should you do with your data. For some applications you will have to refer to the code I'll leave
on the Google code download page site.
A slight change in way of repeating tasks
I have added to the site page an extended amount of code... that I've tested. I deigned the code
using Python 2.6.2 but I've tested in Python versions 2.4 and 2.5.1. Python is backward
compatible. This code won't work on Python 3.0 and higher, unless you know how to use the
Python 2 to 3 libraries... but this will involve a lot C programming and using many UNIX
tools... which many of you don't have yet.
Code that I've added
● StudentScore.py
● Mysteries.py
● iteration.py
Study this code... try to under... then ask your questions...
I also would love it if you could all get UNIX machines preferably Linux with a kernel of higher
than 2.6; there are several good distros: Suse, Red hat, Ubuntu, etc.
In the next lecture... I will also introduce the use of Integrated development environments... if
you can, read about the Eclipse IDE on http://eclipse.org
Breaking out of loops
There are times when you want to get of your loop (while or for) prematurely or after
something has been done...
# let us give someone a chance to guess the food... let's say we give him 5 changes
ask = raw_input('What food do you love? If you get the answer right, you
eat\n')
if ask in food: # this check whether something is IN the LIST... you can even
print "\nWait... you got it right! Now you may have your food\n"
break
continue
You see all that above... :)
Think of situations where you repeat something... but when a certain condition is appropriate,
well, you just get out of it. Watch the indentation... Python is strict as far as indentation is
concerned!
The same code can be implemented using the while statement... shown below.
# let us give someone a chance to guess the food... let's say we give him 5 changes
chances = 0
eat\n')
if ask in food: # this check whether something is IN the LIST... you can even
print "\nWait... you got it right! Now you may have your food\n"
break
continue
chances += 1
List comprehension
List comprehension is an interesting feature in python. You use it to generate lists...
The book covers it quite well... am just gonna repeat a few things...
>>> x = [x+x for x in range(3) if x%2 == 0]
>>> print x
>>> [0,4]
The above code will first do range(3)... that is, it will produce the list from the range(3)
function... if will then calculate the remainder values of each x in the list.
range(3)
[0, 1, 2] is produced
then...
[0%2, 1%2, 2%2]
then...
where x%2 produces 0, we add the original x's together
so...
[0, 1, 0]...
The x's that produce zero are 0 and 2. We then do what we set out to do in the first place...
x + x.
[0+0, 2+2] > [0, 4]
Trick: any number that satisfies x%2 == 0, is an even number.. you can test that for yourself
The way of doing list comprehension....
# start your list '[', write the computation you want done, iterate a number times, you may
include a testing conditions...
[ computation, for <something> <condition>]
More examples
[x/2, for x in range(10)] # no conditions here
[x/2, for x in range(5) if x % 3 == 0] # here the x is divisible by 3... generate list of x/2
There's a lot more in the book about control
structures; work through as many examples as
possible.
In this lecture, I leave you 3 sets of code to look at
and play with. I also leave a formal assignment
marking the end of simple stuff...
Next lecture... Abstractions