SlideShare una empresa de Scribd logo
1 de 102
Introduction to Programming
with Python
Akhilesh Kumar Singh
Python
2
Python is a general purpose programming language that is
often applied in scripting roles.
So, Python is programming language as well as scripting
language.
Python is also called as Interpreted language
A program is executed (i.e.
the source is first compiled,
and the result of that
compilation is expected)
A "program" in general, is a
sequence of instructions
written so that a computer can
perform certain task.
A script is interpreted
A "script" is code written in a
scripting language. A
scripting language is nothing
but a type of programming
language in which we can
write code to control another
software application.
 code or source code: The sequence of instructions in a program.
 syntax: The set of legal structures and commands that can be
used in a particular programming language.
 output: The messages printed to the user by a program.
 console: The text box onto which output is printed.
 Some source code editors pop up the console as an external window,
and others contain their own console window.
Programming basics
3
Compiling and interpreting
 Many languages require you to compile (translate) your program
into a form that the machine understands.
compile execute
 Python is instead directly interpreted into machine instructions.
interpret
output
source code
Hello.java
byte code
Hello.class
output
source code
Hello.py
4
The Python Interpreter
•Python is an interpreted
language
•The interpreter provides
an interactive environment
to play with the language
•Results of expressions are
printed on the screen
>>> 3 + 7
10
>>> 3 < 15
True
>>> 'print me'
'print me'
>>> print 'print me'
print me
>>>
Why do people use Python…?
•Python is an interpreted
language
•The interpreter provides
an interactive
environment to play with
the language
•Results of expressions
are printed on the screen
>>> 3 + 7
10
>>> 3 < 15
True
>>> 'print me'
'print me'
>>> print 'print me'
print me
>>>
Why do people use Python…?
The following primary factors cited by Python users
seem to be these:
Python is object-oriented
Structure supports such concepts as polymorphism, operation
overloading, and multiple inheritance.
Indentation
Indentation is one of the greatest feature in python.
It's free (open source)
Downloading and installing Python is free and easy
Source code is easily accessible
A comparison of C & Python to
understand indentation better.
Why do people use Python…?
It's powerful
- Dynamic typing
- Built-in types and tools
- Library utilities
- Third party utilities (e.g. Numeric, NumPy, SciPy)
-Automatic memory management
It's portable
- Python runs virtually every major platform used today
-As long as you have a compatible Python interpreter installed,
Python programs will run in exactly the same manner,
irrespective of platform.
Why do people use Python…?
It's mixable
- Python can be linked to components written in other languageseasily
- Linking to fast, compiled code is useful to computationally intensive
problems.
- Python/C integration is quite common
It's easy to use
- No intermediate compile and link steps as in C/ C++
- Python programs are compiled automatically to an intermediate
form called bytecode, which the interpreter then reads
- This gives Python the development speed of an interpreter without
the performance loss inherent in purely interpreted languages
It's easy to learn
- Structure and syntax are pretty intuitive and easy to grasp
What can I do with Python ?
• System programming
• Graphical User Interface Programming Internet Scripting
• Component Integration Database Program
• Gaming, Images, XML , Robot and more
Sample Code
Expressions
1
 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
Integer division
1
 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
4 ) 14
12
2
43
5 ) 218
20
18
15
3
Real numbers
1
 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
TYPE CONVERSIONS (CAST)
1
• can convert object of one type to another
• float(3) converts integer 3 to float 3.0
• int(3.9) truncates float 3.9 to integer 3
8
Math commands
 Python has useful commands (or called functions) for performing
calculations.
 To use many of these commands, you must write the following at
the top of your Python program:
from math import *
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...
Numbers: Floating Point
 int(x) converts x to
an integer
 float(x) converts x
to a floating point
 The interpreter
shows
a lot of digits
>>> 1.23232
1.2323200000000001
>>> print 1.23232
1.23232
>>> 1.3E7
13000000.0
>>> int(2.0)
2
>>> float(2)
2.0
 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.
10
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
Example
>>> x = 7
>>> x
7
>>> x+7
14
>>> x = 'hello'
>>> x
'hello'
>>>
 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
12
print
Example: print Statement
>>> print 'hello'
hello
>>> print 'hello', 'there'
hello there
•Elements separated by
commas print with a space
between them
•A comma at the end of the
statement (print ‘hello’,)
will not print a newline
character
 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
14
input
Input: Example
print "What's your name?"
name = raw_input("> ")
print "What year were you born?"
birthyear = int(raw_input("> "))
print "Hi “, name, “!”, “You are “, 2016 – birthyear
% python input.py
What's your name?
> Michael
What year were you born?
>1980
Hi Michael! You are 31
Repetition (loops)
and Selection (if/else)
The for loop
26
 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
range
27
 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?
Cumulative loops
28
 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.
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."
29
2
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
1
Example of If Statements
import math
x = 30
if x <= 15 :
y = x + 15
elif x <= 30 :
y = x + 30
else :
y = x
print ‘y = ‘,
print math.sin(y)
In file ifstatement.py
>>> import ifstatement
y = 0.999911860107
>>>
In interpreter
23
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
While Loops
x = 1
while x < 10 :
print x
x = x + 1
>>> import whileloop
1
2
3
4
5
6
7
8
9
>>>
In whileloop.py
In interpreter
 Exercise: Write code to display and count the factors of a number.
25
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
Loop Control Statements
break Jumps out of the closest
enclosing loop
continue Jumps to the top of the closest
enclosing loop
pass Does nothing, empty statement
placeholder
More Examples For Loops
 Similar to perl for loops, iterating through a
list of values
for x in [1,7,13,2]:
print x forloop2.py
for x in range(5) :
print x
forloop1.py
%python forloop1.py
1
7
13
2
% python forloop2.py
0
1
2
3
4
range(N) generates a list of numbers [0,1, …, n-1]
More Data Types
Everything is an object
 Everything means
everything,
including functions
and classes (more
on this later!)
 Data type is a
property of the
object and not of
the variable
>>> x = 7
>>> x
7
>>> x = 'hello'
>>> x
'hello'
>>>
Numbers: Integers
 Integer – the
equivalent of a C long
 Long Integer – an
unbounded integer
value.
>>> 132224
132224
>>> 132323 **
2
17509376329L
>>>
Numbers: Floating Point
 int(x) converts x to
an integer
 float(x) converts x
to a floating point
 The interpreter
shows
a lot of digits
>>> 1.23232
1.2323200000000001
>>> print 1.23232
1.23232
>>> 1.3E7
13000000.0
>>> int(2.0)
2
>>> float(2)
2.0
Numbers: Complex
 Built into Python
 Same operations are
supported as integer
and float
>>> x = 3 + 2j
>>> y = -1j
>>> x + y
(3+1j)
>>> x * y
(2-3j)
String Literals
 + is overloaded to do
concatenation >>> x = 'hello'
>>> x = x + ' there'
>>> x
'hello there'
String Literals
 Can use single or double quotes, and
three double quotes for a multi-line
string
>>> 'I am a string'
'I am a string'
>>> "So am I!"
'So am I!'
Substrings and Methods
>>> s = '012345'
>>> s[3]
'3'
>>> s[1:4]
'123'
>>> s[2:]
'2345'
>>> s[:4]
'0123'
>>> s[-2]
'4'
•len(String) – returns the
number of characters in
the String
•str(Object) – returns a
String representation of
the Object
>>> len(x)
6
>>>
str(10.3)
'10.3'
String Formatting
 Similar to C’s printf
 <formatted string> % <elements to
insert>
 Can usually just use %s for everything,
it will convert the object to its String
representation.
>>> "One, %d, three" % 2
'One, 2, three'
>>> "%d, two, %s" % (1,3)
'1, two, 3'
>>> "%s two %s" % (1, 'three')
'1 two three'
>>>
Types for Data Collection
List, Set, and Dictionary
List
Unordered list
Ordered Pairs of values
Lists
 Ordered collection of
data
 Data can be of
different types
 Lists are mutable
 Issues with shared
references and
mutability
 Same subset
operations as Strings
>>> x = [1,'hello', (3 + 2j)]
>>> x
[1, 'hello', (3+2j)]
>>> x[2]
(3+2j)
>>> x[0:2]
[1, 'hello']
List Functions
 list.append(x)
 Add item at the end of the list.
 list.insert(i,x)
 Insert item at a given position.
 Similar to a[i:i]=[x]
 list.remove(x)
 Removes first item from the list with value x
 list.pop(i)
 Remove item at position I and return it. If no index I is given then
remove the first item in the list.
 list.index(x)
 Return the index in the list of the first item with value x.
 list.count(x)
 Return the number of time x appears in the list
 list.sort()
 Sorts items in the list in ascending order
 list.reverse()
 Reverses items in the list
Lists: Modifying Content
 x[i] = a reassigns
the ith element to the
value a
 Since x and y point to
the same list object,
both are changed
 The method append
also modifies the list
>>> x = [1,2,3]
>>> y = x
>>> x[1] = 15
>>> x
[1, 15, 3]
>>> y
[1, 15, 3]
>>> x.append(12)
>>> y
[1, 15, 3, 12]
Lists: Modifying Contents
 The method
append
modifies the list
and returns
None
 List addition
(+) returns a
new list
>>> x = [1,2,3]
>>> y = x
>>> z = x.append(12)
>>> z == None
True
>>> y
[1, 2, 3, 12]
>>> x = x + [9,10]
>>> x
[1, 2, 3, 12, 9, 10]
>>> y
[1, 2, 3, 12]
>>>
Using Lists as Stacks
 You can use a list as a stack
>>> a = ["a", "b", "c“,”d”]
>>> a
['a', 'b', 'c', 'd']
>>> a.append("e")
>>> a
['a', 'b', 'c', 'd', 'e']
>>> a.pop()
'e'
>>> a.pop()
'd'
>>> a = ["a", "b", "c"]
>>>
• An ordered sequence of items
• Immutable: i.e. tuples once created cannot be modified.
• It is defined within parentheses ()
• items are separated by commas.
• >>> t = (5,'program', 1+3j)
• We can use the slicing operator [] to extract items but we
cannot change its value.
• Tuples are used to store multiple items in a single variable.
• Tuple is one of 4 built-in data types in Python used to store
collections of data, the other 3 are List, Set, and Dictionary, all
with different qualities and usage.
• A tuple is a collection which is ordered and unchangeable.
•
Tuples
Tuples
 Tuples are immutable
versions of lists
 One strange point is
the format to make a
tuple with one
element:
‘,’ is needed to
differentiate from the
mathematical
expression (2)
>>> x = (1,2,3)
>>> x[1:]
(2, 3)
>>> y = (2,)
>>> y
(2,)
>>>
To create a tuple with only one item,
you have to add a comma after the
item, otherwise Python will not
recognize it as a tuple.
t = (5,'program', 1+3j)
# t[1] = 'program‘
print("t[1] = ", t[1])
# t[0:3] = (5, 'program', (1+3j))
print("t[0:3] = ", t[0:3])
# Generates error
# Tuples are immutable
t[0] = 10
Tuples
• Tuple items are ordered, unchangeable, and allow duplicate
values.
• Tuple items are indexed, the first item has index [0], the
second item has index [1] etc.
• To determine how many items a tuple
has, use the len() function
Tuples
Tuple items can be of any data type:
Example
String, int and boolean data types:
tuple1 = ("apple", "banana", "cherry")
tuple2 = (1, 5, 7, 9, 3)
tuple3 = (True, False, False)
A tuple with strings, integers and boolean values:
tuple1 = ("abc", 34, True, 40, "male")
Python Collections (Arrays)
There are four collection data types in the Python
programming language:
•List is a collection which is ordered and changeable.
Allows duplicate members.
•Tuple is a collection which is ordered and
unchangeable. Allows duplicate members.
•Set is a collection which is unordered, unchangeable*,
and unindexed. No duplicate members.
•Dictionary is a collection which is ordered** and
changeable. No duplicate members.
Sets
 A set is another python data structure that is an unordered
collection with no duplicates.
>>> setA=set(["a","b","c","d"])
>>> setB=set(["c","d","e","f"])
>>> "a" in setA
True
>>> "a" in setB
False
Sets
>>> setA - setB
{'a', 'b'}
>>> setA | setB
{'a', 'c', 'b', 'e', 'd', 'f'}
>>> setA & setB
{'c', 'd'}
>>> setA ^ setB
{'a', 'b', 'e', 'f'}
>>>
Dictionaries
 A set of key-value pairs
 Dictionaries are mutable
>>> d= {‘one’ : 1, 'two' : 2, ‘three’ : 3}
>>> d[‘three’]
3
Dictionaries: Add/Modify
>>> d
{1: 'hello', 'two': 42, 'blah': [1, 2, 3]}
>>> d['two'] = 99
>>> d
{1: 'hello', 'two': 99, 'blah': [1, 2, 3]}
>>> d[7] = 'new entry'
>>> d
{1: 'hello', 7: 'new entry', 'two': 99, 'blah': [1, 2, 3]}
 Entries can be changed by assigning to
that entry
• Assigning to a key that does not exist
adds an entry
Dictionaries: Deleting Elements
 The del method deletes an element from a
dictionary
>>> d
{1: 'hello', 2: 'there', 10: 'world'}
>>> del(d[2])
>>> d
{1: 'hello', 10: 'world'}
Iterating over a dictionary
>>>address={'Wayne': 'Young 678', 'John': 'Oakwood 345',
'Mary': 'Kingston 564'}
>>>for k in address.keys():
print(k,":", address[k])
Wayne : Young 678
John : Oakwood 345
Mary : Kingston 564
>>>
>>> for k in sorted(address.keys()):
print(k,":", address[k])
John : Oakwood 345
Mary : Kingston 564
Wayne : Young 678
>>>
Copying Dictionaries and Lists
 The built-in
list function
will copy a list
 The dictionary
has a method
called copy
>>> l1 = [1] >>> d = {1 : 10}
>>> l2 = list(l1) >>> d2 = d.copy()
>>> l1[0] = 22 >>> d[1] = 22
>>> l1 >>> d
[22] {1: 22}
>>> l2 >>> d2
[1] {1: 10}
Data Type Summary
Integers: 2323, 3234L
Floating Point: 32.3, 3.1E2
Complex: 3 + 2j, 1j
Lists: l = [ 1,2,3]
Tuples: t = (1,2,3)
Dictionaries: d = {‘hello’ : ‘there’, 2 : 15}
 Lists, Tuples, and Dictionaries can store
any type (including other lists, tuples,
and dictionaries!)
 Only lists and dictionaries are mutable
 All variables are references
Functions
Function Basics
def max(x,y) :
if x < y :
return x
else :
return y
>>> import functionbasics
>>> max(3,5)
5
>>> max('hello', 'there')
'there'
>>> max(3, 'hello')
'hello'
functionbasics.py
Functions are objects
 Can be assigned to a variable
 Can be passed as a parameter
 Can be returned from a function
• Functions are treated like any other
variable in Python, the def statement
simply assigns a function to a variable
Function names are like any
variable
 Functions are
objects
 The same
reference rules
hold for them as
for other objects
>>> x = 10
>>> x
10
>>> def x () :
... print 'hello'
>>> x
<function x at 0x619f0>
>>> x()
hello
>>> x = 'blah'
>>> x
'blah'
Functions as Parameters
def foo(f, a) :
return f(a)
def bar(x) :
return x * x
>>> from funcasparam import *
>>> foo(bar, 3)
9
Note that the function foo takes two
parameters and applies the first as a
function with the second as its
parameter
funcasparam.py
Higher-Order Functions
map(func,seq) – for all i, applies func(seq[i]) and returns the
corresponding sequence of the calculated results.
def double(x):
return 2*x
>>> from highorder import *
>>> lst = range(10)
>>> lst
[0,1,2,3,4,5,6,7,8,9]
>>> map(double,lst)
[0,2,4,6,8,10,12,14,16,18]
highorder
.py
Higher-Order Functions
filter(boolfunc,seq) – returns a sequence containing all those
items in seq for which boolfunc is True.
def even(x):
return ((x%2 ==
0)
>>> from highorder import *
>>> lst = range(10)
>>> lst
[0,1,2,3,4,5,6,7,8,9]
>>> filter(even,lst)
[0,2,4,6,8]
highorder
.py
Higher-Order Functions
reduce(func,seq) – applies func to the items of seq, from left
to right, two-at-time, to reduce the seq to a single value.
def plus(x,y):
return (x + y)
>>> from highorder import *
>>> lst = [‘h’,’e’,’l’,’l’,’o’]
>>> reduce(plus,lst)
‘hello’
highorder
.py
Functions Inside Functions
 Since they are like any other object, you
can have functions inside functions
def foo (x,y) :
def bar (z) :
return z * 2
return bar(x) + y
>>> from funcinfunc import *
>>> foo(2,3)
7
funcinfunc.py
Functions Returning Functions
def foo (x) :
def bar(y) :
return x + y
return bar
# main
f = foo(3)
print f
print f(2)
% python funcreturnfunc.py
<function bar at 0x612b0>
5
funcreturnfunc.py
Parameters: Defaults
 Parameters can be
assigned default
values
 They are
overridden if a
parameter is given
for them
 The type of the
default doesn’t
limit the type of a
parameter
>>> def foo(x = 3) :
... print x
...
>>> foo()
3
>>> foo(10)
10
>>> foo('hello')
hello
Parameters: Named
 Call by name
 Any positional
arguments
must come
before named
ones in a call
>>> def foo (a,b,c) :
... print a, b, c
...
>>> foo(c = 10, a = 2, b = 14)
2 14 10
>>> foo(3, c = 2, b = 19)
3 19 2
Anonymous Functions
 A lambda
expression
returns a
function object
 The body can
only be a simple
expression, not
complex
statements
>>> f = lambda x,y : x + y
>>> f(2,3)
5
>>> lst = ['one', lambda x : x * x, 3]
>>> lst[1](4)
16
Modules
 The highest level structure of Python
 Each file with the py suffix is a module
 Each module has its own namespace
Modules: Imports
import mymodule Brings all elements
of mymodule in, but
must refer to as
mymodule.<elem>
from mymodule import x Imports x from
mymodule right into
this namespace
from mymodule import * Imports all elements
of mymodule into
this namespace
Text and File Processing
 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.
81
 t
 n
 "
 
tab character
new line character
quotation mark character
backslash character
 Example: "HellottherenHow are you?"
Strings
Indexes
82
 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
String properties
83
 len(string) - number of characters in a string
(including spaces)
- lowercase version of a string
- uppercase version of a string
 str.lower(string)
 str.upper(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
 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!
84
raw_input
Text processing
85
 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
Strings and numbers
86
 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"
File processing
87
 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()
Line-by-line processing
88
 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.
Objects and Classes
Defining a Class
 Python program may own many objects
 An object is an item with fields supported by a set of method functions.
 An object can have several fields (or called attribute variables) describing
such an object
 These fields can be accessed or modified by object methods
 A class defines what objects look like and what functions can operate
on these object.
 Declaring a class:
class name:
statements
 Example:
class UCSBstudent:
age = 21
schoolname=‘UCSB’
Fields
name = value
 Example:
class Point:
x = 0
y = 0
# main
p1 = Point()
p1.x = 2
p1.y = -5
 can be declared directly inside class (as shown here)
or in constructors (more common)
 Python does not really have encapsulation or private fields
 relies on caller to "be nice" and not mess with objects' contents
point.py
1
2
3
class Point:
x = 0
y = 0
Using a Class
import class
 client programs must import the classes they use
point_main.py
1 from Point import *
2
3 # main
4 p1 = Point()
5 p1.x = 7
6 p1.y = -3
7
8 p2 = Point()
9 p2.x = 7
10 p2.y = 1
# Python objects are dynamic (can add fields any time!)
p1.name = "Tyler Durden"
Object Methods
def name(self, parameter, ..., parameter):
statements
 self must be the first parameter to any object method
 represents the "implicit parameter" (this in Java)
 must access the object's fields through the self reference
class Point:
def move(self, dx, dy):
self.x += dx
self.y += dy
Exercise Answer
point.py
1 from math import *
class Point:
x = 0
y = 0
def set_location(self, x, y):
self.x = x
self.y = y
def distance_from_origin(self):
return sqrt(self.x * self.x + self.y * self.y)
def distance(self, other):
dx = self.x - other.x
dy = self.y - other.y
return sqrt(dx * dx + dy * dy)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Calling Methods
 A client can call the methods of an object in two ways:
 (the value of self can be an implicit or explicit parameter)
1) object.method(parameters)
or
2) Class.method(object, parameters)
 Example:
p = Point(3, -4)
p.move(1, 5)
Point.move(p, 1, 5)
Constructors
def init (self, parameter, ..., parameter):
statements
 a constructor is a special method with the name init
 Example:
class Point:
def __init (self, x, y):
self.x = x
self.y = y
...
 How would we make it possible to construct a
Point() with no parameters to get (0, 0)?
toString and str
def str (self):
return string
 equivalent to Java's toString (converts object to a string)
 invoked automatically when str or print is called
Exercise: Write a str method for Point objects that returns strings
like "(3, -14)"
def str (self):
return "(" + str(self.x) + ", " + str(self.y) + ")"
Complete Point Class
point.py
1 from math import *
2
3 class Point:
4 def init (self, x, y):
5 self.x = x
6 self.y = y
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def distance_from_origin(self):
return sqrt(self.x * self.x + self.y * self.y)
def distance(self, other):
dx = self.x - other.x
dy = self.y - other.y
return sqrt(dx * dx + dy * dy)
def move(self, dx, dy):
self.x += dx
self.y += dy
def str (self):
return "(" + str(self.x) + ", " + str(self.y) + ")"
Operator Overloading
 operator overloading: You can define functions so that Python's
built-in operators can be used with your class.
 See also: http://docs.python.org/ref/customization.html
Operator Class Method
- neg (self, other)
+ pos (self, other)
* mul (self, other)
/ truediv (self, other)
Unary Operators
- neg (self)
+ pos (self)
Operator Class Method
== eq (self, other)
!= ne (self, other)
< lt (self, other)
> gt (self, other)
<= le (self, other)
>= ge (self, other)
Generating Exceptions
raise ExceptionType("message")
 useful when the client uses your object improperly
 types: ArithmeticError, AssertionError, IndexError,
NameError, SyntaxError, TypeError, ValueError
 Example:
class BankAccount:
...
def deposit(self, amount):
if amount < 0:
raise ValueError("negative amount")
...
Inheritance
class name(superclass):
statements
 Example:
class Point3D(Point):
z = 0
...
# Point3D extends Point
 Python also supports multiple inheritance
class name(superclass, ..., superclass):
statements
(if > 1 superclass has the same field/method, conflicts are resolved in left-to-right order)
Calling Superclass Methods
 methods:
 constructors:
class.method(object, parameters)
class. init (parameters)
class Point3D(Point):
z = 0
def __init (self, x, y, z):
Point. init (self, x, y)
self.z = z
def move(self, dx, dy, dz):
Point.move(self, dx, dy)
self.z += dz

Más contenido relacionado

Similar a lecture 2.pptx

python-online&offline-training-in-kphb-hyderabad (1) (1).pdf
python-online&offline-training-in-kphb-hyderabad (1) (1).pdfpython-online&offline-training-in-kphb-hyderabad (1) (1).pdf
python-online&offline-training-in-kphb-hyderabad (1) (1).pdfKosmikTech1
 
Bikalpa_Thapa_Python_Programming_(Basics).pptx
Bikalpa_Thapa_Python_Programming_(Basics).pptxBikalpa_Thapa_Python_Programming_(Basics).pptx
Bikalpa_Thapa_Python_Programming_(Basics).pptxBikalpa Thapa
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...DRVaibhavmeshram1
 
introduction to python in english presentation file
introduction to python in english presentation fileintroduction to python in english presentation file
introduction to python in english presentation fileRujanTimsina1
 
Notes1
Notes1Notes1
Notes1hccit
 
PART - 1 Python Introduction- Variables- Data types - Numeric- String- Boole...
PART - 1  Python Introduction- Variables- Data types - Numeric- String- Boole...PART - 1  Python Introduction- Variables- Data types - Numeric- String- Boole...
PART - 1 Python Introduction- Variables- Data types - Numeric- String- Boole...manikamr074
 
02a fundamental c++ types, arithmetic
02a   fundamental c++ types, arithmetic 02a   fundamental c++ types, arithmetic
02a fundamental c++ types, arithmetic Manzoor ALam
 
Programming in C by SONU KUMAR.pptx
Programming in C by SONU KUMAR.pptxProgramming in C by SONU KUMAR.pptx
Programming in C by SONU KUMAR.pptxSONU KUMAR
 
Introduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLIntroduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLVijaySharma802
 

Similar a lecture 2.pptx (20)

C notes for exam preparation
C notes for exam preparationC notes for exam preparation
C notes for exam preparation
 
Spsl iv unit final
Spsl iv unit  finalSpsl iv unit  final
Spsl iv unit final
 
Spsl iv unit final
Spsl iv unit  finalSpsl iv unit  final
Spsl iv unit final
 
python-online&offline-training-in-kphb-hyderabad (1) (1).pdf
python-online&offline-training-in-kphb-hyderabad (1) (1).pdfpython-online&offline-training-in-kphb-hyderabad (1) (1).pdf
python-online&offline-training-in-kphb-hyderabad (1) (1).pdf
 
Python fundamentals
Python fundamentalsPython fundamentals
Python fundamentals
 
Bikalpa_Thapa_Python_Programming_(Basics).pptx
Bikalpa_Thapa_Python_Programming_(Basics).pptxBikalpa_Thapa_Python_Programming_(Basics).pptx
Bikalpa_Thapa_Python_Programming_(Basics).pptx
 
Python basics
Python basicsPython basics
Python basics
 
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
Introduction to Python 01-08-2023.pon by everyone else. . Hence, they must be...
 
Python 3.pptx
Python 3.pptxPython 3.pptx
Python 3.pptx
 
introduction to python in english presentation file
introduction to python in english presentation fileintroduction to python in english presentation file
introduction to python in english presentation file
 
Notes1
Notes1Notes1
Notes1
 
Unit2 input output
Unit2 input outputUnit2 input output
Unit2 input output
 
3 algorithm-and-flowchart
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchart
 
PART - 1 Python Introduction- Variables- Data types - Numeric- String- Boole...
PART - 1  Python Introduction- Variables- Data types - Numeric- String- Boole...PART - 1  Python Introduction- Variables- Data types - Numeric- String- Boole...
PART - 1 Python Introduction- Variables- Data types - Numeric- String- Boole...
 
02a fundamental c++ types, arithmetic
02a   fundamental c++ types, arithmetic 02a   fundamental c++ types, arithmetic
02a fundamental c++ types, arithmetic
 
Python
PythonPython
Python
 
Python Scipy Numpy
Python Scipy NumpyPython Scipy Numpy
Python Scipy Numpy
 
Programming in C by SONU KUMAR.pptx
Programming in C by SONU KUMAR.pptxProgramming in C by SONU KUMAR.pptx
Programming in C by SONU KUMAR.pptx
 
C++ lecture 01
C++   lecture 01C++   lecture 01
C++ lecture 01
 
Introduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLIntroduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIML
 

Más de Anonymous9etQKwW

os distributed system theoretical foundation
os distributed system theoretical foundationos distributed system theoretical foundation
os distributed system theoretical foundationAnonymous9etQKwW
 
osi model computer networks complete detail
osi model computer networks complete detailosi model computer networks complete detail
osi model computer networks complete detailAnonymous9etQKwW
 
IntroductoryPPT_CSE242.pptx
IntroductoryPPT_CSE242.pptxIntroductoryPPT_CSE242.pptx
IntroductoryPPT_CSE242.pptxAnonymous9etQKwW
 
Big Data & Analytics (CSE6005) L6.pptx
Big Data & Analytics (CSE6005) L6.pptxBig Data & Analytics (CSE6005) L6.pptx
Big Data & Analytics (CSE6005) L6.pptxAnonymous9etQKwW
 
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.ppt
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.pptArtificial Neural Networks_Bioinsspired_Algorithms_Nov 20.ppt
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.pptAnonymous9etQKwW
 

Más de Anonymous9etQKwW (11)

os distributed system theoretical foundation
os distributed system theoretical foundationos distributed system theoretical foundation
os distributed system theoretical foundation
 
osi model computer networks complete detail
osi model computer networks complete detailosi model computer networks complete detail
osi model computer networks complete detail
 
CODch3Slides.ppt
CODch3Slides.pptCODch3Slides.ppt
CODch3Slides.ppt
 
IntroductoryPPT_CSE242.pptx
IntroductoryPPT_CSE242.pptxIntroductoryPPT_CSE242.pptx
IntroductoryPPT_CSE242.pptx
 
Intro.ppt
Intro.pptIntro.ppt
Intro.ppt
 
Big Data & Analytics (CSE6005) L6.pptx
Big Data & Analytics (CSE6005) L6.pptxBig Data & Analytics (CSE6005) L6.pptx
Big Data & Analytics (CSE6005) L6.pptx
 
Lecture 2 Hadoop.pptx
Lecture 2 Hadoop.pptxLecture 2 Hadoop.pptx
Lecture 2 Hadoop.pptx
 
mapreduceApril24.ppt
mapreduceApril24.pptmapreduceApril24.ppt
mapreduceApril24.ppt
 
ch7.ppt
ch7.pptch7.ppt
ch7.ppt
 
Chap 4.ppt
Chap 4.pptChap 4.ppt
Chap 4.ppt
 
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.ppt
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.pptArtificial Neural Networks_Bioinsspired_Algorithms_Nov 20.ppt
Artificial Neural Networks_Bioinsspired_Algorithms_Nov 20.ppt
 

Último

result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 

Último (20)

result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 

lecture 2.pptx

  • 1. Introduction to Programming with Python Akhilesh Kumar Singh
  • 2. Python 2 Python is a general purpose programming language that is often applied in scripting roles. So, Python is programming language as well as scripting language. Python is also called as Interpreted language A program is executed (i.e. the source is first compiled, and the result of that compilation is expected) A "program" in general, is a sequence of instructions written so that a computer can perform certain task. A script is interpreted A "script" is code written in a scripting language. A scripting language is nothing but a type of programming language in which we can write code to control another software application.
  • 3.  code or source code: The sequence of instructions in a program.  syntax: The set of legal structures and commands that can be used in a particular programming language.  output: The messages printed to the user by a program.  console: The text box onto which output is printed.  Some source code editors pop up the console as an external window, and others contain their own console window. Programming basics 3
  • 4. Compiling and interpreting  Many languages require you to compile (translate) your program into a form that the machine understands. compile execute  Python is instead directly interpreted into machine instructions. interpret output source code Hello.java byte code Hello.class output source code Hello.py 4
  • 5. The Python Interpreter •Python is an interpreted language •The interpreter provides an interactive environment to play with the language •Results of expressions are printed on the screen >>> 3 + 7 10 >>> 3 < 15 True >>> 'print me' 'print me' >>> print 'print me' print me >>>
  • 6. Why do people use Python…? •Python is an interpreted language •The interpreter provides an interactive environment to play with the language •Results of expressions are printed on the screen >>> 3 + 7 10 >>> 3 < 15 True >>> 'print me' 'print me' >>> print 'print me' print me >>>
  • 7. Why do people use Python…? The following primary factors cited by Python users seem to be these: Python is object-oriented Structure supports such concepts as polymorphism, operation overloading, and multiple inheritance. Indentation Indentation is one of the greatest feature in python. It's free (open source) Downloading and installing Python is free and easy Source code is easily accessible
  • 8. A comparison of C & Python to understand indentation better.
  • 9. Why do people use Python…? It's powerful - Dynamic typing - Built-in types and tools - Library utilities - Third party utilities (e.g. Numeric, NumPy, SciPy) -Automatic memory management It's portable - Python runs virtually every major platform used today -As long as you have a compatible Python interpreter installed, Python programs will run in exactly the same manner, irrespective of platform.
  • 10. Why do people use Python…? It's mixable - Python can be linked to components written in other languageseasily - Linking to fast, compiled code is useful to computationally intensive problems. - Python/C integration is quite common It's easy to use - No intermediate compile and link steps as in C/ C++ - Python programs are compiled automatically to an intermediate form called bytecode, which the interpreter then reads - This gives Python the development speed of an interpreter without the performance loss inherent in purely interpreted languages It's easy to learn - Structure and syntax are pretty intuitive and easy to grasp
  • 11. What can I do with Python ? • System programming • Graphical User Interface Programming Internet Scripting • Component Integration Database Program • Gaming, Images, XML , Robot and more
  • 13. Expressions 1  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
  • 14. Integer division 1  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 4 ) 14 12 2 43 5 ) 218 20 18 15 3
  • 15. Real numbers 1  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
  • 16. TYPE CONVERSIONS (CAST) 1 • can convert object of one type to another • float(3) converts integer 3 to float 3.0 • int(3.9) truncates float 3.9 to integer 3
  • 17. 8 Math commands  Python has useful commands (or called functions) for performing calculations.  To use many of these commands, you must write the following at the top of your Python program: from math import * 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...
  • 18. Numbers: Floating Point  int(x) converts x to an integer  float(x) converts x to a floating point  The interpreter shows a lot of digits >>> 1.23232 1.2323200000000001 >>> print 1.23232 1.23232 >>> 1.3E7 13000000.0 >>> int(2.0) 2 >>> float(2) 2.0
  • 19.  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. 10 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
  • 20. Example >>> x = 7 >>> x 7 >>> x+7 14 >>> x = 'hello' >>> x 'hello' >>>
  • 21.  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 12 print
  • 22. Example: print Statement >>> print 'hello' hello >>> print 'hello', 'there' hello there •Elements separated by commas print with a space between them •A comma at the end of the statement (print ‘hello’,) will not print a newline character
  • 23.  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 14 input
  • 24. Input: Example print "What's your name?" name = raw_input("> ") print "What year were you born?" birthyear = int(raw_input("> ")) print "Hi “, name, “!”, “You are “, 2016 – birthyear % python input.py What's your name? > Michael What year were you born? >1980 Hi Michael! You are 31
  • 26. The for loop 26  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 27  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 28  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." 29
  • 30. 2 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 1
  • 31. Example of If Statements import math x = 30 if x <= 15 : y = x + 15 elif x <= 30 : y = x + 30 else : y = x print ‘y = ‘, print math.sin(y) In file ifstatement.py >>> import ifstatement y = 0.999911860107 >>> In interpreter
  • 32. 23 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
  • 33. While Loops x = 1 while x < 10 : print x x = x + 1 >>> import whileloop 1 2 3 4 5 6 7 8 9 >>> In whileloop.py In interpreter
  • 34.  Exercise: Write code to display and count the factors of a number. 25 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
  • 35. Loop Control Statements break Jumps out of the closest enclosing loop continue Jumps to the top of the closest enclosing loop pass Does nothing, empty statement placeholder
  • 36. More Examples For Loops  Similar to perl for loops, iterating through a list of values for x in [1,7,13,2]: print x forloop2.py for x in range(5) : print x forloop1.py %python forloop1.py 1 7 13 2 % python forloop2.py 0 1 2 3 4 range(N) generates a list of numbers [0,1, …, n-1]
  • 38. Everything is an object  Everything means everything, including functions and classes (more on this later!)  Data type is a property of the object and not of the variable >>> x = 7 >>> x 7 >>> x = 'hello' >>> x 'hello' >>>
  • 39. Numbers: Integers  Integer – the equivalent of a C long  Long Integer – an unbounded integer value. >>> 132224 132224 >>> 132323 ** 2 17509376329L >>>
  • 40. Numbers: Floating Point  int(x) converts x to an integer  float(x) converts x to a floating point  The interpreter shows a lot of digits >>> 1.23232 1.2323200000000001 >>> print 1.23232 1.23232 >>> 1.3E7 13000000.0 >>> int(2.0) 2 >>> float(2) 2.0
  • 41. Numbers: Complex  Built into Python  Same operations are supported as integer and float >>> x = 3 + 2j >>> y = -1j >>> x + y (3+1j) >>> x * y (2-3j)
  • 42. String Literals  + is overloaded to do concatenation >>> x = 'hello' >>> x = x + ' there' >>> x 'hello there'
  • 43. String Literals  Can use single or double quotes, and three double quotes for a multi-line string >>> 'I am a string' 'I am a string' >>> "So am I!" 'So am I!'
  • 44. Substrings and Methods >>> s = '012345' >>> s[3] '3' >>> s[1:4] '123' >>> s[2:] '2345' >>> s[:4] '0123' >>> s[-2] '4' •len(String) – returns the number of characters in the String •str(Object) – returns a String representation of the Object >>> len(x) 6 >>> str(10.3) '10.3'
  • 45. String Formatting  Similar to C’s printf  <formatted string> % <elements to insert>  Can usually just use %s for everything, it will convert the object to its String representation. >>> "One, %d, three" % 2 'One, 2, three' >>> "%d, two, %s" % (1,3) '1, two, 3' >>> "%s two %s" % (1, 'three') '1 two three' >>>
  • 46. Types for Data Collection List, Set, and Dictionary List Unordered list Ordered Pairs of values
  • 47. Lists  Ordered collection of data  Data can be of different types  Lists are mutable  Issues with shared references and mutability  Same subset operations as Strings >>> x = [1,'hello', (3 + 2j)] >>> x [1, 'hello', (3+2j)] >>> x[2] (3+2j) >>> x[0:2] [1, 'hello']
  • 48. List Functions  list.append(x)  Add item at the end of the list.  list.insert(i,x)  Insert item at a given position.  Similar to a[i:i]=[x]  list.remove(x)  Removes first item from the list with value x  list.pop(i)  Remove item at position I and return it. If no index I is given then remove the first item in the list.  list.index(x)  Return the index in the list of the first item with value x.  list.count(x)  Return the number of time x appears in the list  list.sort()  Sorts items in the list in ascending order  list.reverse()  Reverses items in the list
  • 49. Lists: Modifying Content  x[i] = a reassigns the ith element to the value a  Since x and y point to the same list object, both are changed  The method append also modifies the list >>> x = [1,2,3] >>> y = x >>> x[1] = 15 >>> x [1, 15, 3] >>> y [1, 15, 3] >>> x.append(12) >>> y [1, 15, 3, 12]
  • 50. Lists: Modifying Contents  The method append modifies the list and returns None  List addition (+) returns a new list >>> x = [1,2,3] >>> y = x >>> z = x.append(12) >>> z == None True >>> y [1, 2, 3, 12] >>> x = x + [9,10] >>> x [1, 2, 3, 12, 9, 10] >>> y [1, 2, 3, 12] >>>
  • 51. Using Lists as Stacks  You can use a list as a stack >>> a = ["a", "b", "c“,”d”] >>> a ['a', 'b', 'c', 'd'] >>> a.append("e") >>> a ['a', 'b', 'c', 'd', 'e'] >>> a.pop() 'e' >>> a.pop() 'd' >>> a = ["a", "b", "c"] >>>
  • 52. • An ordered sequence of items • Immutable: i.e. tuples once created cannot be modified. • It is defined within parentheses () • items are separated by commas. • >>> t = (5,'program', 1+3j) • We can use the slicing operator [] to extract items but we cannot change its value. • Tuples are used to store multiple items in a single variable. • Tuple is one of 4 built-in data types in Python used to store collections of data, the other 3 are List, Set, and Dictionary, all with different qualities and usage. • A tuple is a collection which is ordered and unchangeable. • Tuples
  • 53. Tuples  Tuples are immutable versions of lists  One strange point is the format to make a tuple with one element: ‘,’ is needed to differentiate from the mathematical expression (2) >>> x = (1,2,3) >>> x[1:] (2, 3) >>> y = (2,) >>> y (2,) >>> To create a tuple with only one item, you have to add a comma after the item, otherwise Python will not recognize it as a tuple.
  • 54. t = (5,'program', 1+3j) # t[1] = 'program‘ print("t[1] = ", t[1]) # t[0:3] = (5, 'program', (1+3j)) print("t[0:3] = ", t[0:3]) # Generates error # Tuples are immutable t[0] = 10 Tuples • Tuple items are ordered, unchangeable, and allow duplicate values. • Tuple items are indexed, the first item has index [0], the second item has index [1] etc. • To determine how many items a tuple has, use the len() function
  • 55. Tuples Tuple items can be of any data type: Example String, int and boolean data types: tuple1 = ("apple", "banana", "cherry") tuple2 = (1, 5, 7, 9, 3) tuple3 = (True, False, False) A tuple with strings, integers and boolean values: tuple1 = ("abc", 34, True, 40, "male")
  • 56. Python Collections (Arrays) There are four collection data types in the Python programming language: •List is a collection which is ordered and changeable. Allows duplicate members. •Tuple is a collection which is ordered and unchangeable. Allows duplicate members. •Set is a collection which is unordered, unchangeable*, and unindexed. No duplicate members. •Dictionary is a collection which is ordered** and changeable. No duplicate members.
  • 57. Sets  A set is another python data structure that is an unordered collection with no duplicates. >>> setA=set(["a","b","c","d"]) >>> setB=set(["c","d","e","f"]) >>> "a" in setA True >>> "a" in setB False
  • 58. Sets >>> setA - setB {'a', 'b'} >>> setA | setB {'a', 'c', 'b', 'e', 'd', 'f'} >>> setA & setB {'c', 'd'} >>> setA ^ setB {'a', 'b', 'e', 'f'} >>>
  • 59. Dictionaries  A set of key-value pairs  Dictionaries are mutable >>> d= {‘one’ : 1, 'two' : 2, ‘three’ : 3} >>> d[‘three’] 3
  • 60. Dictionaries: Add/Modify >>> d {1: 'hello', 'two': 42, 'blah': [1, 2, 3]} >>> d['two'] = 99 >>> d {1: 'hello', 'two': 99, 'blah': [1, 2, 3]} >>> d[7] = 'new entry' >>> d {1: 'hello', 7: 'new entry', 'two': 99, 'blah': [1, 2, 3]}  Entries can be changed by assigning to that entry • Assigning to a key that does not exist adds an entry
  • 61. Dictionaries: Deleting Elements  The del method deletes an element from a dictionary >>> d {1: 'hello', 2: 'there', 10: 'world'} >>> del(d[2]) >>> d {1: 'hello', 10: 'world'}
  • 62. Iterating over a dictionary >>>address={'Wayne': 'Young 678', 'John': 'Oakwood 345', 'Mary': 'Kingston 564'} >>>for k in address.keys(): print(k,":", address[k]) Wayne : Young 678 John : Oakwood 345 Mary : Kingston 564 >>> >>> for k in sorted(address.keys()): print(k,":", address[k]) John : Oakwood 345 Mary : Kingston 564 Wayne : Young 678 >>>
  • 63. Copying Dictionaries and Lists  The built-in list function will copy a list  The dictionary has a method called copy >>> l1 = [1] >>> d = {1 : 10} >>> l2 = list(l1) >>> d2 = d.copy() >>> l1[0] = 22 >>> d[1] = 22 >>> l1 >>> d [22] {1: 22} >>> l2 >>> d2 [1] {1: 10}
  • 64. Data Type Summary Integers: 2323, 3234L Floating Point: 32.3, 3.1E2 Complex: 3 + 2j, 1j Lists: l = [ 1,2,3] Tuples: t = (1,2,3) Dictionaries: d = {‘hello’ : ‘there’, 2 : 15}  Lists, Tuples, and Dictionaries can store any type (including other lists, tuples, and dictionaries!)  Only lists and dictionaries are mutable  All variables are references
  • 66. Function Basics def max(x,y) : if x < y : return x else : return y >>> import functionbasics >>> max(3,5) 5 >>> max('hello', 'there') 'there' >>> max(3, 'hello') 'hello' functionbasics.py
  • 67. Functions are objects  Can be assigned to a variable  Can be passed as a parameter  Can be returned from a function • Functions are treated like any other variable in Python, the def statement simply assigns a function to a variable
  • 68. Function names are like any variable  Functions are objects  The same reference rules hold for them as for other objects >>> x = 10 >>> x 10 >>> def x () : ... print 'hello' >>> x <function x at 0x619f0> >>> x() hello >>> x = 'blah' >>> x 'blah'
  • 69. Functions as Parameters def foo(f, a) : return f(a) def bar(x) : return x * x >>> from funcasparam import * >>> foo(bar, 3) 9 Note that the function foo takes two parameters and applies the first as a function with the second as its parameter funcasparam.py
  • 70. Higher-Order Functions map(func,seq) – for all i, applies func(seq[i]) and returns the corresponding sequence of the calculated results. def double(x): return 2*x >>> from highorder import * >>> lst = range(10) >>> lst [0,1,2,3,4,5,6,7,8,9] >>> map(double,lst) [0,2,4,6,8,10,12,14,16,18] highorder .py
  • 71. Higher-Order Functions filter(boolfunc,seq) – returns a sequence containing all those items in seq for which boolfunc is True. def even(x): return ((x%2 == 0) >>> from highorder import * >>> lst = range(10) >>> lst [0,1,2,3,4,5,6,7,8,9] >>> filter(even,lst) [0,2,4,6,8] highorder .py
  • 72. Higher-Order Functions reduce(func,seq) – applies func to the items of seq, from left to right, two-at-time, to reduce the seq to a single value. def plus(x,y): return (x + y) >>> from highorder import * >>> lst = [‘h’,’e’,’l’,’l’,’o’] >>> reduce(plus,lst) ‘hello’ highorder .py
  • 73. Functions Inside Functions  Since they are like any other object, you can have functions inside functions def foo (x,y) : def bar (z) : return z * 2 return bar(x) + y >>> from funcinfunc import * >>> foo(2,3) 7 funcinfunc.py
  • 74. Functions Returning Functions def foo (x) : def bar(y) : return x + y return bar # main f = foo(3) print f print f(2) % python funcreturnfunc.py <function bar at 0x612b0> 5 funcreturnfunc.py
  • 75. Parameters: Defaults  Parameters can be assigned default values  They are overridden if a parameter is given for them  The type of the default doesn’t limit the type of a parameter >>> def foo(x = 3) : ... print x ... >>> foo() 3 >>> foo(10) 10 >>> foo('hello') hello
  • 76. Parameters: Named  Call by name  Any positional arguments must come before named ones in a call >>> def foo (a,b,c) : ... print a, b, c ... >>> foo(c = 10, a = 2, b = 14) 2 14 10 >>> foo(3, c = 2, b = 19) 3 19 2
  • 77. Anonymous Functions  A lambda expression returns a function object  The body can only be a simple expression, not complex statements >>> f = lambda x,y : x + y >>> f(2,3) 5 >>> lst = ['one', lambda x : x * x, 3] >>> lst[1](4) 16
  • 78. Modules  The highest level structure of Python  Each file with the py suffix is a module  Each module has its own namespace
  • 79. Modules: Imports import mymodule Brings all elements of mymodule in, but must refer to as mymodule.<elem> from mymodule import x Imports x from mymodule right into this namespace from mymodule import * Imports all elements of mymodule into this namespace
  • 80. Text and File Processing
  • 81.  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. 81  t  n  "  tab character new line character quotation mark character backslash character  Example: "HellottherenHow are you?" Strings
  • 82. Indexes 82  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
  • 83. String properties 83  len(string) - number of characters in a string (including spaces) - lowercase version of a string - uppercase version of a string  str.lower(string)  str.upper(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
  • 84.  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! 84 raw_input
  • 85. Text processing 85  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
  • 86. Strings and numbers 86  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"
  • 87. File processing 87  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()
  • 88. Line-by-line processing 88  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.
  • 90. Defining a Class  Python program may own many objects  An object is an item with fields supported by a set of method functions.  An object can have several fields (or called attribute variables) describing such an object  These fields can be accessed or modified by object methods  A class defines what objects look like and what functions can operate on these object.  Declaring a class: class name: statements  Example: class UCSBstudent: age = 21 schoolname=‘UCSB’
  • 91. Fields name = value  Example: class Point: x = 0 y = 0 # main p1 = Point() p1.x = 2 p1.y = -5  can be declared directly inside class (as shown here) or in constructors (more common)  Python does not really have encapsulation or private fields  relies on caller to "be nice" and not mess with objects' contents point.py 1 2 3 class Point: x = 0 y = 0
  • 92. Using a Class import class  client programs must import the classes they use point_main.py 1 from Point import * 2 3 # main 4 p1 = Point() 5 p1.x = 7 6 p1.y = -3 7 8 p2 = Point() 9 p2.x = 7 10 p2.y = 1 # Python objects are dynamic (can add fields any time!) p1.name = "Tyler Durden"
  • 93. Object Methods def name(self, parameter, ..., parameter): statements  self must be the first parameter to any object method  represents the "implicit parameter" (this in Java)  must access the object's fields through the self reference class Point: def move(self, dx, dy): self.x += dx self.y += dy
  • 94. Exercise Answer point.py 1 from math import * class Point: x = 0 y = 0 def set_location(self, x, y): self.x = x self.y = y def distance_from_origin(self): return sqrt(self.x * self.x + self.y * self.y) def distance(self, other): dx = self.x - other.x dy = self.y - other.y return sqrt(dx * dx + dy * dy) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  • 95. Calling Methods  A client can call the methods of an object in two ways:  (the value of self can be an implicit or explicit parameter) 1) object.method(parameters) or 2) Class.method(object, parameters)  Example: p = Point(3, -4) p.move(1, 5) Point.move(p, 1, 5)
  • 96. Constructors def init (self, parameter, ..., parameter): statements  a constructor is a special method with the name init  Example: class Point: def __init (self, x, y): self.x = x self.y = y ...  How would we make it possible to construct a Point() with no parameters to get (0, 0)?
  • 97. toString and str def str (self): return string  equivalent to Java's toString (converts object to a string)  invoked automatically when str or print is called Exercise: Write a str method for Point objects that returns strings like "(3, -14)" def str (self): return "(" + str(self.x) + ", " + str(self.y) + ")"
  • 98. Complete Point Class point.py 1 from math import * 2 3 class Point: 4 def init (self, x, y): 5 self.x = x 6 self.y = y 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def distance_from_origin(self): return sqrt(self.x * self.x + self.y * self.y) def distance(self, other): dx = self.x - other.x dy = self.y - other.y return sqrt(dx * dx + dy * dy) def move(self, dx, dy): self.x += dx self.y += dy def str (self): return "(" + str(self.x) + ", " + str(self.y) + ")"
  • 99. Operator Overloading  operator overloading: You can define functions so that Python's built-in operators can be used with your class.  See also: http://docs.python.org/ref/customization.html Operator Class Method - neg (self, other) + pos (self, other) * mul (self, other) / truediv (self, other) Unary Operators - neg (self) + pos (self) Operator Class Method == eq (self, other) != ne (self, other) < lt (self, other) > gt (self, other) <= le (self, other) >= ge (self, other)
  • 100. Generating Exceptions raise ExceptionType("message")  useful when the client uses your object improperly  types: ArithmeticError, AssertionError, IndexError, NameError, SyntaxError, TypeError, ValueError  Example: class BankAccount: ... def deposit(self, amount): if amount < 0: raise ValueError("negative amount") ...
  • 101. Inheritance class name(superclass): statements  Example: class Point3D(Point): z = 0 ... # Point3D extends Point  Python also supports multiple inheritance class name(superclass, ..., superclass): statements (if > 1 superclass has the same field/method, conflicts are resolved in left-to-right order)
  • 102. Calling Superclass Methods  methods:  constructors: class.method(object, parameters) class. init (parameters) class Point3D(Point): z = 0 def __init (self, x, y, z): Point. init (self, x, y) self.z = z def move(self, dx, dy, dz): Point.move(self, dx, dy) self.z += dz