This document provides an overview of key concepts in programming and Python. It defines terms like code, syntax, output, console, compiling, interpreting, and variables. It explains Python as an interpreted language and shows examples of printing output, taking user input, performing calculations with numbers and math commands, using variables, and basic control structures like if/else and loops. It also covers data types like integers, floats, strings, lists, and how to modify and format them.
A link directing to the full course is provided: https://oke.io/JdxdUl.
Definitions for terms such as code (instructions in a program), syntax (legal structures in a language), output (messages from a program), and console (output display area).
Explains compiling (translation to machine understood form) versus interpreting (direct execution, as seen in Python). Example of Java (compiled) vs Python (interpreted).
Overview of Python as an interpreted language and examples of interactive expressions within the Python interpreter.
Defines expressions as data values or operations. Lists arithmetic operators, their precedence, and how parentheses affect evaluation.
Integer division is explained with examples. Discussion on the modulus operator for computing remainders.
Python handles real numbers and introduces operations, precedence, and type conversion between integers and floats.
Introduces useful math commands in Python, such as absolute value, cosine, floor, logarithm, maximum, minimum, rounding, sine, and square root.
Shows how to convert between integer and floating point types with examples illustrating precision and representation in Python.
Explains variables as memory locations that store values, usage in computations, assignment, and examples of variable creation in Python.
Provides a simple interaction example showing variable assignment and value retrieval through the Python shell.
Describes the print statement for generating console output, syntax, and examples showcasing output on multiple lines.
Demonstrates how the print statement in Python can concatenate elements with spaces and suppress new lines using a trailing comma.
Illustrates the input function and its application in storing user input into a variable and printing outputs based on user data.
Example demonstrates how to read user input (name and birth year), manipulate it, and output personalized statements.
Introduces control structures including loops (for/while) and conditionals (if/else) to manage flow based on conditions.
Defines the for loop, illustrates syntax, and shows an example of its operation with a range of values.
Explains the range function for generating sequences of integers with examples demonstrating counting down.
Describes loops that compute cumulative values, such as a sum, with an example calculating the sum of the first 10 squares.
Outlines the if statement for conditional execution of code blocks based on truthiness of conditions.
Explains if/else statements including chaining conditions with elif to manage multiple pathways.
Presents a coding example demonstrating the use of if statements and condition checks.
Defines the while loop for executing a block of code while a condition holds true, including an example of doubling a number.
A repeat of the course resource link: https://oke.io/JdxdUl.
Practical example of a while loop that counts and prints numbers under a threshold.
Covers relational and logical operators used in constructing logical expressions for conditional statements.
Describes loop control statements, such as break (exiting a loop) and continue (skipping to the next iteration).
Further examines iteration through lists using for loops, highlighting their similarities to Perl loops.
Discusses Python's object-oriented nature, defining everything as an object, including data types.
Representations of integer and long integers in Python, showing examples and differences in size.
Conversion between int and float, explaining floating-point representation in Python.
Introduces complex numbers, examples of arithmetic operations on them, highlighting Python's capabilities.
Details on string manipulation, concatenation, and usage of single, double, and multi-line string formats.
Examines substring access and common string methods like length, indexing, and slicing.
Describes string formatting methods resembling C's printf, using placeholders for variables.
Categorizes data types in Python including lists, sets, and dictionaries and their distinguishing features.
Explains lists as ordered and mutable collections, allowing for mixed data types and slice operations.
Enumerates common list functions including add, remove, index, and sort functionalities.
Discusses methods for modifying content in lists, including reassignment and list addition.
Explains how to use lists as stacks, demonstrating typical stack operations like push and pop.
Introduces tuples as immutable sequences, with methods to create single-element tuples.
Describes sets as unordered collections without duplicates and demonstrates basic operations.
Illustrates set operations such as union, intersection, and difference with examples.
Defines dictionaries as mutable structures of key-value pairs with example declarations.
Demonstrates adding/modifying entries in dictionaries and shows how to handle missing keys.
Explains how to delete elements from dictionaries using the del method.
Examples of iterating keys in a dictionary, allowing access and print formatting of key-value pairs.
Demonstrates techniques to copy lists and dictionaries to prevent unintended modifications.
Summarizes Python's core data types including integers, floats, complex numbers, lists, tuples, and dictionaries.
Introduction to functions in Python as a way to encapsulate reusable code with parameters.
Shows syntax for defining functions, using examples of parameters and return values.
Explains how functions in Python can be treated like objects, being passed around and assigned.
Explores function naming conventions, demonstrating functions as variables and their scope.
Explains how functions can accept other functions as parameters, illustrated by a sample function example.
Introduces higher-order functions in Python, such as map, with examples to transform lists.
Covers the filter function, enabling filtering of lists based on boolean conditions defined in passed functions.
Discusses the reduce function for aggregating lists into a single value by applying a callable.
Defines nested functions as functions defined inside another, using examples for clarity.
Describes how to create functions that return other functions, enabling dynamic behavior.
Explains how to set default values for parameters in functions, overriding only when provided.
Introduces named parameters allowing flexibility in passing arguments, irrespective of their order.
Defines anonymous functions using lambda expressions, suitable for concise function definitions.
Explains modules as files containing Python code, providing a namespace for organized code structure.
Covers the process of importing modules in Python to access their components and functionalities.
Describes basic string characteristics, illustrating how to define and manipulate strings in Python.
Demonstrates accessing string characters using indexes, with examples showing string manipulation.
Discusses string functions including length, case modifications, and user input capabilities.
Shows how to read strings from user input and print responses, highlighting interaction.
Introduces text processing to analyze and iterate over string characters using loops.
Describes conversion functions like ord and chr for translating chars to numerical values and vice versa.
Explains how to read entire files and store contents in variables for processing.
Describes iterating through files line-by-line for detailed processing and counting lines.
Introduces objects and classes as fundamental concepts in Python, establishing structure.
Defines classes and their attributes in Python, explaining syntax and establishing examples.
Details class attributes and their usage, emphasizing how they can be modified within methods.
Demonstrates importing and instantiating classes, highlighting object usage.
Explains object methods with examples showing how to define and use them with class attributes.
Provides concrete examples of method implementations within a class, demonstrating invocation.
Illustrates the methods for calling object methods, emphasizing different syntactical structures.
Defines constructors in classes for initializing objects upon creation.
Discusses __str__ method for creating a string representation of an object for easy display.
Presents a full example of a class implementation, detailing methods and attributes.
Describes how to customize operator behavior with classes by defining methods for operators.
Introduces generating exceptions for error handling in classes with relevant Python types.
Explains inheritance allowing classes to extend functionalities while sharing attributes and methods.
Demonstrates how to call superclass methods within subclasses during method execution.
click here toget the full course : https://oke.io/JdxdUl
2.
code orsource 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
2
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
3
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
>>>
5.
Expressions
5
expression: Adata 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
6.
Integer division
6
Whenwe divide integers with / , the quotient is also an integer.
3
5
2
4 ) 14 27 )
1425
12 13
5
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
2
0
1
8
1
7.
Real numbers
7
Pythoncan 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
8.
8
Math commands
Pythonhas 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...
9.
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
10.
A variablethat 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
11.
Example
>>> x =7
>>> x 7
>>> x+7
14
>>> x = 'hello'
>>> x
'hello'
>>>
12.
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
13.
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
14.
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
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
15.
Input: Example
print "What'syour 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
The for loop
17
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
i
s
1
2
squared
i
s
4
3
squared
i
s
9
4 i 1
18.
range
18
The rangefunction 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?
19.
Cumulative loops
19
Someloops 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.
20.
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."
20
21.
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
22.
Example of IfStatements
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.
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
24.
click here toget the full course : https://oke.io/JdxdUl
25.
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
26.
Exercise: Writecode 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
27.
Loop Control Statements
breakJumps out of the closest
enclosing loop
continue Jumps to the top of the closest
enclosing loop
pass Does nothing, empty statement
placeholder
28.
More Examples ForLoops
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.p
y
%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]
30.
Everything is anobject
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'
>>>
31.
Numbers: Integers
Integer– the
equivalent of a C long
Long Integer – an
unbounded integer
value.
>>> 132224
132224
>>> 132323 **
2
17509376329L
>>>
32.
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
33.
Numbers: Complex
Builtinto Python
Same operations are
supported as integer
and float
>>> x = 3 + 2j
>>> y = -1j
>>> x + y
(3+1j)
>>> x * y (2-
3j)
34.
String Literals
+is overloaded to do
concatenation >>> x = 'hello'
>>> x = x + ' there'
>>> x
'hello there'
35.
String Literals
Canuse 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!'
36.
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'
37.
String Formatting
Similarto 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'
>>>
38.
Types for DataCollection
List, Set, and Dictionary
List
Unordered list
Ordered Pairs of values
39.
Lists
Ordered collectionof
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']
40.
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
41.
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]
42.
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]
>>>
43.
Using Lists asStacks
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"]
>>>
44.
Tuples
Tuples areimmutable
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,)
>>>
45.
Sets
A setis 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
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
49.
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'}
50.
Iterating over adictionary
>>>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
>>>
51.
Copying Dictionaries andLists
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}
52.
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
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
55.
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
56.
Function names arelike 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'
57.
Functions as Parameters
deffoo(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
58.
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
59.
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
60.
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
61.
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
62.
Functions Returning Functions
deffoo (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
63.
Parameters: Defaults
Parameterscan 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
64.
Parameters: Named
Callby 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
65.
Anonymous Functions
Alambda
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
66.
Modules
The highestlevel structure of Python
Each file with the py suffix is a module
Each module has its own namespace
67.
Modules: Imports
import mymoduleBrings 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
string: Asequence 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.
69
t
n
"
tab character
new line character
quotation mark character
backslash character
Example: "HellottherenHow are you?"
Strings
70.
Indexes
70
Characters ina 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
71.
String properties
71
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
72.
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!
72
raw_input
73.
Text processing
73
textprocessing: 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
74.
Strings and numbers
74
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"
75.
File processing
75
Manyprograms 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()
76.
Line-by-line processing
76
Readinga 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.
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’
79.
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
80.
Using a Class
importclass
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
81.
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
Calling Methods
Aclient 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)
84.
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)?
85.
toString and str
defstr (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) + ")"
Operator Overloading
operatoroverloading: 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)
88.
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")
...
89.
Inheritance
class name(superclass):
statements
Example:
classPoint3D(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)