Python: An Introduction
OFE 2021 Summer Workshop
Haiyong Liu
Department of Economics
Agenda
Introduction
Running Python
Python Programming
Variables
Types
Arithmetic operators
Boolean logic
Strings
Printing
Exercises
What is python?
Object oriented language
Interpreted language
Supports dynamic data type
Independent from platforms
Focused on development time
Simple and easy grammar
High-level internal object data types
Automatic memory management
It’s free (open source)!
Brief History of Python
Invented in the Netherlands, early 90s by Guido
van Rossum
Named after Monty Python
Open sourced from the beginning
Considered a scripting language, but is much
more
Scalable, object oriented and functional from the
beginning
Used by Google from the beginning
Increasingly popular
Python’s Benevolent Dictator
For Life
“Python is an experiment in how
much freedom programmers need.
Too much freedom and nobody can
read another's code; too little and
expressive-ness is endangered.”
- Guido van Rossum
Language properties
Everything is an object
Modules, classes, functions
Exception handling
Dynamic typing, polymorphism
Static scoping
Operator overloading
Indentation for block structure
High-level data types
Numbers: int, long, float, complex
Strings: immutable
Lists and dictionaries: containers
Other types for e.g. binary data, regular expressions,
introspection
Extension modules can define new “built-in” data
types
Why learn python?
Fun-to-use "Scripting language"
Object-oriented
Highly educational
Very easy to learn
Powerful, scalable, easy to maintain
high productivity
Lots of libraries
Glue language
Interactive front-end for FORTRAN/C/C++ code
Where to use python?
System management (i.e., scripting)
Graphic User Interface (GUI)
Internet programming
Database (DB) programming
Text data processing
Distributed processing
Numerical operations
Graphics
And so on…
Why learn python? (cont.)
Reduce development time
Reduce code length
Easy to learn and use as developers
Easy to understand codes
Easy to do team projects
Easy to extend to other languages
Course Goals
To understand the basic structure and syntax of
Python programming language
To write your own simple Python scripts.
To serve as the starting point for more advanced
training on Python coding
Agenda
Introduction
Running Python
Python Programming
Data types
Control flows
Classes, functions, modules
Hands-on Exercises
Access Python from ECU
remoteaccess.ecu.edu
https://ecu.teamdynamix.com/TDClient/1409/Portal/KB
/ArticleDet?ID=67605
Python as a calculator
Let us calculate the distance between Edinburgh
and London in km
Variables
Great calculator but how can we make it store
values?
Do this by defining variables
Can later be called by the variable name
Variable names are case sensitive and unique
We can now reuse the variable mileToKm in the next block without
having to define it again!
Types
Variables actually have a type, which defines the way it
is stored.
The basic types are:
WHY SHOULD WE CARE?
Important lesson to remember!
We can't do arithmetic operations on variables of different types. Therefore
make sure that you are always aware of your variables types!
You can find the type of a variable using type(). For example type type(x).
Casting types
Luckily Python offers us a way of converting variables to
different types!
Casting – the operation of converting a variable to a
different type
Similar methods exist for
other data types: int(),
float(), str()
Quick quiz
What will be the result?
Arithmetic operations
Similar to actual Mathematics.
Order of precedence is the same
as in Mathematics.
We can also use parenthesis ()
Order precedence example
Quick quiz
vs
13 49
Comparison operators
I.e. comparison operators
Return Boolean values
(i.e. True or False)
Used extensively for
conditional statements
Comparison examples
False
Logical operators
• Allows us to extend the conditional
logic
• Will become essential later on
Combining both
True True
Another example
True True True
That wasn't very easy to read was it?
Is there a way we can make it more readable?
Strings
Powerful and flexible in Python
Can be added
Can be multiplied
Can be multiple lines
Strings
Strings
These are called methods and add extra functionality to the
String.
If you want to see more methods that can be applied to a string
simply type in dir('str')
Mixing up strings and numbers
Often we would need to mix up numbers and strings.
It is best to keep numbers as numbers (i.e. int or float)
and cast them to strings whenever we need them as a string.
Multiline strings
Printing
When writing scripts, your outcomes aren't printed on
the terminal.
Thus, you must print them yourself with the print()
function.
Beware to not mix up the different type of variables!
Quick quiz
Do you see anything wrong with this block?
Another more generic way to
fix it
If we comma separate statements in a print function we
can have different variables printing!
Placeholders
A way to interleave numbers is
Elegant and easy
more in your notes
Commenting
Useful when your code needs further explanation.
Either for your future self and anybody else.
Useful when you want to remove the code from
execution but not permanently
Comments in Python are done with #
Lists
One of the most useful concepts
Group multiple variables together (a kind of
container!)
Indexing a list
• Indexing – accessing items within a data structure
• Indexing a list is not very intuitive...
• The first element of a list has an index 0
Quick quiz
What will fruits[3] return?
Quick quiz
What will this return?
Data structure sizes
Make sure you are always aware of the sizes of each
variable!
This can easily be done using the len() function.
It returns the length/size of any data structure
Is a tomato really a fruit?
Furthermore, we can modify lists in various ways
Lists with integers
range() - a function that generates a sequence of numbers as a list
Slicing lists
• Slicing – obtain a particular set of sub-elements from a data
structure.
• Very useful and flexible.
Lists – helpful functions
Makes them extremely useful and versatile
Lists can be of different types
Not very useful, but possible
Mutability
Mutable object – can be changed after creation.
Immutable object - can NOT be changed after
creation.
Quick quiz
Are lists mutable?
Tuples
Effectively lists that are immutable (I.e. can't be
changed)
Dictionaries
• Similar to actual dictionaries
• They are effectively 2 lists
combined – keys and values
• We use the keys to access
the values instead of
indexing them like a list
• Each value is mapped to a
unique key
Dictionary definition
Defined as comma separated key : value pairs:
Comma
separated
Curly brackets
Dictionary properties
Values are mapped to a key
Values are accessed by their key
Key are unique and are immutable
Values cannot exist without a key
Dictionaries
Let us define the one from the previous image
Accessing a dictionary
Values are accessed by their keys (just like a dictionary)
Note that they can't be indexed like a list
Altering a dictionary
Can be done via the dictionary methods
Keys and Values
It is possible to obtain only the keys or values of a
dictionary.
This is useful for iteration.
Sets
Effectively lists that can't contain duplicate items
Similar functionality to lists
Can't be indexed or sliced
Can be created with {} or you can convert a list to a set
If Else
Fundamental building block of software
Conditional statement
Executed if answer is True
Executed if answer is False
If Else example
Try running the example below.
What do you get?
Indentation matters!
Code is grouped by its indentation
Indentation is the number of whitespace or tab characters before the code.
If you put code in the wrong block then you will get unexpected behavior
Extending if-else blocks
We can add infinitely more if statements using elif
elif = else + if which means that the previous
statements must be false for the current one to
evaluate to true
Bitcoin broker example
Quick quiz
What would happen if both conditions are True?
For loop
Allows us to iterate over a set amount of variables
within a data structure. During that we can
manipulate each item however we want
Again, indentation is important here!
Example
Say we want to go over a list and print each item
along with its index
What if we have much more than 4 items in the list,
say, 1000?
For example
• Now with a for loop
• Saves us writing more lines
• Doesn't limit us in term of size
Numerical for loop
While loop
Another useful loop. Similar to the for loop.
A while loop doesn't run for a predefined number of iterations, like a
for loop. Instead, it stops as soon as a given condition becomes
true/false.
Break statement
Allows us to go(break) out of a loop preliminary.
Adds a bit of controllability to a while loop.
Usually used with an if.
Can also be used in a for loop.
Quick quiz
How many times are we going to execute the while
loop?
Functions
Allow us to package functionality in a nice and
readable way
reuse it without writing it again
Make code modular and readable
Rule of thumb - if you are planning on using very
similar code more than once, it may be worthwhile
writing it as a reusable function.
Function declaration
keyword Any number of
arguments
[Optional] Exits the function and
returns some value
• Functions accept arguments and execute a piece of code
• Often they also return values (the result of their code)
Function example
Function example 2
We want to make a program that rounds numbers up or
down.
Try to pack the following into a function.
Function example 2
Function example 3
Python built-in functions
To find out how they work:
https://docs.python.org/3.3/library/functions.html
Running Python Programs
Interactively
Suppose the file script.py contains the following lines:
print 'Hello world'
x = [0,1,2]
Let's run this script in each of the ways described on the last slide:
python
>>> import script # DO NOT add the .py suffix. Script is a module here
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'x' is not defined
>>> script.x # to make use of x, we need to let Python know which
#module it came from, i.e. give Python its context
[0,1,2]
File naming conventions
python files usually end with the suffix .py
but executable files usually don’t have
the .py extension
modules (later) should always have the .py
extension
References
Python Homepage
• http://www.python.org
Python Tutorial
• http://docs.python.org/tutorial/
Python Documentation
• http://www.python.org/doc
Python Library References
http://docs.python.org/release/2.5.2/lib/lib.html
Python Add-on Packages:
http://pypi.python.org/pypi