Class 22 — Wednesday March 24
Look at the map
- Asian lives matter — We are a single people — That celebrate you
Look both ways
Agenda
- Introduce
dict
To do
- Examine artifacts
- Examine
dict
module documentation
- Examine
collections
epistle
- Examine
while
epistle
Examples
- Program url.py (Please redownload)
- Program romantic.py
- Program unromantic.py
- Program even_odd.py
- Program good_doggie.py
- Program robotomy.py
Some datasets
Problem romantic.py
- Get a roman numeral and determine its integer equivalent
Some program runs
Enter Roman numeral: V
5
Enter Roman numeral: d
500
Enter Roman numeral: 0
Unknown
Problem unromantic.py
- Get a word and print its English equivalent
Some program runs
RecursionError: maximum recursion depth exceeded during compilation
Discussion
- Repeat the word carrot ten times out loud
- The human brain is great with associations; e.g., many of us associate apple with red, sky with blue, and programming with fun.
- A
dict
is Python's software equivallent of a collection of associations. In particular, adict
is an unnordered collection of associations.
- The elements of a
dict
are called mappings. A mapping associates one object (called the key) with another object (called the value).
- The literal for an empty
dict
is{}
.
- A literal mapping is written using the
:
to separate the key with its value. For example, the variableflora_to_color
defined below is adict
that associates flora with colors.
flora_to_color = { 'spruce': 'green', 'apple': 'red', 'shamrock': 'green',
'banana': 'yellow', 'potato': 'brown', 'eggplant': 'purple' }
- The
len()
function works on adict
. For example,len(
flora_to_color
)
is 6, because the definition offlora_to_color
specified six mappings.
- The brackets
[]
operator in conjunction with assignment can be used to put a mapping into adict
. For example, the statement below adds the mapping'lemon'
to'yellow'
.
flora_to_color[ 'lemon' ] = 'yellow'
- The keys of a
dict
are always distinct. So, the following statement
flora_to_color[ 'potato' ] = 'golden'
would cause
flora_to_color
to lose its association of mappingpotato
tobrown
— its associaton with'potato'
is now only togolden
.
- As our
flora_to_color
example shows, the values of adict
are not necessarily unique.
- Python
dict
's have functionskeys()
andvalues()
for getting a hold of keys and values.
the_keys = flora_to_color.keys()
the_values = flora_to_color.values()
While there are never any duplicates in the keys, depending upon the dictionary there may be duplicates in the values.
- Other information about
dict
objects are listed below. In the below, assume thatd
is adict
.
d.get(k)
returns the value that keyk
maps to ind
. If there is no such value, returnsNone
.
d[k]
returns the value that keyk
maps to ind
. If there is no such value, an exception (error) occurs.
(k in d)
indicates whetherk
is a key value ind
.
(k not in d)
indicates whetherk
is not a key value ind
.
d.clear()
removes all mappings ind
.
del d[k]
removesk
’s mapping ind
.
- Information on a
dict
is available in the module documentation section of the website.
- Additional information on collections is in general is available in the collections epistile.
Problem even_odd.py
- Introduce the Python
dict
data structure
Some program runs
Enter a number: 3
3 odd
Enter even or odd: even
a number is even if its remainder divided by 2 is 0
Enter a number: 6
6 even
Enter even or odd: odd
a number is odd if its remainder divided by 2 is 1
Problem good_doggie.py
- For a series of dog information requests, the program reports what it knows about the dog.
- Its dog information data source is located at URL
- Brainstorming
- How should we store the dog information?
- How do we get and store the input?
- How many times do we set up the dog information
- What times of loops do we need?
- Sequential
- Nested
- Mixture of nested and sequential
Problem robotomy.py
- Determine what happens when a robot comes knocking on a door.
- If the door is locked, the robot should be instructed to turn around.
- If the door is instead unlocked, the robot should be instructed to open the door and enter the room. Before entering, the robot should determine whether the light is off. If it is off, the robot should be instructed to first turn on the light.
- Observation
- There is one procedure to perform if the door is locked, another to perform if it is unlocked
- The procedure to perform if the door is unlocked, requires analysis whether the light is on.
-
Some program runs
Door (locked / unlocked): locked
Turn around
Door (locked / unlocked): Unlocked
Open the door
Light (on / off): on
Enter the room
Door (locked / unlocked): unlocked
Open the door
Light (on / off): Off
Turn on the light
Enter the room
Raining cats and dogs (English idiom)
🦆 © 2022 Jim Cohoon | Resources from previous semesters are available. |