You are on page 1of 40

Object Oriented

Programing with Python

Lecture 5
Dr. Mohammad Assaad 1
Topics

⚫ MUTABILITY, CLONING

⚫ RECURSION,

⚫ ITERATION vs. RECURSION

⚫ DICTIONARIES

Dr. Mohammad Assaad 2


MUTATION AND ITERATION
Try this in Python Tutor!

Dr. Mohammad Assaad 3


RECURSION, DICTIONARIES

⚫ Recursion– divide/decrease and conquer

⚫ Dictionaries–another mutable object type

Dr. Mohammad Assaad 4


WHAT IS RECURSION?

⚫ Recursion is the process of repeating


items in a self-similar way.

Dr. Mohammad Assaad 5


WHAT IS RECURSION?

Dr. Mohammad Assaad 6


ITERATIVE ALGORITHMS SO FAR

Dr. Mohammad Assaad 7


MULTIPLICATION – ITERATIVE
SOLUTION

Dr. Mohammad Assaad 8


MULTIPLICATION – ITERATIVE
SOLUTION

Dr. Mohammad Assaad 9


FACTORIAL

Dr. Mohammad Assaad 10


Dr. Mohammad Assaad 11
SOME OBSERVATIONS

Dr. Mohammad Assaad 12


ITERATION vs. RECURSION

Dr. Mohammad Assaad 13


FIBONACCI

Dr. Mohammad Assaad 14


FIBONACCI

Dr. Mohammad Assaad 15


FIBONACCI

def fib(x):
"""assumes x an int >= 0
returns Fibonacci of x""”
if x == 0 or x == 1:
return 1
else:
return fib(x-1) + fib(x-2)

Dr. Mohammad Assaad 16


RECURSION ON NON NUMERICS

⚫ How to check if a string of characters is a palindrome,


i.e., reads the same forwards andbackwards.

⚫ “Able was I ere I saw Elba”

Dr. Mohammad Assaad 17


SOLVING RECURSIVELY?

Dr. Mohammad Assaad 18


EXAMPLE

Dr. Mohammad Assaad 19


EXAMPLE
def isPalindrome(s):
def toChars(s):
s = s.lower()
ans = ‘’
for c in s:
if c in 'abcdefghijklmnopqrstuvwxyz’:
ans = ans + c
return ans
def isPal(s):
if len(s) <= 1:
return True
else:
return s[0] == s[-1] and isPal(s[1:-1])
return isPal(toChars(s))
Dr. Mohammad Assaad 20
DIVIDE AND CONQUER

Dr. Mohammad Assaad 21


DICTIONARIES

Dr. Mohammad Assaad 22


HOW TO STORE STUDENT INFO

Dr. Mohammad Assaad 23


HOW TO UPDATE/RETRIEVE
STUDENT INFO

Dr. Mohammad Assaad 24


A BETTER AND CLEANER WAY –
A DICTIONARY

Dr. Mohammad Assaad 25


A PYTHON DICTIONARY

Dr. Mohammad Assaad 26


DICTIONARY LOOKUP

Dr. Mohammad Assaad 27


Dr. Mohammad Assaad 28
DICTIONARY LOOKUP

Dr. Mohammad Assaad 29


Dr. Mohammad Assaad 30
DICTIONARY KEYS and VALUES

Dr. Mohammad Assaad 31


List vs Dict

Dr. Mohammad Assaad 32


EXAMPLE: FUNCTIONS TO
ANALYZE SONG LYRICS

Dr. Mohammad Assaad 33


CREATING A DICTIONARY

Dr. Mohammad Assaad 34


USING THE DICTIONARY

Dr. Mohammad Assaad 35


LEVERAGING DICTIONARY
PROPERTIES

Dr. Mohammad Assaad 36


FIBONACCI RECURSIVE CODE

Dr. Mohammad Assaad 37


Dr. Mohammad Assaad 38
Dr. Mohammad Assaad 39
EFFICIENCY GAINS

Dr. Mohammad Assaad 40

You might also like