python progName

tunisianbromidrosisInternet and Web Development

Feb 5, 2013 (3 years and 10 months ago)

84 views

Scripting with Python

What is a scripting language?

What is Python?

Scripting Languages


Originally, a script was a file containing
a sequence of commands that needed
to be executed


Control structures were added to make
it possible to do more with scripts

Characteristics of Scripting
Languages


Generally interpreted


Dynamic typing
-

no declarations


Make text processing easy


Often provide pattern matching for
strings


Provide file and directory manipulation


Make it easy to do things quickly

Basic Scripting Languages


Unix and Linux come with shell
programs which are programmable


sh


bash


ksh


csh


DOS had BAT files

Scripting in Other
Environments


Even with a GUI operating system, it is still
useful to be able to automate repetitive tasks


Windows still has bat files


Mac OS has AppleScript


Some applications have a scripting language
built into them


Microsoft applications have Visual Basic for
Applications (VBA)



Hypercard (Apple) had HyperTalk


Other Scripting Languages


Other scripting languages were developed to
provide increased capability


sed
--

adapted from the UNIX ed editor in 1977


AWK
--

created by Ajo, Wienberger and Kernighan
in 1977


Tcl
--

an extensible scripting language written by
John Ousterhout in 1987


Perl
--

created by Larry Wall in 1986


Python
--

created in 1989 by Guido van Rossum


Ruby
--

created in 1993 by
Yukihiro Matsumoto


Scripting and the Web


More recently, a number of scripting
languages have been developed for use
with web browsers


PHP


JavaScript


ASP (part of Microsoft .NET framework)



Scripting on onyx


the shell languages


sed


awk


perl


python


ruby


tcl



javascript


php

Python


An object
-
oriented scripting language


Portable (written in ANSI C)



Powerful
-

see next slide


Mixable
-

can be used in conjunction
with other languages


Easy to use


Easy to learn

The Power of Python


dynamic typing


built
-
in objects


built
-
in tools


built
-
in libraries


garbage collection


modular

Running Python code


Run the python interpreter and type the
commands in interactively


Call the interpreter with the name of the script

python progName


Type the program name of an executable
script file

chmod +x script

./script

-
The first line of the script should be



#!/usr/bin/python

Hello World

#!/usr/bin/python

import sys

sys.stdout.write("Hello world!
\
n")



Python Program Structure


A python program is composed of modules


A python module is composed of statements


statements are terminated by a newline unless the
last character is a
\

or there is an unclosed (. [ or {


Put two statements on a line with a ; between


Statements create and process objects

Python Built
-
in Types


Numbers (immutable)



Sequences
-

indexing, slicing, concatenation


Strings (immutable)



Lists (mutable)



Tuples (immutable)



Mapping
-

indexing by key


Dictionaries (mutable)



Files

Numbers


Numeric types


integers
-

a C long


long integer
-

arbitrary number of digits


floating point
-

C double


complex


Standard arithmetic, comparison, bitwise
operators plus ** (exponentiation)



Built
-
in‏functions‏:‏pow,‏abs,‏…


Modules : rand, math, cmath

Sequences


Strings : 'abc', "def", """triple
-
qouted for
multi
-
line strings"""


Lists : [
1
,
2
,
4
]


Tuples : (
1
,
2
,
3
)


Sequence Operations


concatenation with +


indexing with [ ]


slicing (substring) with [ : ]


len( s) to get length


% for formatting : fmtString % string


* for repeating


in for membership : 'a' in str

Strings


Immutable, ordered sequences of characters


Supports all sequence operations (see
strings.py)



string module provides other functions


re module supports pattern matching

string module


Names must be qualified with the
module name (string. )



upper(str), lower(str)
-

returns a string


find( str, substr) returns index of substr


split( str, delimStr=" ") returns list of
string


join( strList, separator) returns a string

String class


As objects, strings have may of the
same methods that the string module
contains


Qualify the methods with the name of
the string

Lists


Ordered collection of arbitrary objects


arrays of object references


mutable


variable length


nestable


Representation : [
0
,
1
,
2
,
3
]


list methods modify the list (append, sort)



see lists.py

Tuples


Ordered sequence of arbitrary objects


Immutable


Fixed length


Arrays of object references


Representation : (
1
,
2
,
3
)



Like lists except no mutations allowed

Dictionary


Unordered collection of arbitrary objects


Element access by key, not index (hash
table)



Variable length, mutable


nestable


Representation : {'spam' :
2
, 'eggs' :
3
}


see dict.py

Dictionary operations


element access : d[key]


insert, update : d[key] = 'new'


remove : del d [key]


length: len(d)




methods


has_key( str)



keys() returns list of keys


values() returns list of values

Boolean Expressions


Expression truth values

0
, "", [], {},
0.0
, None are all false


everything else is true


Comparison operators: < <= == != >= >


return True and False (
1
and
0
)



Python allows a < b < c


Boolean operators: and or not


return an object which is true or false

Comparison


== checks for value equivalence


is checks for object equivalence


< <= > >= do element by element
comparison


think of how strings are compared in Java

Python Statements


Assignment


Function calls


print


if/elif/else


for/else


while/else


Def, return


import, from


break, continue


pass
-

no
-
op


try
-
except
-
finally


raise (exception)



class


global


del
-

delete objects


exec

Assignment


Variable names follow the same rules
as in C


Names are created when they are first
assigned


Names must be assigned before they
can be referenced


Assignment creates an object reference


Associativity is right to left

Assignment examples

spam = 'spam'

spam, ham = 'yum', 'YUM'

[spam, ham] = ['yum', 'YUM']

list = [
1
,
2
,
3
]

tuple = ('a', 'b', 'c')


d = {
1
: 'one',
2
: 'two',
3
:
three}

Blocks


Blocks in python are started by a
compound statement

header :


stmt
1





laststmt


Blocks terminate when the indentation
level is reduced

if


Syntax

if test
1
:


block
1

elif test
2
:


block
2

else:


elseblock


else and elif are
optional


Can have arbitrary
number of elif

while


Syntax


while test:



loopbody


else:



nobreakaction


Optional else part is executed if loop exits
without a break


break and continue work as in Java


pass is a null statement used for empty body


for


for loop is a
sequence iterator


works on strings,
lists, tuples


range is a function
that generates a list
of numbers


for var in seq


loopbody

else:


nobreakaction

Functions


Define with

def fun(p
1
, p
2
):


return p
1
+ p
2


Call with

fun(
2
,
3
)



Function without a
return statement returns
None


Names are local unless
declared
global


Variables are
references


assigning to a
parameter does not
change the caller


changing a mutable
object does change
the caller

Scope


Python has three scopes


local (in function)



global (in module)



built
-
in


Nested functions do not have nested
scope

os Module


Provides a portable way to do OS
-
dependent operations


manipulating files and directories


listdir( path)


mkdir( path)


chmod( path, mode)


process management


fork, exec, kill


system( command)


system information