Introduction
to Programming
in Python


Philo van Kemenade - @phivk

General Assembly London

Hi!




I use Python


as the back-end of web apps

to analyse data like user engagement
& natural language processing

to scrape data from the web

to talk to robots 🤖

This Workshop


Programming

Python

Syntax

Words

Sentences

Stories

These Slides




tiny.cc/intro2python




 Coding 


 


Hammurabi Code Photo   by Gabriele B


 

Representation

&

reality

between

Interface




 Python 






Popularity


Powered by python


Pinterest-Logo

Talking Python

One of Python's most attractive features

Two Modes of Operation




Scripting Mode

  • Code in file
  • Save & load programs
  • More control  

Interactive Mode (REPL)

  • Terminal-based
  • Direct feedback
  • Try out code

REPL


Read

Evaluate

Print

Loop

REPL



Read
Evaluate
Print
Loop

Setting Up

Download python 3 from http://python.org/download/

Install Python

Open terminal / cmd window

Type “python3” to start Python in interactive mode


type "exit()" or ctrl+Z to exit

Getting help



>>> help()
(then Q for quit)

Search Online

Documentation at docs.python.org/3




 Syntax 


 


Train Parts Photo by Môsieur J. [version 8.0]

syntax You allready know

Python as a calculator

 LEVELS OF MEANING 


 Stories 


 Sentences 


 WORDS 




 Words 


 


Earthshaker Pinball Photo   by Chase N.

VARIABLES




Variables store values under a specified name

variables




assigning Variables in python


name = "Philo"
gender = "male"
height = 1.91 

types of Variables

Variables can store values of different types:


string - a sequence of characters, comprising text 

a”, "London", 'X', 'General Assembly'

int - an integer, or whole number 

1, 5 ,9999, -7 

float - a floating point number (using a decimal point)

 3.14, 1.68, 1.0

bool - boolean; binary true or false values

 True, False 


Changing types

'Casting' a variable to another type


int("42")

float("1.69")

str(1.5) 

Exercise


Look around

Choose 4 things in this room 
to assign to 4 different types of variables
(String, Integer, Float, Boolean)




 Strings 


 






 Integers 


 






 Floats 


 







 Booleans 


 




Operators

You can process the values in your variables by operators :

= assignment: assign a value to a variable
== comparison: are two variables equal?
!= comparison: are two variables unequal?

<, >, <=, >=

less-than, greater-than, less or equal, greater or equal
+, -, *, / mathematical operators
and, or logical operators


behaviour depends on data type

>>> start = "Lon"
>>> start
'Lon'
>>> end = "don"
>>> start + end
'London'
>>> start + start + end
'LonLondon'
>>> town = 3 * start + end
>>> town
'LonLonLondon'

Strings

Integers

>>> 1 + 1
2
>>> cats = 2
>>> cats
2
>>> dogs = 3
>>> cats == dogs
False
>>> cats < dogs
True
>>> dogs + 1
4
>>> dogs
3>>> dogs = dogs + 1
>>> dogs
4>>> pets = cats + dogs
>>> pets 6




 Questions? 


 

Exercise

Create two string variables:

first for your first name and last for your last name.


Can you make your full name by combining first and last?


Bonus: 

What happens if we compare first and last with the ‘<‘ and ‘>operators?

Why?

(Cheating encouraged)






 Collections 

Collections of Values


Values can also be stored in a collection

List

Dictionary




 Lists 


 



Todo Photo   by  purpleslog





 Lists 


 



Long Queue Photo   by gadl





 Lists 


 



Recipe Photo   by sleepyneko


Lists

We can store multiple values in a list:

>>> l = [1,3,9,4,884328881]
>>> n = ['sex', 'drugs', 'rock', 'roll']
>>> m = l + n
>>> m
[1, 3, 9, 4, 884328881, 'sex', 'drugs', 'rock', 'roll']

A list is a ordered sequence of items (between [...]) each with their own index:
>>> m[0]
1
>>> m[8]
'roll' 

Indices



cool things you can do with lists

>>> l = list(range(10)) >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l[1:5] [1, 2, 3, 4] >>> l[:5] [0, 1, 2, 3, 4] >>> del l[5:] >>> l [0, 1, 2, 3, 4] >>> l.append(5) >>> l [0, 1, 2, 3, 4, 5] >>> l.reverse() >>> l [5, 4, 3, 2, 1, 0]
>>> 5 in l
True

https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

Bonus



Lists are sequences, and so are Strings

>>> s = "General Assembly"
>>> s[0]
'G' >>> s[:7] 'General'




 Dictionaries 



 


Todo Photo   by  greeblie





 Dictionaries 



 


Chinese Menu Photo   by avlxyz





 Dictionaries 



 


Animal Sign Photo   by cortneymartin82


Dictionaries

Dictionaries store key:value pairs associatively.


personX = {
  'first':'Philo', 
  'last':'van Kemenade', 
  'twitter':'@phivk'
}
>>> personX = {'first':'Philo', 'last':'van Kemenade', 'twitter':'@phivk'}
>>> personX['first']
'Philo'
>>> personX['age'] = 30
>>> personX
{'twitter': '@phivk', 'last': 'van Kemenade', 'age': 30, 'first': 'Philo'}

some things you can do with Dictionaries

python 3
>>> list(personX.keys())
['twitter', 'last', 'first']
>>> list( personX.values())
['@phivk', 'van Kemenade', 'Philo']

python 2
>>> personX.keys()
['twitter', 'last', 'first']
>>> personX.values()
['@phivk', 'van Kemenade', 'Philo']




 Questions? 


 


Exercise


Form pairs

Create a dictionary to represent your neighbour in some attributes
(for example home town, hair colour, favourite film).

Bonus:

Add a list of interests to the dictionary . What do you use as key , what do you use as value ? 


(Cheating encouraged)




 Sentences 


 


Pinball Photo by Chase N.




 Loops 



 


Train Loop Photo  by  Minnesota Historical Society


For Loops

You use loops to repeat a statement.

A for-loop is useful when you know how many times you want to repeat an action (e.g. for every item in a list)


for item in sequence:
     do someting with item
 


Mind the Indentation

For Loops


For Loops


for example

>>> ages = [18, 21, 16, 12]
>>> for age in ages:
...     print(age)
... 
18
21
16
12

Visualise this code in action

While Loops

A while-loop  is useful when you don’t know when you want to stop looping yet.

A while-loop statement checks a condition and loops until the condition is no longer satisfied.


while condition true:
     do something

While loops



While Loops

for example

>>> gas = 42
>>> while gas > 0:
...     print("Vroom!")
...     gas = gas - 10
... 
Vroom!
Vroom!
Vroom!
Vroom!
Vroom! 
Visualise this code in action




 Conditional Statements 



 


Rail Split Photo by  Leonid Mamchenkov


Conditional statements

Conditional statements enable you to deal with multiple options. 

A part of your code is executed based on the truth value of a condition. You perform conditional checks with: if, (elif), (else)

if condition:
   action
elif other condition:  # optional
   other action
else:                  # optional
   final action
>>> age = 17
>>> if age < 18:
...     print("no drinks for you")
... 
no drinks for you


conditional statements




Conditional statements


>>> ages = [18, 21, 16, 12]
>>> for age in ages:
...     if age >= 18:
...             print("come on in")
...     elif age >= 16:
...             print("not quite yet")
...     else:
...             print("get outta here")
... 
come on in
come on in
not quite yet
get outta here
Visualise this code in action




 Functions 


 



Train Station Photo by luke.baldacchino


Functions

Functions perform a collections of tasks, bundled under a specific name

Take input argument(s), execute statement(s), return output

Input and output can be of all different types


>>> name = "Philo van Kemenade"
>>> length = len(name)
>>> print(length)
18
>>> type(length)
<type 'int'>

Built in functions




docs.python.org/3/library/functions.html


Functions


You can define your own functions like this:


def function_name( argument(s) ):
   action with argument(s)

>>> def multiply(a, b):
...     return a * b
... 
>>> multiply(3,4)
12

>>> def greet(name):
... print("hello "+ name)
...
>>> greet('Philo')
hello Philo
Mind the Indentation




 Questions? 


 


Train Crash Photo  by chrislstubbs


Exercise

Write a function with an appropriate name that: 

  • takes as input a person (represented as dictionary)
  • prints out information about the person





(Cheating encouraged)




 Stories 


 


Earthshaker Pinball Photo   by Chase N.

Modules

A module is a package of code that extends the native functionality of Python.
Use modules to:
plot graphs
download web pages 
read and write .csv files
...
Importing a modules into your script is simple
>>> import random
>>> random.randint(0,10)
0
>>> random.randint(0,10)
9
>>> random.randint(0,10)
3

Scripts

You can also write your code conveniently in a file using your favourite text editor

Such a file is a program or script and can look as simple as this:


print("Hello World")  


Save your script as “[a_descriptive_name].py”

Navigate in terminal to the location of your file

Run “python [a_descriptive_name].py”

scripts

Or this:

# this is a comment, use them!
'''
Comments can also 
span multiple lines
'''
# print() is a very useful function
# mind the quotes
print("Hello World")


# don't forget to greet the Sun
print("Hello Sun")




 Questions? 


 



Exercise

Implement your function from the previous exercise in a script,

run it to let it print output









(Cheating encouraged)

Home work


Install the Beautiful Soup module using PIP:

Run in terminal / cmd prompt

(NOT IN THE PYTHON INTERPRETER)

pip install beautifulsoup4
or
pip3 install beautifulsoup4
More info & help on installing modules: https://docs.python.org/3/installing/

on windows

If windows can't find the pip command, make sure your Python installation folder & Scripts folder are added to your 'PATH'

Follow these instructions:
http://stackoverflow.com/questions/6318156/adding-python-path-on-windows-7
https://youtu.be/9ocSXl5TL4U?t=2m54s

OR reinstall with this option checked (easy option™)

https://docs.python.org/3/using/windows.html




 Next Session 


Useful Resources


google; “python” + your problem / question

python.org/doc/; official python documentation, useful to find which functions are available

stackoverflow.com; huge gamified help forum with discussions on all sorts of programming questions, answers are ranked by community

codecademy.com/tracks/python; interactive exercises that teach you coding by doing

wiki.python.org/moin/BeginnersGuide/Programmers; tools, lessons and tutorials

Introduction to Programming in Python

By Philo van Kemenade

Introduction to Programming in Python

A practical introduction to programming through the Python programming language

  • 9,390