The Zen and
Art of Python
The Zen and Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Introductory WebOps club session on Python
Surajkumar Harikumar
Tejasvin Srinivasan
Abdeali Kothari
Pragathi Praveena
Shahidh Muhammed
The WebOps Club
IIT Madras
26 August 2014
1/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
2/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
3/32
What is Python
The Zen and
Art of Python
What Python Is:
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Interpreted
Object-Oriented
Versatile (owing to libraries and packages)
Focuses on easy-to-read code
Easy to learn, Fun to use
Problem
Problem
Quotable
Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live. Martin Golding
4/32
Why Python
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Code is 2-10x shorter than C,C++ and Java
Code is very easy to read, and easy to learn
Great for running small experiments
Interactive Interpreter
Problem
5/32
Who Uses Python
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Google
DropBox
GIMP
NASA
Problem
CIA
NASA
https://wiki.python.org/moin/OrganizationsUsingPython
http://en.wikipedia.org/wiki/List of Python software
6/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
7/32
Hello World
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
Thats all folks!
The Zen of
Python
Problem
Problem
8/32
Syntax
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Comments
Variables and Types:
Integers / Floats
Strings
List / Tuple
Dictionary
Boolean
9/32
Playing with Variables
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Arithmetic
String Operations
AND / OR / NOT
Comparing variables
Problem
10/32
Conditionals, Loops and more
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Indents are the new Brackets
If / Elif / Else
For
While
List Comprehension, Inline Loops
11/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
12/32
Functions
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Defining Functions
Function Arguments
args,kwargs
Example
13/32
Classes
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Defining Classes and variables
Functions on Classes
Initialization
Inheritance
Problem
14/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
15/32
Imports, Miscellany
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
One of the Most Useful features of Python
Code Re-use
Super Modularity
Datetime
Custom Code Import
Problem
Try-except
Documentation
16/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
17/32
The Zen of Python
The Zen and
Art of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases arent special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one and preferably only one obvious way to do it.
Although that way may not be obvious at first unless youre Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, its a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea lets do more of those!
18/32
Beautiful is better than ugly.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
19/32
Beautiful is better than ugly.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Beautiful is better than ugly.
Simple Expressions
Indentation and Consistent Syntax
Programs are human-friendly
Problem
19/32
Explicit is better than implicit.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
20/32
Explicit is better than implicit.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Boolean Type
Reads like English
No unnecessary iterators / variables
Problem
Problem
20/32
Simple is better than complex.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
21/32
Simple is better than complex.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Print statements
Interactive Interpreter
Problem
Problem
21/32
Complex is better than complicated.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
22/32
Complex is better than complicated.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Break Down complex tasks
Many many many python libraries
Dont have to Re-invent the wheel
Problem
Problem
22/32
Sparse is better than dense.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
23/32
Sparse is better than dense.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Tons of software that lets you go beyond Barebones Python
Django
Scipy
Mercurial
Problem
23/32
Readability counts.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
24/32
Readability counts.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Indentation
PEP8 Standard
Problem
Problem
24/32
Special cases arent special enough to break the
rules.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
25/32
Special cases arent special enough to break the
rules.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
Everything is an object
The Zen of
Python
Problem
Problem
25/32
Although practicality beats purity.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
26/32
Although practicality beats purity.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
OOP
Functional Programming
Problem
Problem
26/32
Errors should never pass silently.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
27/32
Errors should never pass silently.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Exception Handling
Debugging
Problem
Problem
27/32
Unless explicitly silenced.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
28/32
Unless explicitly silenced.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
Try-Except
The Zen of
Python
Problem
Problem
28/32
And all the rest.
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
In the face of ambiguity, refuse the temptation to guess.
There should be one and preferably only one obvious way to
do it.
Although that way may not be obvious at first unless youre
Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, its a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea lets do more of
those!
29/32
The Zen of Python Again
The Zen and
Art of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Problem
Problem
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases arent special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one and preferably only one obvious way to do it.
Although that way may not be obvious at first unless youre Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, its a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea lets do more of those!
30/32
Outline
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
1 Basics
Background
Basic Syntax
Functions, Classes
Imports, Miscellany
The Zen of
Python
Problem
Problem
2 The Zen Of Python
The Zen of Python
3 Problem
Problem
31/32
Relative Grading
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
The Zen of
Python
Can you write a function which, given the mark distribution for
the class, computes the mean + standard deviation, and tells
you your grade ?
Problem
Problem
32/32
Wrap Up
The Zen and
Art of Python
Basics
Background
Basic Syntax
Functions,
Classes
Imports,
Miscellany
The Zen Of
Python
Questions ?
The Zen of
Python
Problem
Problem
33/32