Python Introduction
Python Introduction
Introduction
Overview
• History
• Installing & Running Python
• Names & Assignment
• Sequences types: Lists, Tuples, and
Strings
• Mutability
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 program-
mers need. Too much freedom
and nobody can read another's
code; too little and expressive-
ness is endangered.”
- Guido van Rossum
http://docs.python.org/
The Python tutorial is good!
Running
Python
The Python Interpreter
• Typical Python implementations offer
both an interpreter and compiler
• Interactive interface to Python with a
read-eval-print loop
[finin@linux2 ~]$ python
Python 2.4.3 (#1, Jan 14 2008, 18:32:40)
[GCC 4.1.2 20070626 (Red Hat 4.1.2-14)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def square(x):
... return x * x
...
>>> map(square, [1, 2, 3, 4])
[1, 4, 9, 16]
>>>
Installing
• Python is pre-installed on most Unix systems,
including Linux and MAC OS X
• The pre-installed version may not be the most
recent one (2.6.2 and 3.1.1 as of Sept 09)
• Download from http://python.org/download/
• Python comes with a large library of standard
modules
• There are several options for an IDE
• IDLE – works well with Windows
• Emacs with python-mode or your favorite text editor
• Eclipse with Pydev (http://pydev.sourceforge.net/)
IDLE Development Environment
• IDLE is an Integrated DeveLopment Environ-
ment for Python, typically used on Windows
• Multi-window text editor with syntax
highlighting, auto-completion, smart indent
and other.
• Python shell with syntax highlighting.
• Integrated debugger
with stepping, persis-
tent breakpoints,
and call stack visi-
bility
Editing Python in Emacs
• Emacs python-mode has good support for editing
Python, enabled enabled by default for .py files
• Features: completion, symbol help, eldoc, and inferior
interpreter shell, etc.
Running Interactively on UNIX
On Unix…
% python
>>> 3+3
6
• Python prompts with ‘>>>’.
• To exit Python (not Idle):
• In Unix, type CONTROL-D
• In Windows, type CONTROL-Z + <Enter>
• Evaluate exit()
Running Programs on UNIX
• Call python program via the python interpreter
% python fact.py
• Make a python file directly executable by
• Adding the appropriate path to your python
interpreter as the first line of your file
#!/usr/bin/python
• Making the file executable
% chmod a+x fact.py
• Invoking file from Unix command line
% fact.py
Python Scripts
• When you call a python program from the
command line the interpreter evaluates each
expression in the file
• Familiar mechanisms are used to provide
command line arguments and/or redirect
input and output
• Python also has mechanisms to allow a
python program to act both as a script and as
a module to be imported and used by another
python program
The Basics
A Code Sample (in IDLE)
x = 34 - 23 # A comment.
y = “Hello” # Another one.
z = 3.45
if z == 3.45 or y == “Hello”:
x = x + 1
y = y + “ World” # String concat.
print x
print y
Enough to Understand the Code
• Indentation matters to code meaning
• Block structure indicated by indentation
• First assignment to a variable creates it
• Variable types don’t need to be declared.
• Python figures out the variable types on its own.
• Assignment is = and comparison is ==
• For numbers + - * / % are as expected
• Special use of + for string concatenation and % for
string formatting (as in C’s printf)
• Logical operators are words (and, or,
not) not symbols
• The basic printing command is print
Basic Datatypes
• Integers (default for numbers)
z = 5 / 2 # Answer 2, integer division
• Floats
x = 3.456
• Strings
• Can use “” or ‘’ to specify with “abc” ==
‘abc’
• Unmatched can occur within the string:
“matt’s”
• Use triple double-quotes for multi-line strings or
strings than contain both ‘ and “ inside of them:
“““a‘b“c”””
Whitespace
Whitespace is meaningful in Python: especially
indentation and placement of newlines
•Use a newline to end a line of code
Use \ when must go to next line prematurely
•No braces {} to mark blocks of code, use
consistent indentation instead
• First line with less indentation is outside of the block
• First line with more indentation starts a nested block
•Colons start of a new block in many constructs,
e.g. function definitions, then clauses
Comments
• Start comments with #, rest of line is ignored
• Can include a “documentation string” as the
first line of a new function or class you define
• Development environments, debugger, and
other tools use it: it’s good style to include one
def fact(n):
“““fact(n) assumes n is a positive
integer and returns facorial of n.”””
assert(n>0)
return 1 if n==1 else n*fact(n-1)
Assignment
• Binding a variable in Python means setting a name to
hold a reference to some object
• Assignment creates references, not copies
• Names in Python do not have an intrinsic type,
objects have types
• Python determines the type of the reference automatically
based on what data is assigned to it
• You create a name the first time it appears on the left
side of an assignment expression:
x = 3
• A reference is deleted via garbage collection after
any names bound to it have passed out of scope
• Python uses reference semantics (more later)
Naming Rules
• Names are case sensitive and cannot start
with a number. They can contain letters,
numbers, and underscores.
bob Bob _bob _2_bob_ bob_2 BoB
• There are some reserved words:
and, assert, break, class, continue,
def, del, elif, else, except, exec,
finally, for, from, global, if,
import, in, is, lambda, not, or,
pass, print, raise, return, try,
while
Naming conventions
The Python community has these recommend-
ed naming conventions
•joined_lower for functions, methods and,
attributes
•joined_lower or ALL_CAPS for constants
•StudlyCaps for classes
•camelCase only to conform to pre-existing
conventions
•Attributes: interface, _internal, __private
Assignment
• You can assign to multiple names at the
same time
>>> x, y = 2, 3
>>> x
2
>>> y
3
This makes it easy to swap values
>>> x, y = y, x
• Assignments can be chained
>>> a = b = x = 2
Accessing Non-Existent Name
Accessing a name before it’s been properly
created (by placing it on the left side of an
assignment), raises an error
>>> y