SlideShare a Scribd company logo
1
Introduction to Python
 Python is a high-level programming language
 Open source and community driven
 “Batteries Included”
 a standard distribution includes many modules
 Dynamic typed
 Source can be compiled or run just-in-time
 Similar to perl, tcl, ruby
2
Why Python?
 Unlike AML and Avenue, there is a considerable base
of developers already using the language
 “Tried and true” language that has been in
development since 1991
 Can interface with the Component Object Model
(COM) used by Windows
 Can interface with Open Source GIS toolsets
3
Why not Visual Basic?
 Visual Basic is still the method of configuring and
customizing ArcMap
 If you have a button on the toolbar, it’s VB
 Python scripts can be placed in ArcToolbox
 Python can be run from the command line without
ArcMap or ArcCatalog being open
 Using just the GIS Engine, lower overhead
 Rapid prototyping, ease of authoring, etc.
4
Python Interfaces
 IDLE – a cross-platform Python development
environment
 PythonWin – a Windows only interface to Python
 Python Shell – running 'python' from the Command
Line opens this interactive shell
 For the exercises, we'll use IDLE, but you can try them
all and pick a favorite
5
IDLE – Development Environment
 IDLE helps you program
in Python by:
 color-coding your
program code
 debugging
 auto-indent
 interactive shell
6
Example Python
 Hello World
print “hello world”
 Prints hello world to
standard out
 Open IDLE and try it out
yourself
 Follow along using IDLE
7
More than just printing
 Python is an object oriented language
 Practically everything can be treated as an object
 “hello world” is a string
 Strings, as objects, have methods that return the result
of a function on the string
8
String Methods
 Assign a string to a
variable
 In this case “hw”
 hw.title()
 hw.upper()
 hw.isdigit()
 hw.islower()
9
String Methods
 The string held in your variable remains the same
 The method returns an altered string
 Changing the variable requires reassignment
 hw = hw.upper()
 hw now equals “HELLO WORLD”
10
Other Python Objects
 Lists (mutable sets of strings)
 var = [] # create list
 var = [‘one’, 2, ‘three’, ‘banana’]
 Tuples (immutable sets)
 var = (‘one’, 2, ‘three’, ‘banana’)
 Dictionaries (associative arrays or ‘hashes’)
 var = {} # create dictionary
 var = {‘lat’: 40.20547, ‘lon’: -74.76322}
 var[‘lat’] = 40.2054
 Each has its own set of methods
11
Lists
 Think of a list as a stack of cards, on which your
information is written
 The information stays in the order you place it in until
you modify that order
 Methods return a string or subset of the list or modify
the list to add or remove components
 Written as var[index], index refers to order within set
(think card number, starting at 0)
 You can step through lists as part of a loop
12
List Methods
 Adding to the List
 var[n] = object
 replaces n with object
 var.append(object)
 adds object to the end of the list
 Removing from the List
 var[n] = []
 empties contents of card, but preserves order
 var.remove(n)
 removes card at n
 var.pop(n)
 removes n and returns its value
13
Lists in ArcToolbox
You will create lists:
 Layers as inputs
 Attributes to match
 Arrays of objects
You will work with lists:
 List of field names
 List of selected features
14
Tuples
 Like a list, tuples are iterable arrays of objects
 Tuples are immutable –
once created, unchangeable
 To add or remove items, you must redeclare
 Example uses of tuples
 County Names
 Land Use Codes
 Ordered set of functions
15
Dictionaries
 Dictionaries are sets of key & value pairs
 Allows you to identify values by a descriptive name
instead of order in a list
 Keys are unordered unless explicitly sorted
 Keys are unique:
 var[‘item’] = “apple”
 var[‘item’] = “banana”
 print var[‘item’] prints just banana
16
Indentation and Blocks
 Python uses whitespace and indents to denote blocks
of code
 Lines of code that begin a block end in a colon:
 Lines within the code block are indented at the same
level
 To end a code block, remove the indentation
 You'll want blocks of code that run only when certain
conditions are met
17
Conditional Branching
 if and else
if variable == condition:
#do something based on v == c
else:
#do something based on v != c
 elif allows for additional branching
if condition:
elif another condition:
…
else: #none of the above
18
Looping with For
 For allows you to loop over a block of code a set
number of times
 For is great for manipulating lists:
a = ['cat', 'window', 'defenestrate']
for x in a:
print x, len(x)
Results:
cat 3
window 6
defenestrate 12
19
Looping with For
 We could use a for loop to perform geoprocessing tasks
on each layer in a list
 We could get a list of features in a feature class and
loop over each, checking attributes
 Anything in a sequence or list can be used in a For loop
 Just be sure not to modify the list while looping
20
Modules
 Modules are additional pieces of code that further
extend Python’s functionality
 A module typically has a specific function
 additional math functions, databases, network…
 Python comes with many useful modules
 arcgisscripting is the module we will use to load
ArcGIS toolbox functions into Python
21
Modules
 Modules are accessed using import
 import sys, os # imports two modules
 Modules can have subsets of functions
 os.path is a subset within os
 Modules are then addressed by
modulename.function()
 sys.argv # list of arguments
 filename = os.path.splitext("points.txt")
 filename[1] # equals ".txt"
22
Files
 Files are manipulated by creating a file object
 f = open("points.txt", "r")
 The file object then has new methods
 print f.readline() # prints line from file
 Files can be accessed to read or write
 f = open("output.txt", "w")
 f.write("Important Output!")
 Files are iterable objects, like lists
23
Error Capture
 Check for type assignment errors, items not in a list,
etc.
 Try & Except
try:
a block of code that might have an error
except:
code to execute if an error occurs in "try"
 Allows for graceful failure
– important in ArcGIS
24
Let us dig a little further
25
What Is a Program?
 Usually, one or more algorithms written in a
programming language that can be translated to run
on a real machine
 We sometimes call programs software
What Is a Programming Language?
 A programming language is somewhat like a
natural language, but with a very limited set of
statements and strict syntax rules.
 Has statements to implement sequential,
conditional and iterative processing - algorithms
 Examples: FORTRAN, COBOL, Lisp, Basic, Pascal,
C, C++, Java, C#, Python, …
Compiler
 A compiler is a program that converts a program
written in a programming language into a program in
the native language, called machine language, of the
machine that is to execute the program.
From Algorithms to Hardware
(with compiler)
Algorithm
Program
A real computer
Translate (by a human being)
Translate (by compiler program)
The Program Development Process
(Data Flow)
Editor
Compiler
A real computer
Algorithm
Program in programming language
Program in machine’s language
Input Output
The Program Development Process
(Control Flow)
Edit
Compile
Run
Syntax errors
Input Output
Runtime errors
Three kinds of errors
 Syntax error : Some statement in the program is not a
legal statement in the language.
 Runtime error : An error occurs while the program is
executing, causing the program to terminate (divide by
zero, etc.)
 Logic error : The program executes to completion, but
gives incorrect results.
Interpreter
 An alternative to a compiler is a program called an
interpreter. Rather than convert our program to the
language of the computer, the interpreter takes our
program one statement at a time and executes a
corresponding set of machine instructions.
Interpreter
Edit
Interpreter
Syntax or runtime errors
Input
Output
Python
 Python is a real-world, production language that is freely available
for most computers.
http:www.python.org
 If you want a copy of Python to use with this course, go to
http://code.google.com/p/mediacomp-jes/ .
We are using JES (Jython Environment for Students) which has a
lot of special multimedia functionality.
 Note: Our textbook covers a limited amount of Python. There are
many excellent online tutorials. For example, see
http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python/Contents
Python
 Python uses an interpreter. Not only can we write complete
programs, we can work with the interpreter in a statement by
statement mode enabling us to experiment quite easily.
 Python is especially good for our purposes in that it does not
have a lot of “overhead” before getting started.
 It is easy to jump in and experiment with Python in an
interactive fashion.
Language terminology
 Syntax: The formal rules for legal statements in the
language.
 Semantics: The meaning of the statements - what
happens when the statement is executed.
Three major control constructs
of programming
(Execution flow of instructions)
 Sequential: Simply do steps one after the other in
order they are listed.
 Conditional: Decide which statement to do next
based on some true/false test.
 Iterative: A set of statements is repeated over and over
until some condition is met.
Sequential Operations
“Atomic”
 Input
 Computation
 Output
The Big Plan
 We want to get some experience of programming simple
algorithms in a real programming language. This gives us an
understanding of how software is written and allows us to
test our algorithms to see if they work.
 We’ll first work with programs where the variables have
numbers as values.
 Later we’ll work with programs dealing with pictures and
sound.
 In lab we’ll work with some simple statements and small
programs.
The Basic Pattern
 Most of our programs will use the basic pattern of
 Get some user input
 Perform some algorithm on the input
 Provide results as output
Identifiers
 Identifiers are names of various program elements
in the code that uniquely identify the elements.
They are the names of things like variables or
functions to be performed. They're specified by the
programmer and should have names that indicate
their purpose.
 In Python, identifiers
 Are made of letters, digits and underscores
 Must begin with a letter or an underscore
 Examples: temperature, myPayrate, score2
Keywords
 Keywords are reserved words that have special
meaning in the Python language. Because they are
reserved, they can not be used as identifiers. Examples
of keywords are if, while, class, import.
Variables in Python
 A variable has
 A name – identifier
 A data type - int, float, str, etc.
 Storage space sufficient for the type.
Numeric Data Types
 int
This type is for whole numbers, positive or
negative. Examples: 23, -1756
 float
This type is for numbers with possible fraction
parts. Examples: 23.0, -14.561
Integer operators
The operations for integers are:
+ for addition
- for subtraction
* for multiplication
/ for integer division: The result of 14/5 is 2
% for remainder: The result of 14 % 5 is 4
 *, /, % take precedence over +, -
x + y * z will do y*z first
 Use parentheses to dictate order you want.
(x+y) * z will do x+y first.
Integer Expressions
 Integer expressions are formed using
 Integer Constants
 Integer Variables
 Integer Operators
 Parentheses
Python Assignment Statements
 In Python, = is called the assignment operator and
an assignment statement has the form
<variable> = <expression>
 Here
 <variable> would be replaced by an actual variable
 <expression> would be replaced by an expression
 Python: age = 19
Python Assignment Statement
 Syntax: <variable> = <expression>
 Note that variable is on left
 Semantics:
Compute value of expression
Store this as new value of the variable
 Example: Pay = PayRate * Hours
Payrate
10
Hours
40
Pay
400
Assignment Example
Before
X
3
Z
12
Y
5
After
X
3
Z
11
Y
5
Execute
Z = X * 3 + Z / Y
Python Session
Python Session
What about floats?
 When computing with floats, / will indicate regular
division with fractional results.
 Constants will have a decimal point.
 14.0/5.0 will give 2.8 while 14/5 gives 2.
Comments
 Often we want to put some documentation in our
program. These are comments for explanation, but not
executed by the computer.
 If we have # anywhere on a line, everything following
this on the line is a comment – ignored
Numerical Input
 To get numerical input from the user, we use an
assignment statement of the form
<variable> = input(<prompt>)
 Here
 <prompt> would be replaced by a prompt for the user
inside quotation marks
 If there is no prompt, the parentheses are still needed
 Semantics
 The prompt will be displayed
 User enters number
 Value entered is stored as the value of the variable
Print Statement
 For output we use statements of the form
print <expression>
 Semantics
 Value of expression is computed
 This value is displayed
 Several expressions can be printed – separate them by
commas
Example - Fahrenheit to Centigrade
 We want to convert a Fahrenheit temperature to
Centigrade.
 The formula is C = (F -32) x 5/9
 We use type float for the temperatures.
Python Session

More Related Content

Similar to presentation_intro_to_python

CSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
CSC2308 - PRINCIPLE OF PROGRAMMING II.pdfCSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
CSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
AbdulmalikAhmadLawan2
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experienced
zynofustechnology
 
Python for katana
Python for katanaPython for katana
Python for katana
kedar nath
 
First Steps in Python Programming
First Steps in Python ProgrammingFirst Steps in Python Programming
First Steps in Python Programming
Dozie Agbo
 
Python Programming Basics for begginners
Python Programming Basics for begginnersPython Programming Basics for begginners
Python Programming Basics for begginners
Abishek Purushothaman
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
Mohammed Rafi
 
Summer Training Project On Python Programming
Summer Training Project On Python ProgrammingSummer Training Project On Python Programming
Summer Training Project On Python Programming
KAUSHAL KUMAR JHA
 
Python Course In Chandigarh
Python Course In ChandigarhPython Course In Chandigarh
Python Course In Chandigarh
Excellence Academy
 
Python-01| Fundamentals
Python-01| FundamentalsPython-01| Fundamentals
Python-01| Fundamentals
Mohd Sajjad
 
PYTHON PPT.pptx
PYTHON PPT.pptxPYTHON PPT.pptx
PYTHON PPT.pptx
AbhishekMourya36
 
Introduction to Python for Data Science and Machine Learning
Introduction to Python for Data Science and Machine Learning Introduction to Python for Data Science and Machine Learning
Introduction to Python for Data Science and Machine Learning
ParrotAI
 
Python and You Series
Python and You SeriesPython and You Series
Python and You Series
Karthik Prakash
 
python and perl
python and perlpython and perl
python and perl
Mara Angelica Refraccion
 
MODULE 1.pptx
MODULE 1.pptxMODULE 1.pptx
MODULE 1.pptx
KPDDRAVIDIAN
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
ZENUS INFOTECH INDIA PVT. LTD.
 
PYTHON 101.pptx
PYTHON 101.pptxPYTHON 101.pptx
PYTHON 101.pptx
MarvinHoxha
 
Python training
Python trainingPython training
Python training
Kunalchauhan76
 
Bcsl 031 solve assignment
Bcsl 031 solve assignmentBcsl 031 solve assignment
Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3
Chariza Pladin
 

Similar to presentation_intro_to_python (20)

CSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
CSC2308 - PRINCIPLE OF PROGRAMMING II.pdfCSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
CSC2308 - PRINCIPLE OF PROGRAMMING II.pdf
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experienced
 
Python for katana
Python for katanaPython for katana
Python for katana
 
First Steps in Python Programming
First Steps in Python ProgrammingFirst Steps in Python Programming
First Steps in Python Programming
 
Python Programming Basics for begginners
Python Programming Basics for begginnersPython Programming Basics for begginners
Python Programming Basics for begginners
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Summer Training Project On Python Programming
Summer Training Project On Python ProgrammingSummer Training Project On Python Programming
Summer Training Project On Python Programming
 
Python Course In Chandigarh
Python Course In ChandigarhPython Course In Chandigarh
Python Course In Chandigarh
 
Python-01| Fundamentals
Python-01| FundamentalsPython-01| Fundamentals
Python-01| Fundamentals
 
INTERNSHIP REPORT.docx
 INTERNSHIP REPORT.docx INTERNSHIP REPORT.docx
INTERNSHIP REPORT.docx
 
PYTHON PPT.pptx
PYTHON PPT.pptxPYTHON PPT.pptx
PYTHON PPT.pptx
 
Introduction to Python for Data Science and Machine Learning
Introduction to Python for Data Science and Machine Learning Introduction to Python for Data Science and Machine Learning
Introduction to Python for Data Science and Machine Learning
 
Python and You Series
Python and You SeriesPython and You Series
Python and You Series
 
python and perl
python and perlpython and perl
python and perl
 
MODULE 1.pptx
MODULE 1.pptxMODULE 1.pptx
MODULE 1.pptx
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
PYTHON 101.pptx
PYTHON 101.pptxPYTHON 101.pptx
PYTHON 101.pptx
 
Python training
Python trainingPython training
Python training
 
Bcsl 031 solve assignment
Bcsl 031 solve assignmentBcsl 031 solve assignment
Bcsl 031 solve assignment
 
Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3Zero to Hero - Introduction to Python3
Zero to Hero - Introduction to Python3
 

Recently uploaded

Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
Bisnar Chase Personal Injury Attorneys
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 

Recently uploaded (20)

Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 

presentation_intro_to_python

  • 1. 1
  • 2. Introduction to Python  Python is a high-level programming language  Open source and community driven  “Batteries Included”  a standard distribution includes many modules  Dynamic typed  Source can be compiled or run just-in-time  Similar to perl, tcl, ruby 2
  • 3. Why Python?  Unlike AML and Avenue, there is a considerable base of developers already using the language  “Tried and true” language that has been in development since 1991  Can interface with the Component Object Model (COM) used by Windows  Can interface with Open Source GIS toolsets 3
  • 4. Why not Visual Basic?  Visual Basic is still the method of configuring and customizing ArcMap  If you have a button on the toolbar, it’s VB  Python scripts can be placed in ArcToolbox  Python can be run from the command line without ArcMap or ArcCatalog being open  Using just the GIS Engine, lower overhead  Rapid prototyping, ease of authoring, etc. 4
  • 5. Python Interfaces  IDLE – a cross-platform Python development environment  PythonWin – a Windows only interface to Python  Python Shell – running 'python' from the Command Line opens this interactive shell  For the exercises, we'll use IDLE, but you can try them all and pick a favorite 5
  • 6. IDLE – Development Environment  IDLE helps you program in Python by:  color-coding your program code  debugging  auto-indent  interactive shell 6
  • 7. Example Python  Hello World print “hello world”  Prints hello world to standard out  Open IDLE and try it out yourself  Follow along using IDLE 7
  • 8. More than just printing  Python is an object oriented language  Practically everything can be treated as an object  “hello world” is a string  Strings, as objects, have methods that return the result of a function on the string 8
  • 9. String Methods  Assign a string to a variable  In this case “hw”  hw.title()  hw.upper()  hw.isdigit()  hw.islower() 9
  • 10. String Methods  The string held in your variable remains the same  The method returns an altered string  Changing the variable requires reassignment  hw = hw.upper()  hw now equals “HELLO WORLD” 10
  • 11. Other Python Objects  Lists (mutable sets of strings)  var = [] # create list  var = [‘one’, 2, ‘three’, ‘banana’]  Tuples (immutable sets)  var = (‘one’, 2, ‘three’, ‘banana’)  Dictionaries (associative arrays or ‘hashes’)  var = {} # create dictionary  var = {‘lat’: 40.20547, ‘lon’: -74.76322}  var[‘lat’] = 40.2054  Each has its own set of methods 11
  • 12. Lists  Think of a list as a stack of cards, on which your information is written  The information stays in the order you place it in until you modify that order  Methods return a string or subset of the list or modify the list to add or remove components  Written as var[index], index refers to order within set (think card number, starting at 0)  You can step through lists as part of a loop 12
  • 13. List Methods  Adding to the List  var[n] = object  replaces n with object  var.append(object)  adds object to the end of the list  Removing from the List  var[n] = []  empties contents of card, but preserves order  var.remove(n)  removes card at n  var.pop(n)  removes n and returns its value 13
  • 14. Lists in ArcToolbox You will create lists:  Layers as inputs  Attributes to match  Arrays of objects You will work with lists:  List of field names  List of selected features 14
  • 15. Tuples  Like a list, tuples are iterable arrays of objects  Tuples are immutable – once created, unchangeable  To add or remove items, you must redeclare  Example uses of tuples  County Names  Land Use Codes  Ordered set of functions 15
  • 16. Dictionaries  Dictionaries are sets of key & value pairs  Allows you to identify values by a descriptive name instead of order in a list  Keys are unordered unless explicitly sorted  Keys are unique:  var[‘item’] = “apple”  var[‘item’] = “banana”  print var[‘item’] prints just banana 16
  • 17. Indentation and Blocks  Python uses whitespace and indents to denote blocks of code  Lines of code that begin a block end in a colon:  Lines within the code block are indented at the same level  To end a code block, remove the indentation  You'll want blocks of code that run only when certain conditions are met 17
  • 18. Conditional Branching  if and else if variable == condition: #do something based on v == c else: #do something based on v != c  elif allows for additional branching if condition: elif another condition: … else: #none of the above 18
  • 19. Looping with For  For allows you to loop over a block of code a set number of times  For is great for manipulating lists: a = ['cat', 'window', 'defenestrate'] for x in a: print x, len(x) Results: cat 3 window 6 defenestrate 12 19
  • 20. Looping with For  We could use a for loop to perform geoprocessing tasks on each layer in a list  We could get a list of features in a feature class and loop over each, checking attributes  Anything in a sequence or list can be used in a For loop  Just be sure not to modify the list while looping 20
  • 21. Modules  Modules are additional pieces of code that further extend Python’s functionality  A module typically has a specific function  additional math functions, databases, network…  Python comes with many useful modules  arcgisscripting is the module we will use to load ArcGIS toolbox functions into Python 21
  • 22. Modules  Modules are accessed using import  import sys, os # imports two modules  Modules can have subsets of functions  os.path is a subset within os  Modules are then addressed by modulename.function()  sys.argv # list of arguments  filename = os.path.splitext("points.txt")  filename[1] # equals ".txt" 22
  • 23. Files  Files are manipulated by creating a file object  f = open("points.txt", "r")  The file object then has new methods  print f.readline() # prints line from file  Files can be accessed to read or write  f = open("output.txt", "w")  f.write("Important Output!")  Files are iterable objects, like lists 23
  • 24. Error Capture  Check for type assignment errors, items not in a list, etc.  Try & Except try: a block of code that might have an error except: code to execute if an error occurs in "try"  Allows for graceful failure – important in ArcGIS 24
  • 25. Let us dig a little further 25
  • 26. What Is a Program?  Usually, one or more algorithms written in a programming language that can be translated to run on a real machine  We sometimes call programs software
  • 27. What Is a Programming Language?  A programming language is somewhat like a natural language, but with a very limited set of statements and strict syntax rules.  Has statements to implement sequential, conditional and iterative processing - algorithms  Examples: FORTRAN, COBOL, Lisp, Basic, Pascal, C, C++, Java, C#, Python, …
  • 28. Compiler  A compiler is a program that converts a program written in a programming language into a program in the native language, called machine language, of the machine that is to execute the program.
  • 29. From Algorithms to Hardware (with compiler) Algorithm Program A real computer Translate (by a human being) Translate (by compiler program)
  • 30. The Program Development Process (Data Flow) Editor Compiler A real computer Algorithm Program in programming language Program in machine’s language Input Output
  • 31. The Program Development Process (Control Flow) Edit Compile Run Syntax errors Input Output Runtime errors
  • 32. Three kinds of errors  Syntax error : Some statement in the program is not a legal statement in the language.  Runtime error : An error occurs while the program is executing, causing the program to terminate (divide by zero, etc.)  Logic error : The program executes to completion, but gives incorrect results.
  • 33. Interpreter  An alternative to a compiler is a program called an interpreter. Rather than convert our program to the language of the computer, the interpreter takes our program one statement at a time and executes a corresponding set of machine instructions.
  • 35. Python  Python is a real-world, production language that is freely available for most computers. http:www.python.org  If you want a copy of Python to use with this course, go to http://code.google.com/p/mediacomp-jes/ . We are using JES (Jython Environment for Students) which has a lot of special multimedia functionality.  Note: Our textbook covers a limited amount of Python. There are many excellent online tutorials. For example, see http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python/Contents
  • 36. Python  Python uses an interpreter. Not only can we write complete programs, we can work with the interpreter in a statement by statement mode enabling us to experiment quite easily.  Python is especially good for our purposes in that it does not have a lot of “overhead” before getting started.  It is easy to jump in and experiment with Python in an interactive fashion.
  • 37. Language terminology  Syntax: The formal rules for legal statements in the language.  Semantics: The meaning of the statements - what happens when the statement is executed.
  • 38. Three major control constructs of programming (Execution flow of instructions)  Sequential: Simply do steps one after the other in order they are listed.  Conditional: Decide which statement to do next based on some true/false test.  Iterative: A set of statements is repeated over and over until some condition is met.
  • 40. The Big Plan  We want to get some experience of programming simple algorithms in a real programming language. This gives us an understanding of how software is written and allows us to test our algorithms to see if they work.  We’ll first work with programs where the variables have numbers as values.  Later we’ll work with programs dealing with pictures and sound.  In lab we’ll work with some simple statements and small programs.
  • 41. The Basic Pattern  Most of our programs will use the basic pattern of  Get some user input  Perform some algorithm on the input  Provide results as output
  • 42. Identifiers  Identifiers are names of various program elements in the code that uniquely identify the elements. They are the names of things like variables or functions to be performed. They're specified by the programmer and should have names that indicate their purpose.  In Python, identifiers  Are made of letters, digits and underscores  Must begin with a letter or an underscore  Examples: temperature, myPayrate, score2
  • 43. Keywords  Keywords are reserved words that have special meaning in the Python language. Because they are reserved, they can not be used as identifiers. Examples of keywords are if, while, class, import.
  • 44. Variables in Python  A variable has  A name – identifier  A data type - int, float, str, etc.  Storage space sufficient for the type.
  • 45. Numeric Data Types  int This type is for whole numbers, positive or negative. Examples: 23, -1756  float This type is for numbers with possible fraction parts. Examples: 23.0, -14.561
  • 46. Integer operators The operations for integers are: + for addition - for subtraction * for multiplication / for integer division: The result of 14/5 is 2 % for remainder: The result of 14 % 5 is 4  *, /, % take precedence over +, - x + y * z will do y*z first  Use parentheses to dictate order you want. (x+y) * z will do x+y first.
  • 47. Integer Expressions  Integer expressions are formed using  Integer Constants  Integer Variables  Integer Operators  Parentheses
  • 48. Python Assignment Statements  In Python, = is called the assignment operator and an assignment statement has the form <variable> = <expression>  Here  <variable> would be replaced by an actual variable  <expression> would be replaced by an expression  Python: age = 19
  • 49. Python Assignment Statement  Syntax: <variable> = <expression>  Note that variable is on left  Semantics: Compute value of expression Store this as new value of the variable  Example: Pay = PayRate * Hours Payrate 10 Hours 40 Pay 400
  • 53. What about floats?  When computing with floats, / will indicate regular division with fractional results.  Constants will have a decimal point.  14.0/5.0 will give 2.8 while 14/5 gives 2.
  • 54. Comments  Often we want to put some documentation in our program. These are comments for explanation, but not executed by the computer.  If we have # anywhere on a line, everything following this on the line is a comment – ignored
  • 55. Numerical Input  To get numerical input from the user, we use an assignment statement of the form <variable> = input(<prompt>)  Here  <prompt> would be replaced by a prompt for the user inside quotation marks  If there is no prompt, the parentheses are still needed  Semantics  The prompt will be displayed  User enters number  Value entered is stored as the value of the variable
  • 56. Print Statement  For output we use statements of the form print <expression>  Semantics  Value of expression is computed  This value is displayed  Several expressions can be printed – separate them by commas
  • 57. Example - Fahrenheit to Centigrade  We want to convert a Fahrenheit temperature to Centigrade.  The formula is C = (F -32) x 5/9  We use type float for the temperatures.