Introduction to Python - Kansas State University
Download
Report
Transcript Introduction to Python - Kansas State University
Introduction to Python
Network Programming
Kansas State University at Salina
Python Features
Interpreted – platform independent, very high
level, rapid development cycle
Very clear syntax – easy to learn, even just
by example
Fully Object Oriented, but not mandated
No need to initialize variables
Advanced built-in data structures allows for
rapid development.
Basic Commands
Indentation and block-structure
Use colon and indention to identify a code block.
n = 9
r = 1
while
r
n
print
n > 0:
= r * n
= n – 1
r
Note: no need for semicolons or brackets
Strings
Initialize strings with pairs of single quotes,
double quotes, or triple quotes.
a = '\t this starts with a "tab".'
b = "this string has 'line feed'.\n"
c = "backslash \"quotes\"."
d = 'same for \'single\' quotes.'
e = """The triple quote
is nice for strings that take multiple
lines. 'single' and "double" quotes do not
need backslashes."""
Merging variables with strings:
st = "There are %d lines and %d characters \
in the file" % (chars, lines)
Lists
Very flexible built-in data container
Like an array, a list contains "list" or
sequence of data.
A list can contain a mixture of data types
including any number type, strings, tuples,
lists, dictionaries, functions, objects of any
type.
Mixture of data types allows easy creation of
data structures.
Lists (continued)
List Slicing:
>>> x = ['first', 'second', 'third', 'forth']
>>> print x
['first', 'second', 'third', 'forth']
>>> x[2]
'third'
>>> x[2:]
['third', 'forth']
>>> x[:2]
['first', 'second']
>>> x[1:3]
['second', 'third']
>>> len(x)
4
Built-in functions operating on lists: in, +, *, del
List methods: append, count, extend, index, insert, pop,
remove, reverse, sort
Lists (continued)
Built-in functions operating on lists: in, +, *, del
>>> x = ['one', 'two', 'three', 'four']
>>> x
['one', 'two', 'three', 'four']
...
>>> for a in x:
print a
one
two
three
four
...
>>> y = [5, 6]
>>> print x + y
['one', 'two', 'three', 'four', 5, 6]
...
>>> print x * 2
['one', 'two', 'three', 'four', 'one', 'two', 'three', 'four']
...
>>> del x[2]
>>> print x
['one', 'two', 'four']
Lists (continued)
List methods: append, count, extend, index, insert, pop,
remove, reverse, sort
>>> print x
['one', 'two', 'four']
>>> x.insert(2, 'three'); print x
['one', 'two', 'three', 'four']
>>> x.append(['five', 'six']); print x
['one', 'two', 'three', 'four', ['five', 'six']]
...
>>> x.extend(['five', 'six']); print x
['one', 'two', 'three', 'four', 'five', 'six']
>>> x.count('four')
1
>>> x.index('five')
4
>>> x.pop()
'six'
>>> x
['one', 'two', 'three', 'four', 'five']
>>> x.remove('two'); print x
['one', 'three', 'four', 'five']
>>> x.reverse(); print x
['five', 'four', 'three', 'one']
>>> x.sort(); print x
['five', 'four', 'one', 'three']
Tuples
A tuple is a list that is immutable (can not be
changed once created).
x = (1, 2, 3)
Use tuples when possible because they are more
efficient than lists.
Operators and built-in functions (in, +, *, len,
min, max) may be used with tuples.
Often used to allow multiple values returned from a
function.
x, y = function( … )
Tuples in Functions
>>> def assignVariables(a, b):
c = a
d = b
return c, d
>>> x, y = assignVariables(2, 4)
>>> x
2
>>> y
4
Dictionaries
A list of two item pairs (key, value).
The key is immutable.
The value may be any object.
Provides an associative array functionality
implemented using hash tables.
Built-in functions: len, del
Dictionary methods: clear, copy, get,
has_key, items, keys, update, values
Dictionary examples
>>> d = {'one':1, 'two':2}
>>> d['one']
1
>>> d['one'] = 3
>>> d['one']
3
>>> d
{'two': 2, 'one': 3}
>>> d.items()
[('two', 2), ('one', 3)]
>>> d.keys()
['two', 'one']
>>> d.values()
[2, 3]
>>> d.has_key('two')
True
Dictionary examples
>>> d =
>>> e =
{'two':
>>> f =
{'two':
{'one':1, 'two':2}
d.copy(); print e
2, 'one': 1}
d; print f
2, 'one': 1}
>>> d.update({'three':3})
>>> print d
{'three': 3, 'two': 2, 'one': 1}
>>> print e
{'two': 2, 'one': 1}
>>> print f
{'three': 3, 'two': 2, 'one': 1}
The 'for' loop
>>> x = [ 1, 2, 3 ]
>>> for i in x:
print i
1
2
3
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(0,6,2)
[0, 2, 4]
>>> range(2,6)
[2, 3, 4, 5]
Basic I/O – printing
Two ways of displaying text:
>>> import sys
>>> for i in range(3):
sys.stdout.write("Hi ")
Hi Hi Hi
>>> for i in range(3):
print("Hi")
Hi
Hi
Hi
Basic I/O – reading data
>>> x = input("Enter a
number: ")
Enter a number: 5
>>> x
5
>>> name = input("Enter your
name: ")
Enter your name: Tim
Traceback (most recent call
last):
File "<pyshell#47>", line
1,
. . .
NameError: name 'Tim' is not
defined
>>> name = input("Enter your
name: ")
Enter your name: 'Tim'
>>> name
'Tim'
>>> name = raw_input("Enter
your name: ")
Enter your name: Tim
>>> name
'Tim'
>>> x = raw_input("Enter a
number: ")
Enter a number: 3
>>> x
'3'
File I/O – reading a text file
Reading a text file:
>>> fileobj = open(
"foo.txt", 'r' )
>>> lines =
fileobj.readlines()
>>> lines
['Test file\n', 'line
two\n', 'line three']
>>> fileobj.close()
A line at a time:
import sys
fileobj = open("foo.txt",'r'
)
lines = [] # an empty list
while 1:
line = fileobj.readline()
if line == "":
break
lines.append(line)
for l in lines:
sys.stdout.write(l)
sys.stdout.write('\n')
fileobj.close()
File I/O – Writing a file
fileobject = open("bar", 'w' )
fileobject.write("Hello, World\n")
fileobject.close()
File I/O – Pickle your data
>>> d = {'one':1, 'two':2, 'three':3 }
>>> d
{'three': 3, 'two': 2, 'one': 1}
>>>
>>>
>>>
>>>
import cPickle
file = open("dpickle", 'w')
cPickle.dump(d, file)
file.close()
>>> fo = open("dpickle", 'r')
>>> newd = cPickle.load(fo)
>>> fo.close()
>>> newd
{'one': 1, 'three': 3, 'two': 2}
Functions
Call by value or reference is the
same as Java…
>>> def test(x):
x=x+2
>>> z = 2
>>> test(z)
>>> print z
2
>>> def stest(st):
st = st + "Hello"
>>> s = "joe"
>>> stest(s)
>>> print s
joe
>>> class ctest:
def __init__(self, n):
self.n = n
>>> def c1test(n):
n.n = n.n + 2
>>> x = ctest(5)
>>> x.n
5
>>> c1test(x)
>>> x.n
7
Classes
Syntax
Class classname(base_class):
“optional documentation string”
static variable declarations
method declarations
Method declarations are just function definitions.
The __init__(self, other_args) method is
initialization code, not a constructor.
Use the self.var_name to reference any class
data variables.
Modules
Allow for code reuse
Provide a tool for grouping system components
Allow components to be shared across multiple
functions
import <module>: executes all code in a module
from <module> import <name>: executes
specific code within a module
Latter results in a more efficient program if only
certain functions and attributes of a module are
needed, since only the necessary code from the
module is run
Exceptions
Handled through the use of
try [except else finally] blocks
import sys
try:
file = open('noFile', 'r')
except IOError:
print 'File does not exist.'
sys.exit(1)
else:
print 'File exists.'
file.close()
else block executes only if no exceptions are
thrown, while finally block always executes
A word about the text book examples
Examples assume that you are using some form of
Unix.
They still work in Windows!
#!/usr/bin/env python – Tells Unix which interpreter
to use. It is ignored as a comment in windows.
In Windows, either use Idle or invoke the interpreter
explicitly from command prompt. Command line
arguments work. The following program just prints
argv[1].
C:\..\NetProgramming>c:\Python25\python argv.py help
help