SlideShare a Scribd company logo
What Is Python?
Created in 1990 by Guido van Rossum
While at CWI, Amsterdam
Now hosted by centre for national research initiatives,
Reston, VA, USA
Free, open source
And with an amazing community
Object oriented language
“Everything is an object”
Why Python?Designed to be easy to learn and master
Clean, clear syntax
Very few keywords
Highly portable
Runs almost anywhere - high end servers and
workstations, down to windows CE
Uses machine independent byte-codes
Extensible
Designed to be extensible using C/C++, allowing
access to many external libraries
Python: a modern hybrid
A language for scripting and prototyping
Balance between extensibility and powerful built-in
data structures
genealogy:
Setl (NYU, J.Schwartz et al. 1969-1980)
ABC (Amsterdam, Meertens et al. 1980-)
Python (Van Rossum et all. 1996-)
Very active open-source community
Prototyping
Emphasis on experimental programming:
Interactive (like LISP, ML, etc).
Translation to bytecode (like Java)
Dynamic typing (like LISP, SETL, APL)
Higher-order function (LISP, ML)
Garbage-collected, no ptrs
(LISP, SNOBOL4)
Prototyping
Emphasis on experimental programming:
Uniform treatment of indexable structures (like
SETL)
Built-in associative structures (like SETL,
SNOBOL4, Postscript)
Light syntax, indentation is significant (from ABC)
Most obvious and notorious
features
Clean syntax plus high-level data types
Leads to fast coding
Uses white-space to delimit blocks
Humans generally do, so why not the language?
Try it, you will end up liking it
Variables do not need declaration
Although not a type-less language
A Digression on Block Structure
There are three ways of dealing with IF structures
Sequences of statements with explicit end (Algol-68,
Ada, COBOL)
Single statement
(Algol-60, Pascal, C)
Indentation (ABC, Python)
Sequence of Statements
IF condition THEN
stm;
stm;
..
ELSIF condition THEN
stm;
..
ELSE
stm;
..
END IF;
next statement;
Single Statement
IF condition THEN
BEGIN
stm;
stm;
END ..
ELSE IF condition THEN
BEGIN
stm;
..
END;
ELSE
BEGIN
stm;
..
END;
next-statement;
Indentation
IF condition:
stm;
stm;
..
ELSIF condition:
stm;
..
ELSE:
stm;
..
next-statement
Pythonwin
These examples use Pythonwin
Only available on Windows
GUI toolkit using Tkinter available for most platforms
Standard console Python available on all platforms
Has interactive mode for quick testing of code
Includes debugger and Python editor
Interactive Python
Starting Python.exe, or any of the GUI environments
present an interactive mode
>>>prompt indicates start of a statement or
expression
If incomplete, ...prompt indicates second and
subsequent lines
All expression results printed back to interactive
console
Variables and Types(1 of 3)
Variables need no declaration
>>> a=1
>>>
As a variable assignment is a statement, there is no
printed result
>>> a
1
Variable name alone is an expression, so the result is
printed
Variables and Types (2 of 3)
Variables must be created before they can be used
>>> b
Traceback (innermost last):
File "<interactive input>", line
1, in ?
NameError: b
>>>
Python uses exceptions - more detail later
Variables and Types (3 of 3)
Objects always have a type
>>> a = 1
>>> type(a)
<type 'int'>
>>> a = "Hello"
>>> type(a)
<type 'string'>
>>> type(1.0)
<type 'float'>
Assignment versus Equality Testing
Assignment performed with single =
Equality testing done with double = (==)
Sensible type promotions are defined
Identity tested with is operator.
>>> 1==1
1
>>> 1.0==1
1
>>> "1"==1
0
Simple Data Types
Strings
May hold any data, including embedded NULLs
Declared using either single, double, or triple quotes
>>> s = "Hi there"
>>> s
'Hi there'
>>> s = "Embedded 'quote'"
>>> s
"Embedded 'quote'"
Simple Data Types
Triple quotes useful for multi-line strings
>>> s = """ a long
... string with "quotes" or anything
else"""
>>> s
' a long012string with "quotes" or
anything else'
>>> len(s)
45
Simple Data TypesInteger objects implemented using C longs
Like C, integer division returns the floor
>>> 5/2
2
Float types implemented using C doubles
No point in having single precision since execution
overhead is large anyway
Simple Data Types
Long Integers have unlimited size
Limited only by available memory
>>> long = 1L << 64
>>> long ** 5
21359870359209100823950217061695521146027045223
56652769947041607822219725780640550022962086936
576L
High Level Data Types
Lists hold a sequence of items
May hold any object
Declared using square brackets
>>> l = []# An empty list
>>> l.append(1)
>>> l.append("Hi there")
>>> len(l)
2
High Level Data Types
>>> l
[1, 'Hi there']
>>>
>>> l = ["Hi there", 1, 2]
>>> l
['Hi there', 1, 2]
>>> l.sort()
>>> l
[1, 2, 'Hi there']
High Level Data Types
Tuples are similar to lists
Sequence of items
Key difference is they are immutable
Often used in place of simple structures
Automatic unpacking
>>> point = 2,3
>>> x, y = point
>>> x
2
High Level Data Types
Tuples are particularly useful to return multiple
values from a function
>>> x, y = GetPoint()
As Python has no concept of byref parameters, this
technique is used widely
High Level Data Types
Dictionaries hold key-value pairs
Often called maps or hashes. Implemented using hash-
tables
Keys may be any immutable object, values may be any
object
Declared using braces
>>> d={}
>>> d[0] = "Hi there"
>>> d["foo"] = 1
High Level Data Types
Dictionaries (cont.)
>>> len(d)
2
>>> d[0]
'Hi there'
>>> d = {0 : "Hi there", 1 :
"Hello"}
>>> len(d)
2
Blocks
Blocks are delimited by indentation
Colon used to start a block
Tabs or spaces may be used
Mixing tabs and spaces works, but is discouraged
>>> if 1:
... print "True"
...
True
>>>
Blocks
Many hate this when they first see it
Most Python programmers come to love it
Humans use indentation when reading code to
determine block structure
Ever been bitten by the C code?:
if (1)
printf("True");
CallSomething();
Looping
The for statement loops over sequences
>>> for ch in "Hello":
... print ch
...
H
e
l
l
o
>>>
Looping
Built-in function range() used to build sequences of
integers
>>> for i in range(3):
... print i
...
0
1
2
>>>
Looping
while statement for more traditional loops
>>> i = 0
>>> while i < 2:
... print i
... i = i + 1
...
0
1
>>>
Functions
Functions are defined with the def statement:
>>> def foo(bar):
... return bar
>>>
This defines a trivial function named foo that takes a
single parameter bar
Functions
A function definition simply places a function object
in the namespace
>>> foo
<function foo at fac680>
>>>
And the function object can obviously be called:
>>> foo(3)
3
>>>
Classes
Classes are defined using the class statement
>>> class Foo:
... def __init__(self):
... self.member = 1
... def GetMember(self):
... return self.member
...
>>>
Classes
A few things are worth pointing out in the previous
example:
The constructor has a special name __init__, while a
destructor (not shown) uses __del__
The self parameter is the instance (ie, the this in C+
+). In Python, the self parameter is explicit (c.f. C++,
where it is implicit)
The name self is not required - simply a convention
Classes
Like functions, a class statement simply adds a class
object to the namespace
>>> Foo
<class __main__.Foo at 1000960>
>>>
Classes are instantiated using call syntax
>>> f=Foo()
>>> f.GetMember()
1
Modules
Most of Python’s power comes from modules
Modules can be implemented either in Python, or in
C/C++
import statement makes a module available
>>> import string
>>> string.join( ["Hi", "there"] )
'Hi there'
>>>
Exceptions
Python uses exceptions for errors
try / except block can handle exceptions
>>> try:
... 1/0
... except ZeroDivisionError:
... print "Eeek"
...
Eeek
>>>
Exceptions
try / finally block can guarantee execute of code
even in the face of exceptions
>>> try:
... 1/0
... finally:
... print "Doing this anyway"
...
Doing this anyway
Traceback (innermost last): File "<interactive
input>", line 2, in ?
ZeroDivisionError: integer division or modulo
>>>
Threads
Number of ways to implement threads
Highest level interface modelled after Java
>>> class DemoThread(threading.Thread):
... def run(self):
... for i in range(3):
... time.sleep(3)
... print i
...
>>> t = DemoThread()
>>> t.start()
>>> t.join()
0
1 <etc>
Standard Library
Python comes standard with a set of modules, known
as the “standard library”
Incredibly rich and diverse functionality available
from the standard library
All common internet protocols, sockets, CGI, OS
services, GUI services (via Tcl/Tk), database, Berkeley
style databases, calendar, Python parser, file
globbing/searching, debugger, profiler, threading and
synchronisation, persistency, etc
External library
Many modules are available externally covering
almost every piece of functionality you could ever
desire
Imaging, numerical analysis, OS specific functionality,
SQL databases, Fortran interfaces, XML, Corba, COM,
Win32 API, etc
Way too many to give the list any justice
Python ProgramsPython programs and modules are written as text files
with traditionally a .py extension
Each Python module has its own discrete namespace
Name space within a Python module is a global one.
Python ProgramsPython modules and programs are differentiated only
by the way they are called
.py files executed directly are programs (often referred
to as scripts)
.py files referenced via the import statement are
modules
Python Programs
Thus, the same .py file can be a program/script, or a
module
This feature is often used to provide regression tests
for modules
When module is executed as a program, the regression
test is executed
When module is imported, test functionality is not
executed
More Information on Python
Can’t do Python justice in this short time frame
But hopefully have given you a taste of the language
Comes with extensive documentation, including
tutorials and library reference
Also a number of Python books available
Visit www.python.org for more details
Can find python tutorial and reference manual
Scripting Languages
What are they?
Beats me 
Apparently they are programming languages used for
building the equivalent of shell scripts, i.e. doing the
sort of things that shell scripts have traditionally been
used for.
But any language can be used this way
So it is a matter of convenience
Characteristics of Scripting Languages
Typically interpretive
But that’s an implementation detail
Typically have high level data structures
But rich libraries can substitute for this
For example, look at GNAT.Spitbol
Powerful flexible string handling
Typically have rich libraries
But any language can meet this requirement
Is Python A Scripting Language?
Usually thought of as one
But this is mainly a marketing issue
People think of scripting languages as being easy to
learn, and useful.
But Python is a well worked out coherent dynamic
programming language
And there is no reason not to use it for a wide range of
applications.

More Related Content

What's hot (18)

PPTX
Python language data types
Hoang Nguyen
 
PPTX
Python for Beginners(v3)
Panimalar Engineering College
 
PPTX
Standard data-types-in-py
Priyanshu Sengar
 
PDF
Strings in Python
nitamhaske
 
PPTX
Chapter 14 strings
Praveen M Jigajinni
 
PPT
Python course in_mumbai
vibrantuser
 
PPTX
scripting in Python
Team-VLSI-ITMU
 
PPTX
Basic data types in python
sunilchute1
 
PDF
Python Cheat Sheet
Muthu Vinayagam
 
PDF
Python strings
Mohammed Sikander
 
PPTX
Introduction to the basics of Python programming (part 3)
Pedro Rodrigues
 
PDF
Python tutorial
Andrei Tomoroga
 
PDF
Notes3
hccit
 
PPTX
Iteration
Pooja B S
 
PPT
Strings Arrays
phanleson
 
PDF
Python programming : Strings
Emertxe Information Technologies Pvt Ltd
 
Python language data types
Hoang Nguyen
 
Python for Beginners(v3)
Panimalar Engineering College
 
Standard data-types-in-py
Priyanshu Sengar
 
Strings in Python
nitamhaske
 
Chapter 14 strings
Praveen M Jigajinni
 
Python course in_mumbai
vibrantuser
 
scripting in Python
Team-VLSI-ITMU
 
Basic data types in python
sunilchute1
 
Python Cheat Sheet
Muthu Vinayagam
 
Python strings
Mohammed Sikander
 
Introduction to the basics of Python programming (part 3)
Pedro Rodrigues
 
Python tutorial
Andrei Tomoroga
 
Notes3
hccit
 
Iteration
Pooja B S
 
Strings Arrays
phanleson
 
Python programming : Strings
Emertxe Information Technologies Pvt Ltd
 

Similar to Pythonintroduction (20)

PPT
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
PPTX
Python PPT by Sushil Sir.pptx
sushil155005
 
ODP
Python Presentation
Narendra Sisodiya
 
PPTX
Introduction to Python Programming Language
merlinjohnsy
 
PDF
Introduction to python
Mohammed Rafi
 
PPTX
cupdf.com_python-seminar-ppt.pptx.........
ansuljoshi8456
 
PDF
First Steps in Python Programming
Dozie Agbo
 
DOC
Core Python.doc
Jyoti shukla
 
PDF
Introduction to Python
SudhanshiBakre1
 
PPTX
Python Seminar PPT
Shivam Gupta
 
PPTX
Python
Shivam Gupta
 
PPTX
Python for dummies
Roberto Stefanetti
 
PDF
Tutorial on-python-programming
Chetan Giridhar
 
PDF
python-160403194316.pdf
gmadhu8
 
PDF
web programming UNIT VIII python by Bhavsingh Maloth
Bhavsingh Maloth
 
PPTX
Python programming
Ganesh Bhosale
 
PPT
Python - Module 1.ppt
jaba kumar
 
PPTX
Python Demo.pptx
ParveenShaik21
 
PPTX
Python Introduction
Punithavel Ramani
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
Python PPT by Sushil Sir.pptx
sushil155005
 
Python Presentation
Narendra Sisodiya
 
Introduction to Python Programming Language
merlinjohnsy
 
Introduction to python
Mohammed Rafi
 
cupdf.com_python-seminar-ppt.pptx.........
ansuljoshi8456
 
First Steps in Python Programming
Dozie Agbo
 
Core Python.doc
Jyoti shukla
 
Introduction to Python
SudhanshiBakre1
 
Python Seminar PPT
Shivam Gupta
 
Python
Shivam Gupta
 
Python for dummies
Roberto Stefanetti
 
Tutorial on-python-programming
Chetan Giridhar
 
python-160403194316.pdf
gmadhu8
 
web programming UNIT VIII python by Bhavsingh Maloth
Bhavsingh Maloth
 
Python programming
Ganesh Bhosale
 
Python - Module 1.ppt
jaba kumar
 
Python Demo.pptx
ParveenShaik21
 
Python Introduction
Punithavel Ramani
 
Ad

More from -jyothish kumar sirigidi (11)

PPTX
Webtechnologies
-jyothish kumar sirigidi
 
PPTX
Open source software
-jyothish kumar sirigidi
 
PPT
Authenticating with our minds
-jyothish kumar sirigidi
 
PPT
Google chrome OS
-jyothish kumar sirigidi
 
PPT
Blue eye technology ppt
-jyothish kumar sirigidi
 
PPTX
mobile application security
-jyothish kumar sirigidi
 
PPT
Network security
-jyothish kumar sirigidi
 
PPT
CLOUD COMPUTING
-jyothish kumar sirigidi
 
PPTX
Applications of computer graphics
-jyothish kumar sirigidi
 
Webtechnologies
-jyothish kumar sirigidi
 
Open source software
-jyothish kumar sirigidi
 
Authenticating with our minds
-jyothish kumar sirigidi
 
Google chrome OS
-jyothish kumar sirigidi
 
Blue eye technology ppt
-jyothish kumar sirigidi
 
mobile application security
-jyothish kumar sirigidi
 
Network security
-jyothish kumar sirigidi
 
CLOUD COMPUTING
-jyothish kumar sirigidi
 
Applications of computer graphics
-jyothish kumar sirigidi
 
Ad

Recently uploaded (20)

PPTX
CST413 KTU S7 CSE Machine Learning Introduction Parameter Estimation MLE MAP ...
resming1
 
PDF
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
PDF
13th International Conference of Security, Privacy and Trust Management (SPTM...
ijcisjournal
 
PDF
lesson4-occupationalsafetyandhealthohsstandards-240812020130-1a7246d0.pdf
arvingallosa3
 
PDF
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
PDF
Module - 5 Machine Learning-22ISE62.pdf
Dr. Shivashankar
 
PPTX
Comparison of Flexible and Rigid Pavements in Bangladesh
Arifur Rahman
 
PDF
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
 
PPTX
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
PPTX
Work at Height training for workers .pptx
cecos12
 
PPSX
OOPS Concepts in Python and Exception Handling
Dr. A. B. Shinde
 
PDF
01-introduction to the ProcessDesign.pdf
StiveBrack
 
PPTX
Unit_I Functional Units, Instruction Sets.pptx
logaprakash9
 
PDF
LLC CM NCP1399 SIMPLIS MODEL MANUAL.PDF
ssuser1be9ce
 
PDF
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
 
PPTX
ASBC application presentation template (ENG)_v3 (1).pptx
HassanMohammed730118
 
PPTX
CST413 KTU S7 CSE Machine Learning Neural Networks and Support Vector Machine...
resming1
 
PDF
Bayesian Learning - Naive Bayes Algorithm
Sharmila Chidaravalli
 
PPT
SF 9_Unit 1.ppt software engineering ppt
AmarrKannthh
 
PDF
Artificial Neural Network-Types,Perceptron,Problems
Sharmila Chidaravalli
 
CST413 KTU S7 CSE Machine Learning Introduction Parameter Estimation MLE MAP ...
resming1
 
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
13th International Conference of Security, Privacy and Trust Management (SPTM...
ijcisjournal
 
lesson4-occupationalsafetyandhealthohsstandards-240812020130-1a7246d0.pdf
arvingallosa3
 
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
Module - 5 Machine Learning-22ISE62.pdf
Dr. Shivashankar
 
Comparison of Flexible and Rigid Pavements in Bangladesh
Arifur Rahman
 
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
 
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
 
Work at Height training for workers .pptx
cecos12
 
OOPS Concepts in Python and Exception Handling
Dr. A. B. Shinde
 
01-introduction to the ProcessDesign.pdf
StiveBrack
 
Unit_I Functional Units, Instruction Sets.pptx
logaprakash9
 
LLC CM NCP1399 SIMPLIS MODEL MANUAL.PDF
ssuser1be9ce
 
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
 
ASBC application presentation template (ENG)_v3 (1).pptx
HassanMohammed730118
 
CST413 KTU S7 CSE Machine Learning Neural Networks and Support Vector Machine...
resming1
 
Bayesian Learning - Naive Bayes Algorithm
Sharmila Chidaravalli
 
SF 9_Unit 1.ppt software engineering ppt
AmarrKannthh
 
Artificial Neural Network-Types,Perceptron,Problems
Sharmila Chidaravalli
 

Pythonintroduction

  • 1. What Is Python? Created in 1990 by Guido van Rossum While at CWI, Amsterdam Now hosted by centre for national research initiatives, Reston, VA, USA Free, open source And with an amazing community Object oriented language “Everything is an object”
  • 2. Why Python?Designed to be easy to learn and master Clean, clear syntax Very few keywords Highly portable Runs almost anywhere - high end servers and workstations, down to windows CE Uses machine independent byte-codes Extensible Designed to be extensible using C/C++, allowing access to many external libraries
  • 3. Python: a modern hybrid A language for scripting and prototyping Balance between extensibility and powerful built-in data structures genealogy: Setl (NYU, J.Schwartz et al. 1969-1980) ABC (Amsterdam, Meertens et al. 1980-) Python (Van Rossum et all. 1996-) Very active open-source community
  • 4. Prototyping Emphasis on experimental programming: Interactive (like LISP, ML, etc). Translation to bytecode (like Java) Dynamic typing (like LISP, SETL, APL) Higher-order function (LISP, ML) Garbage-collected, no ptrs (LISP, SNOBOL4)
  • 5. Prototyping Emphasis on experimental programming: Uniform treatment of indexable structures (like SETL) Built-in associative structures (like SETL, SNOBOL4, Postscript) Light syntax, indentation is significant (from ABC)
  • 6. Most obvious and notorious features Clean syntax plus high-level data types Leads to fast coding Uses white-space to delimit blocks Humans generally do, so why not the language? Try it, you will end up liking it Variables do not need declaration Although not a type-less language
  • 7. A Digression on Block Structure There are three ways of dealing with IF structures Sequences of statements with explicit end (Algol-68, Ada, COBOL) Single statement (Algol-60, Pascal, C) Indentation (ABC, Python)
  • 8. Sequence of Statements IF condition THEN stm; stm; .. ELSIF condition THEN stm; .. ELSE stm; .. END IF; next statement;
  • 9. Single Statement IF condition THEN BEGIN stm; stm; END .. ELSE IF condition THEN BEGIN stm; .. END; ELSE BEGIN stm; .. END; next-statement;
  • 11. Pythonwin These examples use Pythonwin Only available on Windows GUI toolkit using Tkinter available for most platforms Standard console Python available on all platforms Has interactive mode for quick testing of code Includes debugger and Python editor
  • 12. Interactive Python Starting Python.exe, or any of the GUI environments present an interactive mode >>>prompt indicates start of a statement or expression If incomplete, ...prompt indicates second and subsequent lines All expression results printed back to interactive console
  • 13. Variables and Types(1 of 3) Variables need no declaration >>> a=1 >>> As a variable assignment is a statement, there is no printed result >>> a 1 Variable name alone is an expression, so the result is printed
  • 14. Variables and Types (2 of 3) Variables must be created before they can be used >>> b Traceback (innermost last): File "<interactive input>", line 1, in ? NameError: b >>> Python uses exceptions - more detail later
  • 15. Variables and Types (3 of 3) Objects always have a type >>> a = 1 >>> type(a) <type 'int'> >>> a = "Hello" >>> type(a) <type 'string'> >>> type(1.0) <type 'float'>
  • 16. Assignment versus Equality Testing Assignment performed with single = Equality testing done with double = (==) Sensible type promotions are defined Identity tested with is operator. >>> 1==1 1 >>> 1.0==1 1 >>> "1"==1 0
  • 17. Simple Data Types Strings May hold any data, including embedded NULLs Declared using either single, double, or triple quotes >>> s = "Hi there" >>> s 'Hi there' >>> s = "Embedded 'quote'" >>> s "Embedded 'quote'"
  • 18. Simple Data Types Triple quotes useful for multi-line strings >>> s = """ a long ... string with "quotes" or anything else""" >>> s ' a long012string with "quotes" or anything else' >>> len(s) 45
  • 19. Simple Data TypesInteger objects implemented using C longs Like C, integer division returns the floor >>> 5/2 2 Float types implemented using C doubles No point in having single precision since execution overhead is large anyway
  • 20. Simple Data Types Long Integers have unlimited size Limited only by available memory >>> long = 1L << 64 >>> long ** 5 21359870359209100823950217061695521146027045223 56652769947041607822219725780640550022962086936 576L
  • 21. High Level Data Types Lists hold a sequence of items May hold any object Declared using square brackets >>> l = []# An empty list >>> l.append(1) >>> l.append("Hi there") >>> len(l) 2
  • 22. High Level Data Types >>> l [1, 'Hi there'] >>> >>> l = ["Hi there", 1, 2] >>> l ['Hi there', 1, 2] >>> l.sort() >>> l [1, 2, 'Hi there']
  • 23. High Level Data Types Tuples are similar to lists Sequence of items Key difference is they are immutable Often used in place of simple structures Automatic unpacking >>> point = 2,3 >>> x, y = point >>> x 2
  • 24. High Level Data Types Tuples are particularly useful to return multiple values from a function >>> x, y = GetPoint() As Python has no concept of byref parameters, this technique is used widely
  • 25. High Level Data Types Dictionaries hold key-value pairs Often called maps or hashes. Implemented using hash- tables Keys may be any immutable object, values may be any object Declared using braces >>> d={} >>> d[0] = "Hi there" >>> d["foo"] = 1
  • 26. High Level Data Types Dictionaries (cont.) >>> len(d) 2 >>> d[0] 'Hi there' >>> d = {0 : "Hi there", 1 : "Hello"} >>> len(d) 2
  • 27. Blocks Blocks are delimited by indentation Colon used to start a block Tabs or spaces may be used Mixing tabs and spaces works, but is discouraged >>> if 1: ... print "True" ... True >>>
  • 28. Blocks Many hate this when they first see it Most Python programmers come to love it Humans use indentation when reading code to determine block structure Ever been bitten by the C code?: if (1) printf("True"); CallSomething();
  • 29. Looping The for statement loops over sequences >>> for ch in "Hello": ... print ch ... H e l l o >>>
  • 30. Looping Built-in function range() used to build sequences of integers >>> for i in range(3): ... print i ... 0 1 2 >>>
  • 31. Looping while statement for more traditional loops >>> i = 0 >>> while i < 2: ... print i ... i = i + 1 ... 0 1 >>>
  • 32. Functions Functions are defined with the def statement: >>> def foo(bar): ... return bar >>> This defines a trivial function named foo that takes a single parameter bar
  • 33. Functions A function definition simply places a function object in the namespace >>> foo <function foo at fac680> >>> And the function object can obviously be called: >>> foo(3) 3 >>>
  • 34. Classes Classes are defined using the class statement >>> class Foo: ... def __init__(self): ... self.member = 1 ... def GetMember(self): ... return self.member ... >>>
  • 35. Classes A few things are worth pointing out in the previous example: The constructor has a special name __init__, while a destructor (not shown) uses __del__ The self parameter is the instance (ie, the this in C+ +). In Python, the self parameter is explicit (c.f. C++, where it is implicit) The name self is not required - simply a convention
  • 36. Classes Like functions, a class statement simply adds a class object to the namespace >>> Foo <class __main__.Foo at 1000960> >>> Classes are instantiated using call syntax >>> f=Foo() >>> f.GetMember() 1
  • 37. Modules Most of Python’s power comes from modules Modules can be implemented either in Python, or in C/C++ import statement makes a module available >>> import string >>> string.join( ["Hi", "there"] ) 'Hi there' >>>
  • 38. Exceptions Python uses exceptions for errors try / except block can handle exceptions >>> try: ... 1/0 ... except ZeroDivisionError: ... print "Eeek" ... Eeek >>>
  • 39. Exceptions try / finally block can guarantee execute of code even in the face of exceptions >>> try: ... 1/0 ... finally: ... print "Doing this anyway" ... Doing this anyway Traceback (innermost last): File "<interactive input>", line 2, in ? ZeroDivisionError: integer division or modulo >>>
  • 40. Threads Number of ways to implement threads Highest level interface modelled after Java >>> class DemoThread(threading.Thread): ... def run(self): ... for i in range(3): ... time.sleep(3) ... print i ... >>> t = DemoThread() >>> t.start() >>> t.join() 0 1 <etc>
  • 41. Standard Library Python comes standard with a set of modules, known as the “standard library” Incredibly rich and diverse functionality available from the standard library All common internet protocols, sockets, CGI, OS services, GUI services (via Tcl/Tk), database, Berkeley style databases, calendar, Python parser, file globbing/searching, debugger, profiler, threading and synchronisation, persistency, etc
  • 42. External library Many modules are available externally covering almost every piece of functionality you could ever desire Imaging, numerical analysis, OS specific functionality, SQL databases, Fortran interfaces, XML, Corba, COM, Win32 API, etc Way too many to give the list any justice
  • 43. Python ProgramsPython programs and modules are written as text files with traditionally a .py extension Each Python module has its own discrete namespace Name space within a Python module is a global one.
  • 44. Python ProgramsPython modules and programs are differentiated only by the way they are called .py files executed directly are programs (often referred to as scripts) .py files referenced via the import statement are modules
  • 45. Python Programs Thus, the same .py file can be a program/script, or a module This feature is often used to provide regression tests for modules When module is executed as a program, the regression test is executed When module is imported, test functionality is not executed
  • 46. More Information on Python Can’t do Python justice in this short time frame But hopefully have given you a taste of the language Comes with extensive documentation, including tutorials and library reference Also a number of Python books available Visit www.python.org for more details Can find python tutorial and reference manual
  • 47. Scripting Languages What are they? Beats me  Apparently they are programming languages used for building the equivalent of shell scripts, i.e. doing the sort of things that shell scripts have traditionally been used for. But any language can be used this way So it is a matter of convenience
  • 48. Characteristics of Scripting Languages Typically interpretive But that’s an implementation detail Typically have high level data structures But rich libraries can substitute for this For example, look at GNAT.Spitbol Powerful flexible string handling Typically have rich libraries But any language can meet this requirement
  • 49. Is Python A Scripting Language? Usually thought of as one But this is mainly a marketing issue People think of scripting languages as being easy to learn, and useful. But Python is a well worked out coherent dynamic programming language And there is no reason not to use it for a wide range of applications.

Editor's Notes

  • #2: Newsgroup comp.lang.python, with a mailing list mirror available at www.python.org Available on almost every OS in any sort of common use - all Unixs and variants, Redhat linux includes RPMs, mainframes, CE devices, etc No separate compilation step - compiled version is cached when used.
  • #24: Many people new to Python have trouble seeing any significant different between tuples and lists. Lists are mutable, so can not be used as dictionary keys Tuples are immutable, so are suited to be used in the place of structures. Lists are generally used to hold variable length sequences - as tuples are immutable, they are generally used to hold sequences whose length is known in advance.
  • #30: Note
  • #34: The number printed in the function object representation is simply the address is memory of the object. Objects can define their own printed representation.