[go: up one dir, main page]

0% found this document useful (0 votes)
230 views26 pages

Python

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1/ 26

Farrin Reid

Web & Internet Programming Group


Diana, Aren, Beau, Jeff, & Adam

8/13/2018 CS 331 1
python
• Simple
– Python is a simple and minimalistic language in nature
– Reading a good python program should be like reading English
– Its Pseudo-code nature allows one to concentrate on the problem
rather than the language
• Easy to Learn
• Free & Open source
– Freely distributed and Open source
– Maintained by the Python community
• High Level Language –memory management
• Portable – *runs on anything c code will

8/13/2018 CS 331 2
python
• Interpreted
– You run the program straight from the source code.
– Python program Bytecode a platforms native language
– You can just copy over your code to another system and it will auto-
magically work! *with python platform
• Object-Oriented
– Simple and additionally supports procedural programming
• Extensible – easily import other code
• Embeddable –easily place your code in non-python programs
• Extensive libraries
– (i.e. reg. expressions, doc generation, CGI, ftp, web browsers, ZIP, WAV,
cryptography, etc...) (wxPython, Twisted, Python Imaging library)

8/13/2018 CS 331 3
python Timeline/History
• Python was conceived in the late 1980s.
– Guido van Rossum, Benevolent Dictator For Life
– Rossum is Dutch, born in Netherlands, Christmas break
bored, big fan of Monty python’s Flying Circus
– Descendant of ABC, he wrote glob() func in UNIX
– M.D. @ U of Amsterdam, worked for CWI, NIST, CNRI, Google
– Also, helped develop the ABC programming language
• In 1991 python 0.9.0 was published and reached the masses
through alt.sources
• In January of 1994 python 1.0 was released
– Functional programming tools like lambda, map, filter, and reduce
– comp.lang.python formed, greatly increasing python’s userbase

8/13/2018 CS 331 4
python Timeline/History
• In 1995, python 1.2 was released.
• By version 1.4 python had several new features
– Keyword arguments (similar to those of common lisp)
– Built-in support for complex numbers
– Basic form of data-hiding through name mangling (easily
bypassed however)
• Computer Programming for Everybody (CP4E) initiative
– Make programming accessible to more people, with basic “literacy”
similar to those required for English and math skills for some jobs.
– Project was funded by DARPA
– CP4E was inactive as of 2007, not so much a concern to get employees
programming “literate”
8/13/2018 CS 331 5
python Timeline/History
• In 2000, Python 2.0 was released.
– Introduced list comprehensions similar to Haskells
– Introduced garbage collection
• In 2001, Python 2.2 was released.
– Included unification of types and classes into one
hierarchy, making pythons object model purely Object-
oriented
– Generators were added(function-like iterator behavior)
• Standards
– http://www.python.org/dev/peps/pep-0008/
8/13/2018 CS 331 6
Why the name python
• A Dutch programmer named Guido van
Rossum made Python in 1991.
• He named it after the television show Monty
Python's Flying Circus a 70s BBC Comedy.
Companies that uses python
• Google (Youtube)
• Facebook (Tornado)
• Dropbox.
• Yahoo.
• NASA.
• IBM.
• Mozilla
Python types
• Str, unicode – ‘MyString’, u‘MyString’
• List – [ 69, 6.9, ‘mystring’, True]
• Tuple – (69, 6.9, ‘mystring’, True) immutable
• Set/frozenset – set([69, 6.9, ‘str’, True])
frozenset([69, 6.9, ‘str’, True]) –no duplicates
& unordered
• Dictionary or hash – {‘key 1’: 6.9, ‘key2’: False}
- group of key and value pairs
8/13/2018 CS 331 9
Python types
• Int – 42- may be transparently expanded to
long through 438324932L
• Float – 2.171892
• Complex – 4 + 3j
• Bool – True of False

8/13/2018 CS 331 10
Python semantics
• Each statement has its own semantics, the def
statement doesn’t get executed immediately like
other statements
• Python uses duck typing, or latent typing
– Allows for polymorphism without inheritance
– This means you can just declare
“somevariable = 69” don’t actually have to declare a type
– print “somevariable = “ + tostring(somevariable)”
strong typing , can’t do operations on objects not defined
without explicitly asking the operation to be done

8/13/2018 CS 331 11
Python Syntax
• Python uses indentation and/or whitespace to delimit
statement blocks rather than keywords or braces
• if __name__ == "__main__":
print “Salve Mundo"
# if no comma (,) at end ‘\n’ is auto-included
CONDITIONALS
• if (i == 1): do_something1()
elif (i == 2): do_something2()
elif (i == 3): do_something3()
else: do_something4()

8/13/2018 CS 331 12
Conditionals Cont.
• if (value is not None) and (value == 1):
print "value equals 1”,
print “ more can come in this block”
• if (list1 <= list2) and (not age < 80):
print “1 = 1, 2 = 2, but 3 <= 7 so its True”
• if (job == "millionaire") or (state != "dead"):
print "a suitable husband found"
else:
print "not suitable“
• if ok: print "ok"

8/13/2018 CS 331 13
Loops/Iterations
• sentence = ['Marry','had','a','little','lamb']
for word in sentence:
print word, len(word)
• for i in range(10):
print I
for i in xrange(1000):# does not allocate all initially
print I
• while True:
pass
• for i in xrange(10):
if i == 3: continue
if i == 5: break
8/13/2018 print i, CS 331 14
Functions
• def print_hello():# returns nothing
print “hello”
• def has_args(arg1,arg2=['e', 0]):
num = arg1 + 4
mylist = arg2 + ['a',7]
return [num, mylist]
has_args(5.16,[1,'b'])# returns [9.16,[[1, ‘b’],[ ‘a’,7]]
• def duplicate_n_maker(n): #lambda on the fly func.
return lambda arg1:arg1*n
dup3 = duplicate_n_maker(3)
dup_str = dup3('go') # dup_str == 'gogogo'

8/13/2018 CS 331 15
Exception handling
• try:
print "Unexpected:"
f = open("file.txt")
except IOError: print sys.exc_info()[0]
print "Could not open“ raise # re-throw caught exception
else: try:
f.close() a[7] = 0
• a = [1,2,3] finally:
try:
print "Will run regardless"
a[7] = 0
except (IndexError,TypeError): • Easily make your own exceptions:
print "IndexError caught” class myException(except)
except Exception, e: def __init__(self,msg):
print "Exception: ", e self.msg = msg
except: # catch everything def __str__(self):
return repr(self.msg)
8/13/2018 CS 331 16
Classes
class MyVector: """A simple vector class."""
num_created = 0
def __init__(self,x=0,y=0): #USAGE OF CLASS MyVector
self.__x = x print MyVector.num_created
self.__y = y v = MyVector()
MyVector.num_created += 1 w = MyVector(0.23,0.98)
def get_size(self): print w.get_size()
return self.__x+self.__y bool = isinstance(v, MyVector)
@staticmethod
def get_num_created Output:
return MyVector.num_created 0
1.21

8/13/2018 CS 331 17
I/O
import os # read binary records from a file
print os.getcwd() #get “.” from struct import *
os.chdir('..') fin = None
import glob # file globbing try:
lst = glob.glob('*.txt') # get list of files fin = open("input.bin","rb")
import shutil # mngmt tasks s = f.read(8)#easy to read in
shutil.copyfile('a.py','a.bak') while (len(s) == 8):
x,y,z = unpack(">HH<L", s)
import pickle # serialization logic print "Read record: " \
ages = {"ron":18,"ted":21} "%04x %04x %08x"%(x,y,z)
pickle.dump(ages,fout) s = f.read(8)
# serialize the map into a writable file except IOError:
ages = pickle.load(fin) pass
# deserialize map from areadable file if fin: fin.close()

8/13/2018 CS 331 18
Threading in Python
import threading
theVar = 1
class MyThread ( threading.Thread ):
def run ( self ):
global theVar
print 'This is thread ' + \
str ( theVar ) + ' speaking.‘
print 'Hello and good bye.’
theVar = theVar + 1
for x in xrange ( 10 ):
MyThread().start()
8/13/2018 CS 331 19
So what does Python have to do with
Internet and web programming?
• Jython & IronPython(.NET ,written in C#)
• Libraries – ftplib, snmplib, uuidlib, smtpd, urlparse,
SimpleHTTPServer, cgi, telnetlib, cookielib, xmlrpclib,
SimpleXMLRPCServer, DocXMLRPCServer
• Zope(application server), PyBloxsom(blogger),
MoinMoin(wiki), Trac(enhanced wiki and tracking
system), and Bittorrent (6 no, but prior versions yes)

8/13/2018 CS 331 20
Python Interpreters
• http://www.python.org/download/
• http://pyaiml.sourceforge.net/
• http://www.py2exe.org/
• http://www.activestate.com/Products/activepython/
• http://www.wingware.com/
• http://pythonide.blogspot.com/
• Many more…

8/13/2018 CS 331 21
Python on your systems
– Its easy! Go to http://www.python.org/download/
– Download your architecture binary, or source
– Install, make, build whatever you need to do…
plenty of info on installation in readmes
– Make your first program! (a simple on like the hello
world one will do just fine)
– Two ways of running python code. Either in an
interpreter or in a file ran as an executable

8/13/2018 CS 331 22
Running Python
• Windows XP – double click the icon or call it
from the command line as such:

8/13/2018 CS 331 23
Python Interpreter

8/13/2018 CS 331 24
Python for the future
• Python 3.0
– Will not be Backwards compatible, they are
attempting to fix “perceived” security flaws.
– Print statement will become a print function.
– All text strings will be unicode.
– Support of optional function annotation, that can
be used for informal type declarations and other
purposes.

8/13/2018 CS 331 25
Bibliography
• http://it.metr.ou.edu/byteofpython/features-of-python.html
• http://codesyntax.netfirms.com/lang-python.htm
• http://www.python.org/
• Sebesta, Robert W., Concepts of Programming Languages: 8th
ed. 2007
• http://www.python.org/~guido/

8/13/2018 CS 331 26

You might also like