SlideShare a Scribd company logo
07/07/2018 1
CS 331
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
07/07/2018 2
CS 331
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)
07/07/2018 3
CS 331
Why Python?
• Natural Language ToolKit
• Ease of use; interpreter
• AI Processing: Symbolic
– Python’s built-in datatypes for strings, lists, and more.
– Java or C++ require the use of special classes for this.
• AI Processing: Statistical
– Python has strong numeric processing capabilities:
matrix operations, etc.
– Suitable for probability and machine learning code.
5
• Some influential ones:
– FORTRAN
• science / engineering
– COBOL
• business data
– LISP
• logic and AI
Languages
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
07/07/2018 6
CS 331
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”
07/07/2018 7
CS 331
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/
07/07/2018 8
CS 331
9
Compiling and interpreting
 Many languages require you to compile (translate) your program
into a form that the machine understands.
 Python is instead directly interpreted into machine instructions.
compile execute
output
source code
Hello.java
byte code
Hello.class
interpret
output
source code
Hello.py
Python types
• Int – 42- may be transparently expanded to
long through 438324932L
• Float – 2.171892
• Complex – 4 + 3j
• Bool – True of False
07/07/2018 10
CS 331
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
07/07/2018 11
CS 331
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()
07/07/2018 12
CS 331
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"
07/07/2018 13
CS 331
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
print i,
07/07/2018 14
CS 331
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'
07/07/2018 15
CS 331
Exception handling
• try:
f = open("file.txt")
except IOError:
print "Could not open“
else:
f.close()
• a = [1,2,3]
try:
a[7] = 0
except (IndexError,TypeError):
print "IndexError
caught”
except Exception, e:
print "Exception: ", e
except: # catch everything
print "Unexpected:"
print sys.exc_info()[0]
raise # re-throw caught exception
try:
a[7] = 0
finally:
print "Will run regardless"
• Easily make your own exceptions:
class myException(except)
def __init__(self,msg):
self.msg = msg
def __str__(self):
return
repr(self.msg)
07/07/2018 16
CS 331
Classes
class MyVector: """A simple vector class."""
num_created = 0
def __init__(self,x=0,y=0):
self.__x = x
self.__y = y
MyVector.num_created += 1
def get_size(self):
return self.__x+self.__y
@staticmethod
def get_num_created
return MyVector.num_created
#USAGE OF CLASS MyVector
print MyVector.num_created
v = MyVector()
w = MyVector(0.23,0.98)
print w.get_size()
bool = isinstance(v, MyVector)
Output:
0
1.21
07/07/2018 17
CS 331
18
Expressions
 expression: A data value or set of operations to compute a value.
Examples: 1 + 4 * 3
42
 Arithmetic operators we will use:
 + - * / addition, subtraction/negation, multiplication,
division
 % modulus, a.k.a. remainder
 ** exponentiation
 precedence: Order in which operations are computed.
 * / % ** have a higher precedence than + -
1 + 3 * 4 is 13
 Parentheses can be used to force a certain order of evaluation.
(1 + 3) * 4 is 16
19
Integer division
 When we divide integers with / , the quotient is also an integer.
3 52
4 ) 14 27 ) 1425
12 135
2 75
54
21
 More examples:

35 / 5 is 7

84 / 10 is 8

156 / 100 is 1
 The % operator computes the remainder from a division of integers.
3 43
4 ) 14 5 ) 218
12 20
2 18
15
3
20
Real numbers
 Python can also manipulate real numbers.
 Examples: 6.022 -15.9997 42.0 2.143e17
 The operators + - * / % ** ( ) all work for real numbers.
 The / produces an exact answer: 15.0 / 2.0 is 7.5
 The same rules of precedence also apply to real numbers:
Evaluate ( ) before * / % before + -
 When integers and reals are mixed, the result is a real number.
 Example: 1 / 2.0 is 0.5
 The conversion occurs on a per-operator basis.

7 / 3 * 1.2 + 3 / 2

2 * 1.2 + 3 / 2

2.4 + 3 / 2
 2.4 + 1

3.4
21
Math commands
 Python has useful commands for performing calculations.
Command name Description
abs(value) absolute value
ceil(value) rounds up
cos(value) cosine, in radians
floor(value) rounds down
log(value) logarithm, base e
log10(value) logarithm, base 10
max(value1, value2) larger of two values
min(value1, value2) smaller of two values
round(value) nearest whole number
sin(value) sine, in radians
sqrt(value) square root
Constant Description
e 2.7182818...
pi 3.1415926...
22
Variables
 variable: A named piece of memory that can store a value.
 Usage:

Compute an expression's result,

store that result into a variable,

and use that variable later in the program.
 assignment statement: Stores a value into a variable.
 Syntax:
name = value
 Examples: x = 5
gpa = 3.14
x 5 gpa 3.14
 A variable that has been given a value can be used in expressions.
x + 4 is 9
 Exercise: Evaluate the quadratic equation for a given a, b, and c.
23
 print : Produces text output on the console.
 Syntax:
print "Message"
print Expression
 Prints the given text message or expression value on the console, and
moves the cursor down to the next line.
print Item1, Item2, ..., ItemN
 Prints several messages and/or expressions on the same line.
 Examples:
print "Hello, world!"
age = 45
print "You have", 65 - age, "years until retirement"
Output:
Hello, world!
You have 20 years until retirement
print
24
 input : Reads a number from user input.
 You can assign (store) the result of input into a variable.
 Example:
age = input("How old are you? ")
print "Your age is", age
print "You have", 65 - age, "years until retirement"
Output:
How old are you? 53
Your age is 53
You have 12 years until retirement
 Exercise: Write a Python program that prompts the user for
his/her amount of money, then reports how many Nintendo Wiis
the person can afford, and how much more money he/she will
need to afford an additional Wii.
input
25
Repetition (loops)
and Selection (if/else)
26
The for loop
 for loop: Repeats a set of statements over a group of values.
 Syntax:
for variableName in groupOfValues:
statements

We indent the statements to be repeated with tabs or spaces.

variableName gives a name to each value, so you can refer to it in the statements.

groupOfValues can be a range of integers, specified with the range function.
 Example:
for x in range(1, 6):
print x, "squared is", x * x
Output:
1 squared is 1
2 squared is 4
3 squared is 9
4 squared is 16
5 squared is 25
27
range
 The range function specifies a range of integers:

range(start, stop) - the integers between start (inclusive)
and stop (exclusive)
 It can also accept a third value specifying the change between values.

range(start, stop, step) - the integers between start (inclusive)
and stop (exclusive) by step
 Example:
for x in range(5, 0, -1):
print x
print "Blastoff!"
Output:
5
4
3
2
1
Blastoff!

Exercise: How would we print the "99 Bottles of Beer" song?
28
Cumulative loops
 Some loops incrementally compute a value that is initialized outside
the loop. This is sometimes called a cumulative sum.
sum = 0
for i in range(1, 11):
sum = sum + (i * i)
print "sum of first 10 squares is", sum
Output:
sum of first 10 squares is 385
 Exercise: Write a Python program that computes the factorial of
an integer.
29
if
 if statement: Executes a group of statements only if a certain
condition is true. Otherwise, the statements are skipped.

Syntax:
if condition:
statements
 Example:
gpa = 3.4
if gpa > 2.0:
print "Your application is accepted."
30
if/else
 if/else statement: Executes one block of statements if a certain
condition is True, and a second block of statements if it is False.

Syntax:
if condition:
statements
else:
statements
 Example:
gpa = 1.4
if gpa > 2.0:
print "Welcome to Mars University!"
else:
print "Your application is denied."
 Multiple conditions can be chained with elif ("else if"):
if condition:
statements
elif condition:
statements
else:
statements
31
while
 while loop: Executes a group of statements as long as a condition is True.
 good for indefinite loops (repeat an unknown number of times)
 Syntax:
while condition:
statements
 Example:
number = 1
while number < 200:
print number,
number = number * 2
 Output:
1 2 4 8 16 32 64 128
32
Logic
 Many logical expressions use relational operators:
 Logical expressions can be combined with logical operators:
Operator Example Result
and 9 != 6 and 2 < 3 True
or 2 == 3 or -1 < 5 True
not not 7 > 0 False
Operator Meaning Example Result
== equals 1 + 1 == 2 True
!= does not equal 3.2 != 2.5 True
< less than 10 < 5 False
> greater than 10 > 5 True
<= less than or equal to 126 <= 100 False
>= greater than or equal to 5.0 >= 5.0 True
33
Text and File Processing
34
 string: A sequence of text characters in a program.
 Strings start and end with quotation mark " or apostrophe ' characters.
 Examples:
"hello"
"This is a string"
"This, too, is a string. It can be very long!"
 A string may not span across multiple lines or contain a " character.
"This is not
a legal String."
"This is not a "legal" String either."
 A string can represent characters by preceding them with a backslash.

t tab character

n new line character

" quotation mark character

 backslash character

Example: "HellottherenHow are you?"
Strings
35
Indexes
 Characters in a string are numbered with indexes starting at 0:
 Example:
name = "P. Diddy"
 Accessing an individual character of a string:
variableName [ index ]
 Example:
print name, "starts with", name[0]
Output:
P. Diddy starts with P
index 0 1 2 3 4 5 6 7
character P . D i d d y
36
String properties
 len(string) - number of characters in a string
(including spaces)
 str.lower(string) - lowercase version of a string
 str.upper(string) - uppercase version of a string
 Example:
name = "Martin Douglas Stepp"
length = len(name)
big_name = str.upper(name)
print big_name, "has", length, "characters"
Output:
MARTIN DOUGLAS STEPP has 20 characters
37
 raw_input : Reads a string of text from user input.
 Example:
name = raw_input("Howdy, pardner. What's yer name? ")
print name, "... what a silly name!"
Output:
Howdy, pardner. What's yer name? Paris Hilton
Paris Hilton ... what a silly name!
raw_input
38
Text processing
 text processing: Examining, editing, formatting text.
 often uses loops that examine the characters of a string one by one
 A for loop can examine each character in a string in sequence.

Example:
for c in "booyah":
print c
Output:
b
o
o
y
a
h
39
Strings and numbers
 ord(text) - converts a string into a number.
 Example: ord("a") is 97, ord("b") is 98, ...
 Characters map to numbers using standardized mappings such as
ASCII and Unicode.
 chr(number) - converts a number into a string.
 Example: chr(99) is "c"
 Exercise: Write a program that performs a rotation cypher.
 e.g. "Attack" when rotated by 1 becomes "buubdl"
40
File processing
 Many programs handle data, which often comes from files.
 Reading the entire contents of a file:
variableName = open("filename").read()
Example:
file_text = open("bankaccount.txt").read()
41
Line-by-line processing
 Reading a file line-by-line:
for line in open("filename").readlines():
statements
Example:
count = 0
for line in open("bankaccount.txt").readlines():
count = count + 1
print "The file contains", count, "lines."
 Exercise: Write a program to process a file of DNA text, such as:
ATGCAATTGCTCGATTAG
 Count the percent of C+G present in the DNA.
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…
07/07/2018 42
CS 331

More Related Content

Similar to Python programming language presentation (20)

PPTX
Mastering Python lesson3b_for_loops
Ruth Marvin
 
PPTX
Python fundamentals
natnaelmamuye
 
PDF
Python and Pytorch tutorial and walkthrough
gabriellekuruvilla
 
PDF
Python Training in Chandigarh(Mohali)
ExcellenceAcadmy
 
PDF
Python Training Course in Chandigarh(Mohali)
ExcellenceAcadmy
 
PPTX
Introduction Of C++
Sangharsh agarwal
 
PDF
Cs4hs2008 track a-programming
Rashi Agarwal
 
PPT
270_1_CIntro_Up_To_Functions.ppt 0478 computer
vynark1
 
PPT
CIntro_Up_To_Functions.ppt;uoooooooooooooooooooo
muhammedcti23240202
 
PPTX
ForLoops.pptx
RabiyaZhexembayeva
 
PPT
270_1_CIntro_Up_To_Functions.ppt
Alefya1
 
PPT
Survey of programming language getting started in C
ummeafruz
 
PPT
270 1 c_intro_up_to_functions
ray143eddie
 
PPT
270_1_CIntro_Up_To_Functions.ppt
UdhayaKumar175069
 
PDF
Intro-to-Python-Part-1-first-part-edition.pdf
ssuser543728
 
PPT
270_1_ChapterIntro_Up_To_Functions (1).ppt
GayathriShiva4
 
PDF
Python for Physical Science.pdf
MarilouANDERSON
 
PDF
Blueprints: Introduction to Python programming
Bhalaji Nagarajan
 
PPTX
pythontraining-201jn026043638.pptx
RohitKumar639388
 
Mastering Python lesson3b_for_loops
Ruth Marvin
 
Python fundamentals
natnaelmamuye
 
Python and Pytorch tutorial and walkthrough
gabriellekuruvilla
 
Python Training in Chandigarh(Mohali)
ExcellenceAcadmy
 
Python Training Course in Chandigarh(Mohali)
ExcellenceAcadmy
 
Introduction Of C++
Sangharsh agarwal
 
Cs4hs2008 track a-programming
Rashi Agarwal
 
270_1_CIntro_Up_To_Functions.ppt 0478 computer
vynark1
 
CIntro_Up_To_Functions.ppt;uoooooooooooooooooooo
muhammedcti23240202
 
ForLoops.pptx
RabiyaZhexembayeva
 
270_1_CIntro_Up_To_Functions.ppt
Alefya1
 
Survey of programming language getting started in C
ummeafruz
 
270 1 c_intro_up_to_functions
ray143eddie
 
270_1_CIntro_Up_To_Functions.ppt
UdhayaKumar175069
 
Intro-to-Python-Part-1-first-part-edition.pdf
ssuser543728
 
270_1_ChapterIntro_Up_To_Functions (1).ppt
GayathriShiva4
 
Python for Physical Science.pdf
MarilouANDERSON
 
Blueprints: Introduction to Python programming
Bhalaji Nagarajan
 
pythontraining-201jn026043638.pptx
RohitKumar639388
 

Recently uploaded (20)

PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PDF
Horarios de distribución de agua en julio
pegazohn1978
 
PPTX
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
PPTX
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
PPTX
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
PDF
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PDF
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
Controller Request and Response in Odoo18
Celine George
 
PPTX
Quarter 1_PPT_PE & HEALTH 8_WEEK 3-4.pptx
ronajadolpnhs
 
PDF
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
PPTX
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PPTX
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Horarios de distribución de agua en julio
pegazohn1978
 
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
Controller Request and Response in Odoo18
Celine George
 
Quarter 1_PPT_PE & HEALTH 8_WEEK 3-4.pptx
ronajadolpnhs
 
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
Dimensions of Societal Planning in Commonism
StefanMz
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PPT-Q1-WK-3-ENGLISH Revised Matatag Grade 3.pptx
reijhongidayawan02
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Ad

Python programming language presentation

  • 2. 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 07/07/2018 2 CS 331
  • 3. 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) 07/07/2018 3 CS 331
  • 4. Why Python? • Natural Language ToolKit • Ease of use; interpreter • AI Processing: Symbolic – Python’s built-in datatypes for strings, lists, and more. – Java or C++ require the use of special classes for this. • AI Processing: Statistical – Python has strong numeric processing capabilities: matrix operations, etc. – Suitable for probability and machine learning code.
  • 5. 5 • Some influential ones: – FORTRAN • science / engineering – COBOL • business data – LISP • logic and AI Languages
  • 6. 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 07/07/2018 6 CS 331
  • 7. 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” 07/07/2018 7 CS 331
  • 8. 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/ 07/07/2018 8 CS 331
  • 9. 9 Compiling and interpreting  Many languages require you to compile (translate) your program into a form that the machine understands.  Python is instead directly interpreted into machine instructions. compile execute output source code Hello.java byte code Hello.class interpret output source code Hello.py
  • 10. Python types • Int – 42- may be transparently expanded to long through 438324932L • Float – 2.171892 • Complex – 4 + 3j • Bool – True of False 07/07/2018 10 CS 331
  • 11. 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 07/07/2018 11 CS 331
  • 12. 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() 07/07/2018 12 CS 331
  • 13. 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" 07/07/2018 13 CS 331
  • 14. 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 print i, 07/07/2018 14 CS 331
  • 15. 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' 07/07/2018 15 CS 331
  • 16. Exception handling • try: f = open("file.txt") except IOError: print "Could not open“ else: f.close() • a = [1,2,3] try: a[7] = 0 except (IndexError,TypeError): print "IndexError caught” except Exception, e: print "Exception: ", e except: # catch everything print "Unexpected:" print sys.exc_info()[0] raise # re-throw caught exception try: a[7] = 0 finally: print "Will run regardless" • Easily make your own exceptions: class myException(except) def __init__(self,msg): self.msg = msg def __str__(self): return repr(self.msg) 07/07/2018 16 CS 331
  • 17. Classes class MyVector: """A simple vector class.""" num_created = 0 def __init__(self,x=0,y=0): self.__x = x self.__y = y MyVector.num_created += 1 def get_size(self): return self.__x+self.__y @staticmethod def get_num_created return MyVector.num_created #USAGE OF CLASS MyVector print MyVector.num_created v = MyVector() w = MyVector(0.23,0.98) print w.get_size() bool = isinstance(v, MyVector) Output: 0 1.21 07/07/2018 17 CS 331
  • 18. 18 Expressions  expression: A data value or set of operations to compute a value. Examples: 1 + 4 * 3 42  Arithmetic operators we will use:  + - * / addition, subtraction/negation, multiplication, division  % modulus, a.k.a. remainder  ** exponentiation  precedence: Order in which operations are computed.  * / % ** have a higher precedence than + - 1 + 3 * 4 is 13  Parentheses can be used to force a certain order of evaluation. (1 + 3) * 4 is 16
  • 19. 19 Integer division  When we divide integers with / , the quotient is also an integer. 3 52 4 ) 14 27 ) 1425 12 135 2 75 54 21  More examples:  35 / 5 is 7  84 / 10 is 8  156 / 100 is 1  The % operator computes the remainder from a division of integers. 3 43 4 ) 14 5 ) 218 12 20 2 18 15 3
  • 20. 20 Real numbers  Python can also manipulate real numbers.  Examples: 6.022 -15.9997 42.0 2.143e17  The operators + - * / % ** ( ) all work for real numbers.  The / produces an exact answer: 15.0 / 2.0 is 7.5  The same rules of precedence also apply to real numbers: Evaluate ( ) before * / % before + -  When integers and reals are mixed, the result is a real number.  Example: 1 / 2.0 is 0.5  The conversion occurs on a per-operator basis.  7 / 3 * 1.2 + 3 / 2  2 * 1.2 + 3 / 2  2.4 + 3 / 2  2.4 + 1  3.4
  • 21. 21 Math commands  Python has useful commands for performing calculations. Command name Description abs(value) absolute value ceil(value) rounds up cos(value) cosine, in radians floor(value) rounds down log(value) logarithm, base e log10(value) logarithm, base 10 max(value1, value2) larger of two values min(value1, value2) smaller of two values round(value) nearest whole number sin(value) sine, in radians sqrt(value) square root Constant Description e 2.7182818... pi 3.1415926...
  • 22. 22 Variables  variable: A named piece of memory that can store a value.  Usage:  Compute an expression's result,  store that result into a variable,  and use that variable later in the program.  assignment statement: Stores a value into a variable.  Syntax: name = value  Examples: x = 5 gpa = 3.14 x 5 gpa 3.14  A variable that has been given a value can be used in expressions. x + 4 is 9  Exercise: Evaluate the quadratic equation for a given a, b, and c.
  • 23. 23  print : Produces text output on the console.  Syntax: print "Message" print Expression  Prints the given text message or expression value on the console, and moves the cursor down to the next line. print Item1, Item2, ..., ItemN  Prints several messages and/or expressions on the same line.  Examples: print "Hello, world!" age = 45 print "You have", 65 - age, "years until retirement" Output: Hello, world! You have 20 years until retirement print
  • 24. 24  input : Reads a number from user input.  You can assign (store) the result of input into a variable.  Example: age = input("How old are you? ") print "Your age is", age print "You have", 65 - age, "years until retirement" Output: How old are you? 53 Your age is 53 You have 12 years until retirement  Exercise: Write a Python program that prompts the user for his/her amount of money, then reports how many Nintendo Wiis the person can afford, and how much more money he/she will need to afford an additional Wii. input
  • 26. 26 The for loop  for loop: Repeats a set of statements over a group of values.  Syntax: for variableName in groupOfValues: statements  We indent the statements to be repeated with tabs or spaces.  variableName gives a name to each value, so you can refer to it in the statements.  groupOfValues can be a range of integers, specified with the range function.  Example: for x in range(1, 6): print x, "squared is", x * x Output: 1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 5 squared is 25
  • 27. 27 range  The range function specifies a range of integers:  range(start, stop) - the integers between start (inclusive) and stop (exclusive)  It can also accept a third value specifying the change between values.  range(start, stop, step) - the integers between start (inclusive) and stop (exclusive) by step  Example: for x in range(5, 0, -1): print x print "Blastoff!" Output: 5 4 3 2 1 Blastoff!  Exercise: How would we print the "99 Bottles of Beer" song?
  • 28. 28 Cumulative loops  Some loops incrementally compute a value that is initialized outside the loop. This is sometimes called a cumulative sum. sum = 0 for i in range(1, 11): sum = sum + (i * i) print "sum of first 10 squares is", sum Output: sum of first 10 squares is 385  Exercise: Write a Python program that computes the factorial of an integer.
  • 29. 29 if  if statement: Executes a group of statements only if a certain condition is true. Otherwise, the statements are skipped.  Syntax: if condition: statements  Example: gpa = 3.4 if gpa > 2.0: print "Your application is accepted."
  • 30. 30 if/else  if/else statement: Executes one block of statements if a certain condition is True, and a second block of statements if it is False.  Syntax: if condition: statements else: statements  Example: gpa = 1.4 if gpa > 2.0: print "Welcome to Mars University!" else: print "Your application is denied."  Multiple conditions can be chained with elif ("else if"): if condition: statements elif condition: statements else: statements
  • 31. 31 while  while loop: Executes a group of statements as long as a condition is True.  good for indefinite loops (repeat an unknown number of times)  Syntax: while condition: statements  Example: number = 1 while number < 200: print number, number = number * 2  Output: 1 2 4 8 16 32 64 128
  • 32. 32 Logic  Many logical expressions use relational operators:  Logical expressions can be combined with logical operators: Operator Example Result and 9 != 6 and 2 < 3 True or 2 == 3 or -1 < 5 True not not 7 > 0 False Operator Meaning Example Result == equals 1 + 1 == 2 True != does not equal 3.2 != 2.5 True < less than 10 < 5 False > greater than 10 > 5 True <= less than or equal to 126 <= 100 False >= greater than or equal to 5.0 >= 5.0 True
  • 33. 33 Text and File Processing
  • 34. 34  string: A sequence of text characters in a program.  Strings start and end with quotation mark " or apostrophe ' characters.  Examples: "hello" "This is a string" "This, too, is a string. It can be very long!"  A string may not span across multiple lines or contain a " character. "This is not a legal String." "This is not a "legal" String either."  A string can represent characters by preceding them with a backslash.  t tab character  n new line character  " quotation mark character  backslash character  Example: "HellottherenHow are you?" Strings
  • 35. 35 Indexes  Characters in a string are numbered with indexes starting at 0:  Example: name = "P. Diddy"  Accessing an individual character of a string: variableName [ index ]  Example: print name, "starts with", name[0] Output: P. Diddy starts with P index 0 1 2 3 4 5 6 7 character P . D i d d y
  • 36. 36 String properties  len(string) - number of characters in a string (including spaces)  str.lower(string) - lowercase version of a string  str.upper(string) - uppercase version of a string  Example: name = "Martin Douglas Stepp" length = len(name) big_name = str.upper(name) print big_name, "has", length, "characters" Output: MARTIN DOUGLAS STEPP has 20 characters
  • 37. 37  raw_input : Reads a string of text from user input.  Example: name = raw_input("Howdy, pardner. What's yer name? ") print name, "... what a silly name!" Output: Howdy, pardner. What's yer name? Paris Hilton Paris Hilton ... what a silly name! raw_input
  • 38. 38 Text processing  text processing: Examining, editing, formatting text.  often uses loops that examine the characters of a string one by one  A for loop can examine each character in a string in sequence.  Example: for c in "booyah": print c Output: b o o y a h
  • 39. 39 Strings and numbers  ord(text) - converts a string into a number.  Example: ord("a") is 97, ord("b") is 98, ...  Characters map to numbers using standardized mappings such as ASCII and Unicode.  chr(number) - converts a number into a string.  Example: chr(99) is "c"  Exercise: Write a program that performs a rotation cypher.  e.g. "Attack" when rotated by 1 becomes "buubdl"
  • 40. 40 File processing  Many programs handle data, which often comes from files.  Reading the entire contents of a file: variableName = open("filename").read() Example: file_text = open("bankaccount.txt").read()
  • 41. 41 Line-by-line processing  Reading a file line-by-line: for line in open("filename").readlines(): statements Example: count = 0 for line in open("bankaccount.txt").readlines(): count = count + 1 print "The file contains", count, "lines."  Exercise: Write a program to process a file of DNA text, such as: ATGCAATTGCTCGATTAG  Count the percent of C+G present in the DNA.
  • 42. 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… 07/07/2018 42 CS 331

Editor's Notes

  • #19: Dividing by 0 crashes the program.