Files
lab_weather/friend_functions.py
mbhatti4 4ca132789c I wrote all the fucntions in the friend_functions. The first two were done from the weekly video, the rest were done by me using the lab notes.
I am a little behind on my labs so I have't programed in a while. Due to this, I struggled to get started and remembering how to use iterations.
I struggled mostly with the last 2 functions, but once i remembered how to create a list and how to keep count, the final function became easier for me.
I combine the smaller funcitons to help me with the more complex function. Since I undrstood the smaller sutff, I was able to play around to use that learning for the bigger stuff.
I looked through the earlier functions codes and ran therough how they work to help me when i got stuck.
2025-10-26 17:23:55 -04:00

129 lines
3.2 KiB
Python

# friend_functions.py
# ------------
# By MWC Contributors
#
# Each of the functions below expects a list of dictionaries as its first
# argument. Two examples of the expected input are provided in people.family
# and people.friends.
# Your job is to complete these functions. Remove the NotImplementedError from
# each and instead write code which returns the expected values.
def count_people(people):
"""Counts the number of people.
>>> count_people(family)
5
>>> count_people(friends)
10
"""
return len(people)
def get_email(people, name):
"""Returns the named person's email address. If there is no such person, returns None.
>>> get_email(family, "Tad Winters")
"ligula.aenean@hotmail.edu"
>>> get_email(friends, "Tad Winters")
None
"""
for person in people:
if name == person['name']:
return person['email']
return None
def count_favorite_colors(people, name):
"""Returns the number of colors liked by the named person. If there is no such person, returns None.
>>> count_favorite_colors(family, "Tad Winters")
2
>>> count_favorite_colors(family, "Raphael Chambers")
1
"""
for person in people:
if person["name"] == name:
return len(person["favorite_colors"])
return None
def people_who_like_color(people, color):
"""Returns a list containing only those people who like the given color.
>>> people_who_like_color(family, "yellow")
[
{
"name": "Walker Hurley",
"email": "auctor.odio@icloud.ca",
"favorite_colors": ["red", "yellow", "blue", "orange"],
},
{
"name": "Clementine Joseph",
"email": "hendrerit@aol.co.uk",
"favorite_colors": ["yellow", "aqua", "black"],
}
]
>>> people_who_like_color(family, "indigo")
[]
"""
like = []
for person in people:
if color in person["favorite_color"]:
like.append(person)
return like
def count_people_who_like_color(people, color):
"""Returns the number of people who like a given color.
>>> count_people_who_like_color(family, "red")
2
>>> count_people_who_like_color(family, "orange")
1
"""
count = 0
for person in people:
if color in person['favorite_color']:
count+=1
return count
def get_color_dict(people):
"""Returns a dict showing how many people like each color.
Any color liked by any of the people will be included, and only colors
liked by someone will be included. The order of items in the dict doesn't matter.
>>> get_color_dict(family)
{
"aqua": 2,
"red": 2,
"blue": 2,
"black": 2,
"white": 1,
"grey": 1,
"yellow": 2,
"orange": 1,
}
"""
count = 0
for person in people:
for color in person["favorite_color"]:
if color in count:
count[color] +=1
else:
count[color]== 1
return count