Python Programming
Python Programming
Python Programming
I
Copyright 2010 © by Jody Scott Ginther
CEO of Alien Cat ® Studios, registered Trade Mark
Dedicated to Family Entertainment and Education
Author’s websites:
www.AlienCatStudios.com
www.toonzcat.com
II
This page intentionally left blank just to bother people;
III
Table Of Contents
Introduction.................................................................................................1
Who Should Read This Book?..............................................................................1
Who’s The Author?..............................................................................................1
What’s A Programming Language?....................................................................2
What Is Python?..................................................................................................2
How To Use This Book.......................................................................................3
Getting And Installing Python............................................................................3
Chapter 5: Functions................................................................................36
What’s A Functions?.........................................................................................36
How Do I Create/Define My Own Functions?.................................................37
Scope: Global or Local....................................................................................40
IV
Contents
Index.......................................................................................................49
Review Dictionary of Terms..........................................................................49
Python’s Many Flavors.................................................................................51
Python General Resources...........................................................................51
Other Libraries and Modules May Be Found At: .......................................52
www.AlienCatStudios.com
www.toonzcat.com
V
This book is dedicated to my father;
who inspired me to teach myself.
Introduction
This book is meant to help you begin learning the basics of Python programming version
3 or later. It is a brief introduction to Python. At the time of this writing, there are many
resources for earlier versions of Python. However, since changes were made in the later
versions of Python, using older books and resources can cause some confusion. The
author recommends to all new students of programming to begin with Python version 3
or later. If you find source code that you would like to study or use, search the internet for
conversion tools that can help you convert the older versions of code to be functional in
3.0 or later.
The author uses the theory that visual learning, humor, and action, (experiential learning),
are the best ways for most people to quickly learn something from a book. The author
attempts to be as brief as possible to get the new programmer into programming as fast as
possible. When you are ready to go deeper into Python, there are many excellent free
resources and books on the internet.
1
What’s A Programming Language?
Every field of study has new words that you must learn to communicate. When you
studied biology, chemistry, and other subjects you were faced with learning new words to
talk about that subject. Now you are learning programming so you must also learn more
new words. Before you know it, you will be able to speak to world renowned geniuses
and geeks in words they understand. You will have the added benefit of understanding
what you are talking about. A programming language is a language you can use to
communicate with a computer. Programming is the art and science of making the
computer do what you want it to do by creating programs.
What are programs? Programs are algorithms and source code packaged together to
achieve your objective(s). Ahhh! More strange words! What’s an algorithm or a source
code? Algorithms are sets of instructions that tell the computer what to do. Algorithms
tell the computer how to reach a goal or objective. In daily life someone may ask you for
directions to the nearest chocolate factory. You may say; “Here’s the algorithm for you;
first, go straight ahead until you come to a street light. Turn left at the street light and go
to the second parking lot on your right. Park your car in the customer parking area. Enter
the back entrance to the factory and eat chocolate until you are too fat to fit through the
door.” This set of instructions is an algorithm. What’s an algorithm? If you said, “It’s a
set of instructions!” you were paying attention. Good boy…or girl; you know what you
are.
Ok, an algorithm is a set of instructions; then what is source code? Source code is all the
algorithms and instructions that we used in a program. All the words, commands, secret
symbols, and other stuff we typed into our program is the source code.
Now that you understand what algorithms and source code are, let’s repeat the statement;
Programs are algorithms and source code packaged together to achieve an objective(s)
What Is Python?
Python is a computer language. Computers are stupid and don’t understand English. So,
we have to use computer languages to translate what we say into Computerish or
Computerese. Actually, the language computers speak is referred to as a binary language.
Binary language is a language based on two words; “on” and “off” represented by the
numbers 0 and 1. Humans have trouble communicating in binary. If I say, “ 011 001
101,” you would say, “Huh?” So, languages that are easier for human brains to grasp
were invented.
Why so many computer languages? Different languages were designed for different
purposes. Some are better at math, some are better at controlling computer hardware, and
some are better for the internet. Python is a general purpose language. It can be used for
many different purposes.
2
Python is known as a scripting language, (uses scripts), and is a high level language. A
high level language is a computer language that is closer to human language and easier
for us to use than low level or machine languages. High level languages also take care of
many tasks like manipulating the memory of the computer for you. Low level languages
are used when the programmer wants more direct control over the machine he is using.
Machine Language
For the sake of getting you into programming as soon as possible, this book will not
expand on Python’s history, details on other programming languages, or other details that
would delay us from getting started. You can find excellent details on history and other
stuff you may want to know at Python’s web site, (www.python.org).
http://www.python.org/download/.
3
Chapter 1: The Beginner’s Tour
Of Python
There are two windows to work from in IDLE. There is the Edit Window and the Shell
Window. The Python Shell window will say, “Python Shell” at the top of the window,
while the Edit window will say, “Untitled” and have a “run” command listed on the top
menu bar. If Python starts in the Shell Window and you want to use the Edit Window,
just choose File<New Window and it will open an Edit Window. If you want to use the
Shell Window if the Edit Window starts go to the “Run” menu at the top of the window
and choose “Python Shell.” The Python Shell is an interactive interpreter. This means
that when you press the enter key, it checks your source code and may give you some
feedback. If you see (>>>), this is the first command prompt. It is letting you know the
interpreter is patiently waiting for you to type something. If you see (…), this is the
4
secondary prompt waiting for you to type something more. If you found these two
windows they should look something like this:
There are other editors that you can use for programming but to keep things simple in this
book we will use the IDLE software that is packaged with Python.
Why are there two windows in IDLE and how do I use them? Python allows you to work
in script mode or in interactive mode. What’s the difference?
Script Mode is great for writing programs you can save and run later. It is generally
used for the final product.
Interactive mode is for testing and trying small ideas quickly.
Most people use both of these together. Script mode for working on their main program
and interactive mode for trying new ideas in the same way you would use scratch paper.
A third function of IDLE is that it is also a debugger. You can find the debugger button at
the top of the Shell window. What’s a debugger? It’s a program to help you kill bugs. No
not the one crawling up your leg; but the bugs, or problems, that are in the code we are
working on.
5
Did you notice that IDLE changes the colors of your text? What’s the meaning? Let’s
look at a list of some of the most common syntax colors and their meanings in IDLE.
You needn’t memorize these at this point, but knowing the meaning of the colors can
help you see clearly where you typed something wrong. If you were trying to type a
string and its not green, you probably forgot the quotation marks or did something else
the computer didn’t like. The colors can also be changed according to your personal
preferences and may vary in different editors.
Blocks of Code
While we are looking at the windows, how is your text arranged? The text is arranged in
lines, groups, and blocks. A block is just a group of code that goes together. Like a city
block, it can be divided into smaller groups like houses on the block, cars on the block,
dogs, lions, etc. on that block. This concept is important to tell the computer how to read
and follow your code. To a computer, arranging your code with the proper grouping of
lines and blocks is like a map that says; “first do this, second do that, or repeat this. “
Blocks are one way we dictate the running order in programming. You can have blocks in
blocks just as you can have groups in groups. You may have a group of students under
6
100 years old. But, within that group you may have another group called “girls.” Inside of
that group you may have another group or block called “girls with green hair.”
Blocks make it easy to keep things or instructions in our code together in their correct
group. This helps us refer to them and to direct the computer to use that group of
instructions, in the order we want the computer to use them. Blocks are defined by the
number of spaces used to indent each line of code. In the following examples I will use
dots to show you clearly how many spaces would be in the code. This; “…” refers to
three spaces. Use spaces, not dots, when you type your code.
Note: The color code in the following examples is not a part of IDLE. These colors are used to
emphasize what parts of a block belong together.
The number of times we indent helps the computer know how we are grouping the
information. (Hang in there, a few more ideas and you will make your first game).
Block 1
....four spaces means we are still in block number 2
........eight spaces means we started block number 3
....four spaces means we want this code to be grouped with block 2
........eight spaces for block 3
7
..two spaces means this is part of block 1
..two spaces means this is still a part of block 1
....four spaces means we just started block number 2
....four spaces means we are still in block number 2
........eight spaces means we started block number 3
....four spaces means we want this code to be grouped with block 2
Block
3
........eight spaces for block 3
Whatever the number of spaces you choose, keep it consistent so you don’t get confused.
Why do we care about blocks and grouping programming statements? Ah, I’m glad you
asked, but I won’t tell you until later. (Don’t worry you will get to play with these
shortly).
8
Chapter 2: You are now a programmer!
Ok, let’s start playing…err… programming. Open your Python Shell window to type
some things. Type the following code exactly as you see it. Then hit the enter key after
each line.
9
If you type the # key in front of some text, the computer ignores you. This is useful
for adding comments in your programs that will not be misunderstood as instructions by
the computer; or if you just feel like being ignored.
Strings
If you noticed I typed the words “hey look a programmer” in quotation marks. Later I
used; ‘ ‘ and got the same exciting result. When we hit enter, the computer just repeated
what we typed back to us. It printed the characters as output on the screen. A sequence
of characters, words, or sentences like this one is called a string. When we use single or
double quote symbols to tell the computer what is in our string, we call these quote
symbols “delimiters.” We tell the computer that we are entering or ending a string by
using single or double quotation marks. The computer don’t care which kind you use at
this point. We can now say we have declared or “delimited” the string. In IDLE strings
are green and the output here is blue. The error message is red.
You can also add strings together using a math operator. We will talk more about that in a
moment. Putting the string “cool” with ‘cat’ produced ‘coolcat’. If I want a space
between them when they are added together, I should add one in my string; “cool “ +
“cat” or “cool” +” cat” would generate ‘cool cat’.
What happened when I typed, “wow?” The computer said;“Blah blah blah…is not
defined.”This is the computer’s way of saying; “huh? I don’t understand.” Python
attempts to give you an idea of what went wrong. When I typed the word, I did not
include it inside of quotation marks to tell the computer that I was entering a string. So,
the computer went, “Huh?”
Have you ever asked; “When am I going to use this kind of math?” In programming you
should remember some simple math concepts to make your life easier. Don’t worry, I’ll
be brief. To begin with, the world of math has animals called “operators” and “variables.”
Variables
Variables are like little like boxes or containers to put different things in. In math your
teacher may have told you that 1 + x= some other number. The 1 is an integer, (a
complete number as opposed to part of a number like ½), and the x is a variable. In
programming, you get to name your variable anything you want. You can create an
imaginary box with anything you want to put in it, and define/label that imaginary box,
(or variable), by any name you choose.
Let’s try it. Let’s imagine a box of chocolate. We want to tell the computer that the box
labeled “chocolate” has happiness and joy inside of it. To do this we use the = sign to
define what a variable means for the computer.
10
In the Python shell window type:
Chocolate
Hit enter.
You just defined a variable. This is very useful in programming. You will constantly be
teaching the computer how to think as you write programs.
Variables are chunks of data stored in the computers memory. There are generally three
types of data stored in variables. Variables can be in the form of integers or in a string as
mentioned previously. The second type of data, called a float, refers to the non-whole
numbers like decimals. Remember to use the = sign to assign a variable. If you want the
computer to think the variable x means 5 is in the box named x, then you type:
x=5
Now the computer holds a 5 in memory and when you type an x, it tells you ‘5’ if you hit
the enter key. You can name a variable almost anything and use symbols like the _
underscore. But there are some rules. You can’t use special key words that Python
understands as having special meanings. Don’t use these words:
11
If you should accidentally, (or just out of rebellion), use these words something like this
will happen:
“SyntaxError: invalid syntax...” is Python’s ways of saying, “Hey, you don’t know
what you are talking about and neither do I! Speak Python!” Don’t take it personal, as a
new programmer you will get used to these insults. You will find your computer has an
attitude.
Other than these minor rules, you can name a variable anything you want. To sound more
like proper geeks, we don’t always call them “names,” we sometimes call them
“identifiers.” Remember identifiers are just names.
Operators
Operators do something, like add, multiply, divide, subtract, or compare.
Notice that we already used the = sign to assign identifiers. So, we can’t use the equal
sign as an operator. Instead we must use == to mean; “equals.” What other useful things
can be done with operators? In the Python shell type:
Hit enter
Now type:
“words ” *10
Hit enter.
Which is easier? (I could have really used this all those times in primary school when I
had to write a few hundred sentences). Operators are life saving tools for the programmer.
The * symbol is used to express multiplication in Python. You also had to add a space at
the end of “words “ before the closing quotation marks or your 10 words look like one
long one. The most common operators are:
+ for addition
- for subtraction
/ for division
* for multiplication
12
You can also use operators with strings of data. Try it. Make two strings with any words
you want between quotation marks and add them together. Like this:
Remember that we already used the = symbol to define or tell the computer the meaning
of our variables. So we don’t confuse our little computer, we must use = = to express the
traditional meaning of “equal to.”
Now try some of these until you get bored. Any math expression will do. But wait! Use
only integers; no decimals at this point.
Due to the way a computer deals with floating point numbers, (numbers with a decimal
point); you won’t always get the same results as a calculator. It is too complex to get into
for a beginners book, so we will have to skip the explanations for now.
For now, remember that Python is not your math teacher; although they may look similar.
In math, 7.0 is still an integer because numbers like 0, 5, 177, are integers. But computers
are not so clever, so in Python the number 7 is an integer but since 7.0 includes a decimal
point; it’s called a floating point number.
13
Logical Operators
The words “and, or,” and “not” are logical operators. A simple condition is a
comparison that only uses two values:
9<19
These logical operators generally mean the same thing in programming as they do in
English. At this level, I will only introduce you to these as new terms and concepts.
Boolean expressions are sometimes called conditional expressions because they are
based on the condition that something is either true or false.
Let’s play with some of this new knowledge. Open IDLE and type the following, but feel
free to play with your own ideas after you try these:
8>3
Hit enter.
3>8
Hit enter.
He better watch it, I just found the off switch! (I told you the computer has an attitude)!
Boolean values or “True and False” remarks are very useful in programming.
14
Vocabulary Review:
15
Chapter 3: Your First Game!
Save your program and give it a name, but add .py after the name you choose. Then close
Python. Reopen IDLE and go to file, then recent files, and choose your program name.
Go to the run button at the top of the edit window and choose “Run module.”
When it asks you, “How many eggs can you eat?” type a number or a word.
16
It should respond and look something like this:
If your program didn’t work, go back and make sure everything is typed exactly as I did
typed it, and make sure you did typed in the right windows. Before we go on to your first
mini game I will explain more about the program you just made.
This first line of your program was just for you. Remember that the computer ignores
comments that begin with the # sign.
This line was to tell the computer the words you wanted it to show or print on the
computer screen.
amount=input()
The above like was to do two things. We made up the name of a variable and called it
“amount.” We also used the input() command to tell the computer that the computer
user would put some data into the computer.
This line was to tell the computer to print these words on the computer screed but to add
our variable. Our variable was called amount and now contains in memory whatever you
typed for the input.
17
Change the lines above and make up your own mini programs to practice and see what
happens. When you are ready, go on to the next part and make your first mini game.
Conditional Statements
As a programmer you will often find yourself needing to use a statement based on a
condition. If you eat 2000 candy bars: you will get sick. This kind of conditional
statement is called an “if” statement.
We will use the if and the elif statements to make your first simple game. Let’s name
your game; “Fred; The Middle Aged Alien Chicken.”
To start programming I will make a note of the name of my game at the top of the
window as a reminder using the # key.
Enter the following code and then we can play and explain it:
Make sure you are in the right window and that you type everything exactly as you see
above. Then click on run and run module to try it. Enter a number and it will give you a
reply. Enter another number and ...ahh!! it just repeats what you entered! You close the
game and run it again to try again. So, at this point, you can only make one guess before
the game replies and stops working. Don’t worry; we will fix that in a moment when you
learn about loops. For now, I will explain the code we have so far:
Again the # sign makes this information to ignore for the computer, but a reminder or
information for us humans and aliens.
This tells the computer to print the string of characters inside the ( ‘’ ) to the screen.
18
number=17
This tells the computer that the variable we called “number” will mean “17.”
guess=int(input(‘Enter a number:’))
This tells the computer that the variable we call “guess” will mean; we want an integer
input from the computer user. A string of characters, ‘Enter a number,’ to make the
request is inside the inner set of parenthesis. What’s with the parenthesis in parenthesis?
This tells the computer what to do first. Just as in math, the parenthesis are done from the
inner to the outer ones; the inner pair first, followed by the outer pair. Here, the string
(‘Enter the number’) will be seen by the computer before the (input()) is expected. The
inner parenthesis in (input()) has the meaning of (input (something here)). So, the
computer displayed, “Enter a number” and waited for us to input an integer before going
on.
if guess==number:
This was to tell the computer that if the variable we called “guess” really is equal to the
integer typed in the input : (then) do... The : sign means “then” in Python.
This tells the computer to print or put the string inside the (‘’) on the computer screen.
Notice that this and all the print commands are indented the same amount. This will
become important soon when we explain how to create blocks of code that tell the
computer what goes together. We will do this to teach about loops and how to fix the
little problem of our game only allowing one guess before it goes stupid and just repeats
what we type again.
elif guess<number:
Here’s a new one. What’s an elif? No, not that. It means “or else if...” Here, we are
telling the computer that in the past a guess was made and we told it what to do; but if
what we said may happen did’nt happen; here is something else to do. So, (elif), the
“guess” variable, is less than the “number” variable we told the computer meant “17.”
Read that again if you didn’t get it. Think of Python as an old man with the ability to
think like Einstein but the slurred vocabulary of a drunken two year old. Not to criticize it;
this is one of the ingenious aspects of Python. Saying little with a powerful meaning can
help us make powerful programs by writing code within a very short time.
Here we indent and tell the computer to print a string to the screen again.
19
elif guess>number:
This is a repeat of the elif above, but changing the meaning to; “if the guess is greater
than the number then...”
Remember pages ago when we talked about blocks? You were younger then, but maybe
you remember. Well, we need to review that stuff and expand on the meaning to be able
to teach you about loops and how to fix our games problem of stopping after one guess.
As long as some condition is true in a while statement, a block of statements or code will
be repeated. It will break out of that loop when the condition is no longer true for that
block of code.
Let’s fix our game. Change your code to look like this:
20
Most of this code was already explained, so we will just look at the changes and the new
things. You didn’t need to type any of the red comments for your code to work. These
were just there to help you. The spaces are also ignored by the computer and are placed in
code to make it easier for humans to read. The indentations are important changes. We
will discuss those in a moment. Now, if you try the game, you can continue guessing
until you guess correctly. The game will only end when you guess the correct answer.
Try it.
The code:
run=17
Here we named another variable called “run,” and told the computer that it also means
“17.”
while run:
The while statement is known as a looping statement. It tells the computer to repeat the
next block of code as long as it continues to be true. Notice the empty line after the line
of code with the while statement. In this example, I used a blank lines before and after the
block of code that the while statement applies to. This entire block will continue to repeat
forever until the run variable becomes false. So, the meaning of this would be to repeat
the next block of code while the run variable is true; “then, (:), do this...” Here we can
add if or elif statements to tell the computer when our run variable is true or when our
run variable becomes false. If the run variable becomes false, our while run loop is no
longer true and will stop looping/repeating.
Here we created another variable called “guess.” We told the computer that when we use
this word we mean the integer input that a person will type when he sees the string;
(‘Enter a number: ’), on the computer screen.
if guess==number:
This means that if the guess, (input), really equals, (==), the number, (17), then, (:)...
21
print(‘Yes! Fred is a middle aged...’)
run=False
These two statements are indented equally to tell the computer to run them if the guess
==number happens. This tells the computer that if this happens and the person inputs the
number 17, then do the following indented things/lines of code. If this happens first print
the string in parenthesis to the screen, then make the meaning of our run variable;
“false.” This causes the while statement to now be false and the computer knows to stop
repeating this loop and jump out of this set of indented lines, or this block of code, and
continue on the next block, (indicated by less indentation). That would make it jump to
the print statement with the string (‘Game over’).
If the number 17 is not guessed/our input, this would make the while statement continue
to be true. So, the computer should continue and repeat the while block again by going to
the next line in the block:
This means, “or else if the guess is less than 17 then, (:)...
print(‘Game over’)
This statement will not run as long as the computer is looping the while block of code,
because we let the computer know this is outside the while block by not indenting it. It
will only run when our while block become false because 17 was the input.
22
Whew! Now you can understand how Python can save you time. Look at how many
English words it just took to explain what we were doing. Then compare that to how
short the Python blocks of code are:
Vocabulary Review:
23
Chapter 4: Words Are Boring, Let’s Get
Graphic!
Introduction to graphics
Modules
Lists
slices
tuples
graphics
Maybe you are bored with all this reading game stuff and want to know about graphics.
Unfortunately, graphics are a more advanced topic that requires some basic experience in
Python before you can get deeply involved with them. However, we can provide a very
brief introduction to using graphics in Python without getting too complex.
The first thing you need to understand is that you do not have to program every code
command yourself in Python to get things done. This is one of the beautiful things about
Python. There are things called “modules” and “libraries” that offer code and mini
program modules to turn on or plug into Python that have already done much of the work
for you. Python comes with some modules already in it when you download the basic
version of Python. Many more modules are available on the internet that you can add,
depending upon what kind of programming you plan to do. See the Index.
Since this book is designed to get you started as fast and easily as possible, I will only
introduce you to one built-in module that comes within the Python you installed.
24
Introduction to Modules
Modules are programs that can be activated in Python and provide you with more tools
and functions to get things done more easily.
We must tell Python that we want to use a module by using the “import” command.
The module I will use to introduce you to the world of simple graphics in Python is called
“Tkinter.” There is a whole Tkinter world to explore but that’s beyond the scope of this
book. Many additional functions for Tkinter can be downloaded and added to Python. I
will just introduce you to some simple functions available that are normally within the
standard download of Python. In this way, you can use what you have and not worry
about downloading or installing modules at this point.
Enough talk, let’s get started. Enter this in your Edit window:
Now click on run then click run module, save it, and WOW!
A button appeared! Or at least it should have appeared. If it didn’t appear you either have
to check your code or check your eyes. Whenever code that you think is correct
disappoints you; go back and make sure every detail of the code was typed correctly. The
red error complaints will help you find mistakes. Once every dot, parenthesis, underscore,
indentation, and letter is correct; your program will run and the awesome buttons will
25
appear. Check everything and keep troubleshooting until it works. Don’t get frustrated.
As a programmer you will spend much of your time solving problems with code.
When you are happy click the; “QUIT BUTTON.” The “QUIT BUTTON” is boring. It
just quits the program we just made. The explanations for the code on this will be brief.
My objective here is to introduce you to some visual aspects of Python. To learn tkinter
in depth is an intermediate topic. After you understand the basics of Python you will be
ready to get deeper into modules and graphics.
Code Explanations:
class Application(Frame):
Calls a constructor for the parent class called,” Frame.” Huh? Sorry that was geek talk,
let’s translate that to English. This line of code is bringing in, (calling), the code that
makes or constructs a frame. The frame is just a rectangle like a picture frame. We
establish it as a parent. A parent and child relationship is used in programming and in 3D
animation to describe how you want things to work. For example; your arm bones are
parents to your hand bones. If you move your arm your hand will also move. However,
you can move your hand without moving your arm. Move a parent object and the child
moves with it. The child object can move by itself without moving the parent.
26
def say_Yeh(self):
print("Yeh! Your button just did something!")
These lines of code define the name, (say_Yeh), and a string that we want to print to the
computer screen. We will explain more about the def statement later.
def createWidgets(self):
self.QUITBUTTON = Button(self)
self.QUITBUTTON["text"] = "QUIT BUTTON"
self.QUITBUTTON["fg"] = "red"
self.QUITBUTTON["command"] = self.quit
self.QUITBUTTON.pack({"side": "left"})
These lines define the name and the details of our “Quit” button. The self statement will
be covered later.
self.do_something = Button(self)
self.do_something["text"] = "CLICK TO DO SOMETHING BUTTON",
self.do_something["command"] = self.say_Yeh
self.do_something.pack({"side": "left"})
These lines define the name and details of our “CLICK TO DO SOMETHING” button.
These are instructions to determine how things within our frame will behave. A deeper
study of widgets in tkinter is required to fully understand how to write and use these
statements.
root = Tk()
app = Application(master=root)
27
app.mainloop()
root.destroy()
These lines are to instruct the computer to create a loop until certain mouse or keyboard
events happen.
Yes, I know we rushed over these explanations. For now, stop whining and just copy the
code. Some of these statements will be discussed later in this course while other details
will be left for intermediate and advanced studies. To be a master of widgets and
graphics requires much more information and practice than can be provided in a basics
book. In some cases, you will not truly understand code until you have used it many
times. So, relax and do it.
The modules and aspects of Python that you choose to master first will depend upon your
objectives. If your objective is to write computer games; you will have to master graphics
at a higher level than you will need for simple applications. If you are going to work with
stock market forcasting; math modules would be more important to you. Think about
your goals and objective and chose the appropriate modules for your continued study.
Lists
A list is a sequence of elements. You could make a list of the family members in your
home:
Each element in the list has a position of reference. In other words, they are numbered
for indexing or referring to them later. But, instead of calling the first element in the list;
“1,” programmers begin with “0.” So, now you won’t be confused if you see a
programmer counting how many cups of coffee he had tonight by beginning with; “0, 1,
2, 3...” Lists can store numbers, strings, both, and they can store other lists.
Numbers: theAlist=[ 2, 4, 6, 8 ]
Strings: theBlist=[‘words’, ‘abc’, ‘fuglet’]
Both: theClist=[‘abc’, 4, ‘words’, 7]
Other Lists: AllLists=[theAlist, theBlist, theClist]
We can edit lists. But, the word “edit” is too common for a programmer to use, so let’s
use the word “mutable.”
28
Later you will learn about tuples. Tuples and strings are immutable. Huh? Mutable
means we can edit it. Immutable means we can’t edit it. So the secret meaning is that
lists can be edited; but strings and tuples can’t be edited.
Maybe you would like to edit your list of family members. Remember our list:
Index position: 0 1 2 3 4 5 6
Family = [“Dad”, “Mom”, “Brother”, “Sister”, “Me”, “Cat”, “Cockroaches”]
Let’s say you bought a mouse and he ate the family cockroaches. It was a sad event but
life goes on and now you must edit your list of family members.
You need to replace “Cockroaches” with “psycho mouse.”
To replace an item in a list you need to re-define what is in a particular index position.
Since “Cockraoches” is in the 6th position of our “Family” list, (remember you count
from 0), we do this:
Then, type:
Family[6]= “Psycho Mouse”
Test it by typing:
print(Family)
29
What happens if I want to add something to my list? Adding something to a list is
referred to as appending the list.
Let’s say that our Cat and Psycho Mouse got married and had a baby. We will call it,
“Cathouse.” Now we have a new member of our family and we must append the list.
We add this line before our print statement:
Family.append(“Catouse”)
Run it:
How do I remove an item? I’m glad you asked. Let’s say that Psycho Mouse gets angry
and eats the Cat. To remove “Cat” from the Family list we use del for delete and give
the index position:
del Family[5]
30
Run it to remove the cat:
Just to complicate our lives, my sister marries a guy and now another family has become
part of our family. Fortunately, adding two lists together is easy. First we define what is
in the second list. Let’s add this list under our Family list:
Then to add the two lists change the print statement to:
print(Family+Family2)
31
Slices
Remember how we used an index to cut one part of a list out to exchange it or delete it?
Wouldn’t it be nice if you could choose any part of the list; one character; half of an
index; all of the list; or any part you want to copy or work with? You can! A slice is
cutting a list into smaller parts. A slice is a subset of a list. Just as you can choose what
piece of pie you want to cut and how big you want to cut it; you can cut a slice from a list
starting and ending where you want it.
Let’s cut up a string pie. Don’t worry; you don’t need to eat it. The strings always get
caught between your teeth. Remember that we use a 0 for our first index position. But,
when talking about slices of pie or strings you have to use two reference points. You need
an index or reference point for the first cut and one for the final cut of the slice. So, our
index points are on each side of the characters in our string.
If we want to slice out the “s” we have to tell the computer the beginning and ending
index for the slice, [0:1].
0 1 2 3 4 5 6 7 8 9 10
s t r i n g p i e
32
Try this:
Run it:
I’m not sure what a “rin” tastes like but we successfully sliced a piece of our string from
index position 2 to 5!
0 1 2 3 4 5 6 7 8 9 10
s t r i n g p i e
You try a few to practice. First choose the letters you want to cut out of the string. Then
choose the beginning and ending cut for your slice of the string. Practice until you are
confident in choosing the index positions and getting the slice you wanted.
There is another way to refer to index positions in a slice if you want to use it. You can
think backwards! There are practical uses for this in more advanced programming. Here
I will only introduce you to it and you can play with it if you want to. In this index
system, index positions use negative numbers.
0 1
2 3 4 5 6 7 8 9 10
s t r i n g p i e
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
33
Try it:
Run it:
A “tring p” probably tastes better than a “rin,” but I’m only guessing. When you program
you will find that making a copy of part or all of what you have typed before will save
you a lot of time. Slicing strings is a useful talent.
Tuples
Let’s talk tuples! A tuple is like a list but can’t be edited or changed in its original form.
We generally use parenthesis, ( ), rather than brackets, [ ], to tell Python we are defining a
tuple.
This is a tuple:
Family3=(‘a guy’, ‘dog’, ‘cat’)
This is a list:
Family3=[‘a guy’, ‘dog’, ‘cat’]
A program can run a tuple with more efficiency than a list. Unless the program is very
small, tuples are faster. So, if you don’t need to change your list, it’s generally better to
use a tuple. Tuples can contain many things you may not want to change. These
constants in your program may be; music, a sequence of sound files, a sequence of
images, etc. You can assign an individual item to a variable or you could assign a group
of items in a sequence to a tuple. Tuples can also be nested, (placed), inside of other
tuples; called up as functions; and can hold any data type. For some applications, tuples
are used much more often than lists.
34
Vocabulary Review:
Immutable means we can’t edit it.
List a sequence of elements
Modules are programs that can be activated in Python and provide you with more tools
and functions to get things done more easily.
Mutable means we can edit it.
Nested, (placed), inside
Slice a subset of a list
Tuple like a list but can’t be edited or changed in its original form.
35
Chapter 5: Functions
calling functions
writing/defining functions
Arguments
global and local scope
What’s a function?
A function is a re-usable mini program inside of your program.
You have already been using functions throughout this book. The “print()” function
call is the one you have used most. A function call is the code you type to turn on a
function.
Calling a function:
Is A. Function home?
36
How Do I Create/Define My Own Functions?
It is common in writing code to use the same code many times. If we assign this code to a
function, we only need to call that function again rather than retype the code. To define
the meaning of a function for the computer we use the def statement.
Let’s try it. Below is the code for a new game based on our Alien Chicken game. The
purpose of this game is to show you that by making and using your own functions, you
can save a lot of time retyping things. We have a two part introduction to this game. The
second part will be repeated until the game is over. So, this part will be defined as a
function and called up when we need it.
Type this:
37
Here is the result if you make the wrong guess a couple of times:
This will repeat our function, IntroTwo, until you answer correctly.
Here is the result if you guess correctly:
38
Let’s have a brief look at the code:
#Hambuger Game
print ("You are hungry for a hamburger but you have no money.")
print ("You decide to go for a walk to get your mind off of it.")
print ("You just can't think of anything else.")
We are repeating the print statement to output each statement as a separate line on the
computer screen.
IntroTwo ( )
The brackets, ( ), in a def statement give us an optional place to add parameters. For
functions calls, like the str function, we refer to the data we put in the parenthesis as
arguments. Arguments placed in the brackets are special instructions on how we want the
function to work and must be separated by commas. In our Hamburger Game we had no
additional arguments so the parentheses were left empty.
String arguments:
39
coins=2
diamonds=4
run=2
while run:
The code here is a repeat of the code we used in our Middle Aged Chicken game.
If you don’t remember the purpose of each line of code refer to the explanations for that
game. The main difference here is that we added our function, IntroTwo().
When you create a function, sometimes you want to control what part of your code the
function will work in. You may want your function to work within a certain block of
code or you may want it to be applied to all of your code. Previously, we controlled what
block of code a statement influenced by proper indentation. With a function, we can add
a statement to clarify its region of influence or the scope of the function. A function can’t
be seen by the computer outside its scope or region of influence. Scopes are sometimes
called namespaces. If you want it to work at the top level of your program you must tell
Python that it’s a global function. A global statement tells Python to be able to use the
function everywhere in the program; (to always see it as being in the outer block of code).
x = 7
def FunctionName ():
global x
40
What happens if I add another statement as follows defining “local_1= 9?”
x = 7
def FunctionName ():
global x
local_1= 9
The Global variable; “ x” is accessed outside the block. The “local_1=9” variable is a
local variable accessed only within the “FunctionName” block.
def fun1():
dog1=3
def fun2():
dog2=9
def birdfun():
bird = 7
The above illustration has three variables and three functions. The variables created under
the functions def fun1() and def fun2() are like dogs within a fence. Any variables you
create are limited to roam within the fence. The variable dog1 has no effect on anything
outside the scope of his fence. Neither does the variable dog2. However, the bird
variable, like a bird, can move or work anywhere within the program. Functions will
behave in the same way unless you use a global statement to change their scope.
Remember that if you don’t tell Python that a function call is global, Python will assume
that it’s local. Don’t worry if you don’t understand everything at this point. This is just a
general overview of these statements. You will learn to use these statements through
practice and further study. In more advanced studies, you will also learn to use global
statements to control interaction within, or between modules.
41
This was just a short introduction to functions. You should continue to dive deeper into
the study of functions to become a better programmer. But, before writing complex
functions you should remember that Python has many functions built in, has many within
its standard library, and many are available in the modules you may want to use. You
may find one that already does the job for you. It’s a good idea to become familiar with
what is already out there before using your valuable time to create your own functions.
This is a judgment call. If it takes less time to write it than to search for it; then write it.
Python functions can be stored as objects that can be used later as arguments within other
functions. This is just a fancy way to say you can keep and copy functions to be like
building blocks within more complex functions later.
Vocabulary Review:
Function a re-usable mini program inside of your program
Function call the code you type to turn on a function.
Global statement tells Python to be able to use the function everywhere in the program
Scope or Namespace region of influence
42
Chapter 6: Parts Of Python
As we mentioned in previous chapters, modules are mini programs that have their own
data type class, definitions, etc. Remember how you used the tkinter module? First you
had to import it using the import statement. Then you were able to use its special
functions.
You will have to import and study every module you choose to use. You must learn the
statements and syntax necessary to use that particular module’s features. The syntax for
using functions in modules often includes a dot operator. So, an example to use a module
function would be:
nameOfModule.functionName(arguments)
There are standard library modules, third party modules, and after you are experienced in
Python; modules of your own creation. The internet is loaded with modules for nearly
every purpose a programmer may need. Set you goals, and choose accordingly. You may
want to start by getting some experience playing with Python’s standard library modules.
43
Standard Library Modules
The standard library is the library of modules that Python includes with the standard
version of Python. If you have Python installed, you have the standard library. Python’s
standard library includes many things you might need. The standard library includes
modules for; tkinter and other graphics, HTML, web browsers, data bases, email, GUI,
wave files, multi-threading, templating, math modules, data compression, cryptographic
services, generic operating system services, internet tools, networking, debugging,
internationalization (language services), documentation generator, etc.
See the index for libraries and module websites and resources.
Dictionaries
You can see that programmers need to arrange data many different ways to produce
programs quickly. Python and object oriented languages allow many ways to organize
your code to access and use it quickly. A dictionary is another way to organize your code.
You can create custom dictionaries of code for a specific project or program. Your
imagination is the only limitation to what kind of dictionaries you can create. Unlike a
normal dictionary however, Python dictionaries don’t have to organize the keywords and
definitions in any particular order.
We call the name we choose for our dictionary entry; the key. We call the details or
definition; the value. Programmers often refer to the key and its associated value as a
key-value pair.
Just as in a real dictionary, we find the definition, or value, we are looking for by looking
up the keyword, or key. We can’t look up the definition to find the key. The format for
creating an entry into a dictionary is:
We must make a name for our dictionary first. In this case I just called it, “mydictionary.”
We then create a key-value pair for each entry. This dictionary only has two entries, but
you can enter as many as you want. Be careful. Note that the entire dictionary is
bracketed with {}, the keys and the values are separated by colons, :, and they are
enclosed in quotation marks, “ “. If your dictionary does not work, check your syntax.
44
How to we find or access our dictionary entries?
dictionaryname [‘keyword’]
You can only use immutable objects for keys, but you can use immutable and mutable
objects for values. Create your own dictionary and practice accessing your code.
Vocabulary Review:
45
Chapter 7: Other Stuff
You will now recognize some of these statements from the previous chapters. The
following is a review of some of the key words we did use and a brief description of
those we didn’t use:
46
lambda is a variation on the def statement with other functionality (most
programmers prefer to just use def)
not works like the English not and makes something the opposite meaning
pass acts as a neutral place holder in some statements
return returns a value from a function that can be assigned to another function
try, except, and finally can be used for testing error messages, (advanced)
while while true repeatedly run this block of code
with statement has to do with writing new classes, (advanced Python)
yield has to do with execution flow control and “freezing.” (advanced)
Yeah, I know. These are not very efficient ways to debug programs. When you are at a
more advanced level you will understand and be able to use the tools Python provides to
help you. For now, trial and error can be a good teacher. Anything learned to easily, is
often forgotten easily.
Now What?
PRACTICE!! Go back to the beginning of this book and do the exercises in each chapter
again. But this time, change them. Play and see what you can change and what you must
do to get it to work if it no longer works correctly. Practice and playing with what you
have already covered will reinforce your understanding of it and your ability to use it.
Even though this book just teaches you the basics, it is enough to write programs. Use
your imagination, experiment, and find out what you can do.
LEARN MORE!! When you have explored these ideas enough to code some of your own
simple programs, continue to collect and practice more Python learning materials and
source code. After you have the basics of Python, the best way to become a programmer
is to dissect existing open source programs in your areas of interest. Books and materials
47
are important, but no book can teach you as fast or as well as if you are doing it. Start a
programming library of books, learning materials, modules, programs, and code.
Make sure that you select materials, modules, libraries, etc. that are compatible with
Python 3.0 or later. A new revised standard was set for Python from version 3.0 onward.
Most of the learning materials and code available at the time of this writing are for earlier
versions of Python. The commands given to you in tutorials and the code given to you for
examples will cause a lot of frustration when they don’t work correctly. If you want to
take the time to learn some troubleshooting, you can collect older teaching materials and
make the code changes to make them work in later versions of Python. You can have a
look at Python.org to see what changes have been made. Additional study combined with
trial and error will make these resources available to you. You can also search the internet
for code conversion programs that can convert older code to the version you are using.
If you are just getting started and don’t want to waste your time on the older resources;
then make sure all Python modules, libraries, code, books, etc. that you acquire are
updated for Python 3 or later. I have found that although some materials I found said they
had been updated, the code didn’t always work until I modified it for Python 3. Everyone
makes mistakes. If you get a book that has some code errors, go to a Python community,
a forum, Python. org or do searches on your specific problem. Edit the code and move on.
I hope this short book has helped you and will launch you into the world of Python
programming. Good luck!
Vocabulary Review:
Debugging finding and solving problems in a program
Exceptions are important or exceptional events
48
Index
49
breaks it out of that cycle.
Low level languages are used when the programmer wants more direct control over the
machine he is using.
Modules are programs that can be activated in Python and provide you with more tools
and functions to get things done more easily.
Mutable means we can edit it.
Nested, (placed), inside
Not works like the English not and makes something the opposite meaning
Operators do something, like add, multiply, divide, subtract, or compare.
Pass acts as a neutral place holder in some statements
Programming is the art and science of making the computer do what you want it to do by
creating programs.
Programs are algorithms and source code packaged together to achieve your
objective(s).
Python Shell is an interactive interpreter.
Return returns a value from a function that can be assigned to another function
Scope or Namespace region of influence
Script Mode is great for writing programs you can save and run later. It is generally
used for the final product.
Simple condition is a comparison that only uses two values, (9<10)
Slice a subset of a list
Source code is all the algorithms, statements, and instructions that we used in a
program.
String a sequence of characters, words, or sentences in quotation marks.
Try, except, and finally can be used for testing error messages, (advanced)
Tuple like a list but can’t be edited or changed in its original form.
Value the details or definition for a dictionary entry/key
Variables are like little like boxes or containers to put different things in.
While statement tells the computer to continue looping while some condition is
continuing to happen; usually while it is still true.
While while true repeatedly run this block of code
With statement has to do with writing new classes, (advanced Python)
Yield has to do with execution flow control and “freezing.” (advanced
50
Python’s Many Flavors:
wxPython, cross-platform GUI toolkit, widget creation, open source code/free, (http:/ /
www. wxpython. org)
51
Other Libraries And Modules May Be Found At:
http://www.AlienCatStudios.com
http://www.toonzcat.com
52