SlideShare a Scribd company logo
Python: An Overview
What Is Python?
 Created in 1990 by Guido van Rossum


About the origin of Python, Van Rossum wrote in 1996:
Over six years ago, in December 1989, I was looking for a
"hobby" programming project that would keep me occupied
during the week around Christmas. My office … would be
closed, but I had a home computer, and not much else on my
hands. I decided to write an interpreter for the new scripting
language I had been thinking about lately: a descendant of
ABC that would appeal to Unix/C hackers. I chose Python as a
working title for the project, being in a slightly irreverent
mood (and a big fan of Monty Python's Flying Circus).

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.
DesignPhilosophy
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't 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 you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
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
Most obvious and notorious
features
 Clean syntax plus high-level data types
 Leads to fast coding (First language in many
universities abroad!)
 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
Productivity!
 Reduced development time
 code is 2-10x shorter than C, C++, Java
 Improved program maintenance
 code is extremely readable
 Less training
 language is very easy to learn
What is it used for?
 rapid prototyping
 web scripting
 throw-away, ad hoc programming
 steering scientific applications
 extension language
 XML processing
 database applications
 GUI applications
 A Glue Language
PYTHON COMPARED TO
OTHER LANGUAGES
Python vs. Perl
 Easier to learn
 important for occasional users
 More readable code
 improved code maintenance
 Fewer “magical” side effects
 More “safety” guarantees
 Better Java integration
 Less Unix bias
Python vs. Tcl
 Real datatypes, object-orientation
 More differentiated syntax
 Much faster (even than Tcl 8.x)
 Less need for C extensions
 C extensions don’t redefine syntax
 hence fewer extension conflicts
 Better Java integration
 Python uses Tk as de-facto GUI std
Python vs. Java
 Code 5-10 times more concise
 Dynamic typing
 Much quicker development
 no compilation phase
 less typing
 Yes, it runs slower
 but development is so much faster!
 Use Python with Java: Jython!
Python Basics
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
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
s
= "Hi there"
'Hi there'
>>> s = "Embedded
>>> s
"Embedded 'quote'"
'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
HighLevel 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']
HighLevel 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
HighLevel 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
HighLevel 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
HighLevel 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
 Maxing 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:
self.member = 1
def GetMember(self):
return self.member
... def init (self):
...
...
...
...
>>>
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"
...
File "<interactive
Doing this anyway
Traceback (innermost last):
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,
comedilib, serial, parallel, opengl, opencv,
wxpython, gtk, qt, tkinter etc
 Way too many to give the list any justice
More Information on Python
 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

More Related Content

PPTX
Types of Images & File Types
Chris Chapman
 
PPT
lecture2 computer graphics graphics hardware(Computer graphics tutorials)
Daroko blog(www.professionalbloggertricks.com)
 
PPT
Ten stages of Genocide PowerPoint
Tamar Jakeli
 
PPTX
Python Tutorial for Beginner
rajkamaltibacademy
 
PDF
ITFT-Video display devices
Shifali Sharma
 
PDF
VVC tutorial at ICME 2020 together with Benjamin Bross
Mathias Wien
 
PDF
windows-active-directory-accounts-not-requiring-a-password
Sanjay Pather
 
PPTX
International Humanitarian Law Lecture 7 - A Brief History of IHL
Nilendra Kumar
 
Types of Images & File Types
Chris Chapman
 
lecture2 computer graphics graphics hardware(Computer graphics tutorials)
Daroko blog(www.professionalbloggertricks.com)
 
Ten stages of Genocide PowerPoint
Tamar Jakeli
 
Python Tutorial for Beginner
rajkamaltibacademy
 
ITFT-Video display devices
Shifali Sharma
 
VVC tutorial at ICME 2020 together with Benjamin Bross
Mathias Wien
 
windows-active-directory-accounts-not-requiring-a-password
Sanjay Pather
 
International Humanitarian Law Lecture 7 - A Brief History of IHL
Nilendra Kumar
 

What's hot (8)

PPT
Clipping
Mohd Arif
 
PPT
DG2 Neo-Neo Debate
Anna Dekaltchouk
 
PPT
Applications of cg
Ankit Garg
 
PPTX
Numerical unit 1
Ankit Garg
 
PPTX
Computer Graphics
Sneha Chopra
 
PPTX
Introduction to Python Programming
Akhil Kaushik
 
PPT
Genocide powerpoint
jools_e
 
PDF
Adobe Photoshop Basics - Session 1
xneptune
 
Clipping
Mohd Arif
 
DG2 Neo-Neo Debate
Anna Dekaltchouk
 
Applications of cg
Ankit Garg
 
Numerical unit 1
Ankit Garg
 
Computer Graphics
Sneha Chopra
 
Introduction to Python Programming
Akhil Kaushik
 
Genocide powerpoint
jools_e
 
Adobe Photoshop Basics - Session 1
xneptune
 
Ad

Similar to Python PPT by Sushil Sir.pptx (20)

PPT
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
PPT
Pythonintroduction
-jyothish kumar sirigidi
 
PPT
Python for Engineers and Architects Stud
RaviRamachandraR
 
PDF
Sessisgytcfgggggggggggggggggggggggggggggggg
pawankamal3
 
PPT
Learn python
Rokibul Islam
 
PPTX
Python_Haegl.powerpoint presentation. tx
vishwanathgoudapatil1
 
PPT
Python1
AllsoftSolutions
 
PPT
Python
Kumar Gaurav
 
PDF
Python and Pytorch tutorial and walkthrough
gabriellekuruvilla
 
PPT
python programing 101 presentation ... Let's start
Mohsen Hefni
 
PPT
uso del lenguaje de programación python en métodos numéricos..ppt
angelca13
 
PPT
into python.pptinto python.pptinto python.ppt
yatakonakiran2
 
PPT
python1.pptpppppppppppppppppppppppppppppppp
divijareddy0502
 
PPT
Python doc and Learn Python in three hours
Anil Yadav
 
PPT
pythegggggeeeeeeeeeeeeeeeeeeeeeeeon1.ppt
HamidKhemili
 
PPT
uso del lenguaje de programación python en métodos numéricos..ppt
angelca13
 
PPT
Learn Python in three hours - Python is an experiment
Anil Yadav
 
PPT
python_presentation_for students_high_school
RakeshKumar483087
 
PPTX
Python knowledge ,......................
sabith777a
 
PPT
python introduction to user friendly.ppt
Vinod Deenathayalan
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
Pythonintroduction
-jyothish kumar sirigidi
 
Python for Engineers and Architects Stud
RaviRamachandraR
 
Sessisgytcfgggggggggggggggggggggggggggggggg
pawankamal3
 
Learn python
Rokibul Islam
 
Python_Haegl.powerpoint presentation. tx
vishwanathgoudapatil1
 
Python
Kumar Gaurav
 
Python and Pytorch tutorial and walkthrough
gabriellekuruvilla
 
python programing 101 presentation ... Let's start
Mohsen Hefni
 
uso del lenguaje de programación python en métodos numéricos..ppt
angelca13
 
into python.pptinto python.pptinto python.ppt
yatakonakiran2
 
python1.pptpppppppppppppppppppppppppppppppp
divijareddy0502
 
Python doc and Learn Python in three hours
Anil Yadav
 
pythegggggeeeeeeeeeeeeeeeeeeeeeeeon1.ppt
HamidKhemili
 
uso del lenguaje de programación python en métodos numéricos..ppt
angelca13
 
Learn Python in three hours - Python is an experiment
Anil Yadav
 
python_presentation_for students_high_school
RakeshKumar483087
 
Python knowledge ,......................
sabith777a
 
python introduction to user friendly.ppt
Vinod Deenathayalan
 
Ad

Recently uploaded (20)

DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
PPTX
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
PDF
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PPTX
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
PPTX
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
PPTX
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
PPTX
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
DOCX
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
PPTX
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
DOCX
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
PDF
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
PPTX
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
PDF
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PDF
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
PDF
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PPTX
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
The Minister of Tourism, Culture and Creative Arts, Abla Dzifa Gomashie has e...
nservice241
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 

Python PPT by Sushil Sir.pptx

  • 2. What Is Python?  Created in 1990 by Guido van Rossum   About the origin of Python, Van Rossum wrote in 1996: Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office … would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus). 
  • 3. 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.
  • 4. DesignPhilosophy >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't 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 you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 5. 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
  • 6. Most obvious and notorious features  Clean syntax plus high-level data types  Leads to fast coding (First language in many universities abroad!)  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. Productivity!  Reduced development time  code is 2-10x shorter than C, C++, Java  Improved program maintenance  code is extremely readable  Less training  language is very easy to learn
  • 8. What is it used for?  rapid prototyping  web scripting  throw-away, ad hoc programming  steering scientific applications  extension language  XML processing  database applications  GUI applications  A Glue Language
  • 10. Python vs. Perl  Easier to learn  important for occasional users  More readable code  improved code maintenance  Fewer “magical” side effects  More “safety” guarantees  Better Java integration  Less Unix bias
  • 11. Python vs. Tcl  Real datatypes, object-orientation  More differentiated syntax  Much faster (even than Tcl 8.x)  Less need for C extensions  C extensions don’t redefine syntax  hence fewer extension conflicts  Better Java integration  Python uses Tk as de-facto GUI std
  • 12. Python vs. Java  Code 5-10 times more concise  Dynamic typing  Much quicker development  no compilation phase  less typing  Yes, it runs slower  but development is so much faster!  Use Python with Java: Jython!
  • 14. 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.
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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'>
  • 20. 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
  • 21. Simple Data Types  Strings  May hold any data, including embedded NULLs  Declared using either single, double, or triple quotes  >>> >>> s s = "Hi there" 'Hi there' >>> s = "Embedded >>> s "Embedded 'quote'" 'quote'"
  • 22. 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
  • 23. 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
  • 24. Simple Data Types  Long Integers have unlimited size  Limited only by available memory  >>> long = 1L << 64 >>> long ** 5 21359870359209100823950217061695521146027045223 56652769947041607822219725780640550022962086936 576L
  • 25. HighLevel 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
  • 26. 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']
  • 27. HighLevel 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
  • 28. HighLevel 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
  • 29. HighLevel 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
  • 30. HighLevel Data Types  Dictionaries (cont.)  >>> len(d) 2 >>> d[0] 'Hi there' >>> d = {0 : "Hi there", 1 : "Hello"} >>> len(d) 2
  • 31. Blocks  Blocks are delimited by indentation  Colon used to start a block  Tabs or spaces may be used  Maxing tabs and spaces works, but is discouraged  >>> if 1: ... print "True" ... True >>>
  • 32. 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();
  • 33. Looping  The for statement loops over sequences  >>> for ch in "Hello": ... print ch ... H e l l o >>>
  • 34. Looping  Built-in function range() used to build sequences of integers  >>> for i in range(3): print i ... ... 0 1 2 >>>
  • 35. Looping  while statement for more traditional loops  >>> i = 0 >>> while i < 2: ... ... print i = i i + 1 ... 0 1 >>>
  • 36. 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
  • 37. 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 >>>
  • 38. Classes  Classes are defined using the class statement  >>> class Foo: self.member = 1 def GetMember(self): return self.member ... def init (self): ... ... ... ... >>>
  • 39. 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
  • 40. 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
  • 41. 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' >>>
  • 42. Exceptions  Python uses exceptions for errors  try / except block can handle exceptions  >>> try: ... 1/0 ... except ZeroDivisionError: ... print "Eeek" ... Eeek >>>
  • 43. Exceptions  try / finally block can guarantee execute of code even in the face of exceptions  >>> try: ... 1/0 ... finally: ... print "Doing this anyway" ... File "<interactive Doing this anyway Traceback (innermost last): input>", line 2, in ? ZeroDivisionError: integer division or modulo >>>
  • 44. 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>
  • 45. 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
  • 46. 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, comedilib, serial, parallel, opengl, opencv, wxpython, gtk, qt, tkinter etc  Way too many to give the list any justice
  • 47. More Information on Python  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