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.
Design Philosophy >>> 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 &quot;<interactive input>&quot;, 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 = &quot;Hello&quot; >>> 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 >>> &quot;1&quot;==1 0
Simple Data Types Strings May hold any data, including embedded NULLs Declared using either single, double, or triple quotes >>> s = &quot;Hi there&quot; >>> s 'Hi there' >>> s = &quot;Embedded 'quote'&quot; >>> s &quot;Embedded 'quote'&quot;
Simple Data Types Triple quotes useful for multi-line strings >>> s = &quot;&quot;&quot; a long ... string with &quot;quotes&quot; or anything else&quot;&quot;&quot; >>> s ' a long\012string with &quot;quotes&quot; 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 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576L
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(&quot;Hi there&quot;) >>> len(l) 2
High Level Data Types >>> l [1, 'Hi there'] >>> >>> l = [&quot;Hi there&quot;, 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] = &quot;Hi there&quot; >>> d[&quot;foo&quot;] = 1
High Level Data Types Dictionaries (cont.) >>> len(d) 2 >>> d[0] 'Hi there' >>> d = {0 : &quot;Hi there&quot;, 1 : &quot;Hello&quot;} >>> 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 &quot;True&quot; ...  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(&quot;True&quot;);   CallSomething();
Looping The  for  statement loops over sequences >>> for ch in &quot;Hello&quot;: ...  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( [&quot;Hi&quot;, &quot;there&quot;] ) 'Hi there' >>>
Exceptions Python uses exceptions for errors try  /  except  block can handle exceptions >>> try: ...  1/0 ... except ZeroDivisionError: ...  print &quot;Eeek&quot; ...  Eeek >>>
Exceptions try  /  finally  block can guarantee execute of code even in the face of exceptions >>> try: ...  1/0 ... finally: ...  print &quot;Doing this anyway&quot; ...  Doing this anyway Traceback (innermost last):  File &quot;<interactive input>&quot;, 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

What's hot (20)

PPTX
Introduction to-python
Aakashdata
 
PPT
Python ppt
Mohita Pandey
 
PDF
Python basic
Saifuddin Kaijar
 
PPTX
Basics of Object Oriented Programming in Python
Sujith Kumar
 
PPTX
python project ppt.pptx
AkshatGoswami3
 
PDF
Introduction to python programming
Srinivas Narasegouda
 
PDF
Strings in python
Prabhakaran V M
 
PPTX
Introduction to pandas
Piyush rai
 
PPTX
Benefits & features of python |Advantages & disadvantages of python
paradisetechsoftsolutions
 
PPTX
C language ppt
Ğäùråv Júñêjå
 
PPT
Javascript
Manav Prasad
 
PPTX
Python Functions
Mohammed Sikander
 
PPTX
Python PPT
Edureka!
 
PPTX
Web development with Python
Raman Balyan
 
PPTX
Presentation on python
william john
 
PPTX
Class, object and inheritance in python
Santosh Verma
 
PPTX
Java Data Types
Spotle.ai
 
PPTX
Python
Shivam Gupta
 
PPTX
data types in C programming
Harshita Yadav
 
PPTX
Beginning Python Programming
St. Petersburg College
 
Introduction to-python
Aakashdata
 
Python ppt
Mohita Pandey
 
Python basic
Saifuddin Kaijar
 
Basics of Object Oriented Programming in Python
Sujith Kumar
 
python project ppt.pptx
AkshatGoswami3
 
Introduction to python programming
Srinivas Narasegouda
 
Strings in python
Prabhakaran V M
 
Introduction to pandas
Piyush rai
 
Benefits & features of python |Advantages & disadvantages of python
paradisetechsoftsolutions
 
C language ppt
Ğäùråv Júñêjå
 
Javascript
Manav Prasad
 
Python Functions
Mohammed Sikander
 
Python PPT
Edureka!
 
Web development with Python
Raman Balyan
 
Presentation on python
william john
 
Class, object and inheritance in python
Santosh Verma
 
Java Data Types
Spotle.ai
 
Python
Shivam Gupta
 
data types in C programming
Harshita Yadav
 
Beginning Python Programming
St. Petersburg College
 

Similar to Python Presentation (20)

PPTX
Python PPT by Sushil Sir.pptx
sushil155005
 
PPT
Pythonintroduction
-jyothish kumar sirigidi
 
PPT
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
ODP
Programming Under Linux In Python
Marwan Osman
 
PPT
Cmpe202 01 Research
vladimirkorshak
 
PDF
Tutorial on-python-programming
Chetan Giridhar
 
PPTX
Python Demo.pptx
ParveenShaik21
 
PPTX
Python Demo.pptx
ParveenShaik21
 
PDF
First Steps in Python Programming
Dozie Agbo
 
ODP
Introduction to Python
tswr
 
PDF
Python Workshop. LUG Maniapl
Ankur Shrivastava
 
PPT
Python
Kumar Gaurav
 
PPT
python language programming presentation
lbisht2
 
PPTX
Introduction to Python Programming Language
merlinjohnsy
 
PDF
Python overview
Haroon Karim
 
ODP
An Intro to Python in 30 minutes
Sumit Raj
 
PPTX
Python basics
Manisha Gholve
 
PDF
Introduction to python
Mohammed Rafi
 
PPTX
Chapter 1-Introduction and syntax of python programming.pptx
atharvdeshpande20
 
PPT
Python - Module 1.ppt
jaba kumar
 
Python PPT by Sushil Sir.pptx
sushil155005
 
Pythonintroduction
-jyothish kumar sirigidi
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
Programming Under Linux In Python
Marwan Osman
 
Cmpe202 01 Research
vladimirkorshak
 
Tutorial on-python-programming
Chetan Giridhar
 
Python Demo.pptx
ParveenShaik21
 
Python Demo.pptx
ParveenShaik21
 
First Steps in Python Programming
Dozie Agbo
 
Introduction to Python
tswr
 
Python Workshop. LUG Maniapl
Ankur Shrivastava
 
Python
Kumar Gaurav
 
python language programming presentation
lbisht2
 
Introduction to Python Programming Language
merlinjohnsy
 
Python overview
Haroon Karim
 
An Intro to Python in 30 minutes
Sumit Raj
 
Python basics
Manisha Gholve
 
Introduction to python
Mohammed Rafi
 
Chapter 1-Introduction and syntax of python programming.pptx
atharvdeshpande20
 
Python - Module 1.ppt
jaba kumar
 
Ad

More from Narendra Sisodiya (9)

PDF
JavaScript Prototype and Module Pattern
Narendra Sisodiya
 
ODP
Project Eduvid
Narendra Sisodiya
 
ODP
Develop FOSS project using Google Code Hosting
Narendra Sisodiya
 
ODP
Introduction to FOSS world
Narendra Sisodiya
 
ODP
video tools
Narendra Sisodiya
 
PDF
wireless conf
Narendra Sisodiya
 
ODP
Openoffice
Narendra Sisodiya
 
ODP
Shellscripting
Narendra Sisodiya
 
JavaScript Prototype and Module Pattern
Narendra Sisodiya
 
Project Eduvid
Narendra Sisodiya
 
Develop FOSS project using Google Code Hosting
Narendra Sisodiya
 
Introduction to FOSS world
Narendra Sisodiya
 
video tools
Narendra Sisodiya
 
wireless conf
Narendra Sisodiya
 
Openoffice
Narendra Sisodiya
 
Shellscripting
Narendra Sisodiya
 
Ad

Recently uploaded (20)

PPTX
Introduction to Indian Writing in English
Trushali Dodiya
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PPTX
DAY 1_QUARTER1 ENGLISH 5 WEEK- PRESENTATION.pptx
BanyMacalintal
 
PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PDF
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PDF
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
PPTX
Difference between write and update in odoo 18
Celine George
 
PDF
Knee Extensor Mechanism Injuries - Orthopedic Radiologic Imaging
Sean M. Fox
 
PDF
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
PPTX
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
PPTX
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
PPTX
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
PDF
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
PPTX
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
PPTX
infertility, types,causes, impact, and management
Ritu480198
 
PPTX
HUMAN RESOURCE MANAGEMENT: RECRUITMENT, SELECTION, PLACEMENT, DEPLOYMENT, TRA...
PRADEEP ABOTHU
 
PDF
Is Assignment Help Legal in Australia_.pdf
thomas19williams83
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
Introduction to Indian Writing in English
Trushali Dodiya
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
DAY 1_QUARTER1 ENGLISH 5 WEEK- PRESENTATION.pptx
BanyMacalintal
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
Difference between write and update in odoo 18
Celine George
 
Knee Extensor Mechanism Injuries - Orthopedic Radiologic Imaging
Sean M. Fox
 
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
infertility, types,causes, impact, and management
Ritu480198
 
HUMAN RESOURCE MANAGEMENT: RECRUITMENT, SELECTION, PLACEMENT, DEPLOYMENT, TRA...
PRADEEP ABOTHU
 
Is Assignment Help Legal in Australia_.pdf
thomas19williams83
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 

Python Presentation

  • 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 &quot;hobby&quot; 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. Design Philosophy >>> 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
  • 9. PYTHON COMPARED TO OTHER LANGUAGES
  • 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 &quot;<interactive input>&quot;, 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 = &quot;Hello&quot; >>> 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 >>> &quot;1&quot;==1 0
  • 21. Simple Data Types Strings May hold any data, including embedded NULLs Declared using either single, double, or triple quotes >>> s = &quot;Hi there&quot; >>> s 'Hi there' >>> s = &quot;Embedded 'quote'&quot; >>> s &quot;Embedded 'quote'&quot;
  • 22. Simple Data Types Triple quotes useful for multi-line strings >>> s = &quot;&quot;&quot; a long ... string with &quot;quotes&quot; or anything else&quot;&quot;&quot; >>> s ' a long\012string with &quot;quotes&quot; 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 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576L
  • 25. 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(&quot;Hi there&quot;) >>> len(l) 2
  • 26. High Level Data Types >>> l [1, 'Hi there'] >>> >>> l = [&quot;Hi there&quot;, 1, 2] >>> l ['Hi there', 1, 2] >>> l.sort() >>> l [1, 2, 'Hi there']
  • 27. 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
  • 28. 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
  • 29. 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] = &quot;Hi there&quot; >>> d[&quot;foo&quot;] = 1
  • 30. High Level Data Types Dictionaries (cont.) >>> len(d) 2 >>> d[0] 'Hi there' >>> d = {0 : &quot;Hi there&quot;, 1 : &quot;Hello&quot;} >>> 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 &quot;True&quot; ... 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(&quot;True&quot;); CallSomething();
  • 33. Looping The for statement loops over sequences >>> for ch in &quot;Hello&quot;: ... 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: ... def __init__(self): ... self.member = 1 ... def GetMember(self): ... return self.member ... >>>
  • 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( [&quot;Hi&quot;, &quot;there&quot;] ) 'Hi there' >>>
  • 42. Exceptions Python uses exceptions for errors try / except block can handle exceptions >>> try: ... 1/0 ... except ZeroDivisionError: ... print &quot;Eeek&quot; ... Eeek >>>
  • 43. Exceptions try / finally block can guarantee execute of code even in the face of exceptions >>> try: ... 1/0 ... finally: ... print &quot;Doing this anyway&quot; ... Doing this anyway Traceback (innermost last): File &quot;<interactive input>&quot;, 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