Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions src/cityreader/cityreader.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# Create a class to hold a city location. Call the class "City". It should have
# fields for name, lat and lon (representing latitude and longitude).

class City:
def __init__(self, name, lat, lon):
self.name = name
self.lat = lat
self.lon = lon

def __str__(self):
return f"City: {self.name}, Latitude: {self.lat}, Longitude: {self.lon}"

# We have a collection of US cities with population over 750,000 stored in the
# file "cities.csv". (CSV stands for "comma-separated values".)
Expand All @@ -9,19 +17,29 @@
# to read this file so that each record is imported into a City instance. Then
# return the list with all the City instances from the function.
# Google "python 3 csv" for references and use your Google-fu for other examples.
#

# Store the instances in the "cities" list, below.
#
# Note that the first line of the CSV is header that describes the fields--this
# should not be loaded into a City object.

import csv

cities = []

def cityreader(cities=[]):
# TODO Implement the functionality to read from the 'cities.csv' file
# Ensure that the lat and lon valuse are all floats
# For each city record, create a new City instance and add it to the
# `cities` list

#

with open('src/cityreader/cities.csv', newline='') as csvfile:
CityReader = csv.DictReader(csvfile)

for row in CityReader:
print(cities.append(City(row['city'], row['lat'], row['lng'])))

return cities

cityreader(cities)
Expand Down
16 changes: 8 additions & 8 deletions src/comp/comp.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,48 +24,48 @@ def __repr__(self):
# Write a list comprehension that creates a list of names of everyone
# whose name starts with 'D':
print("Starts with D:")
a = []
a = [ human.name for human in humans if human.name[0] == 'D' ]
print(a)

# Write a list comprehension that creates a list of names of everyone
# whose name ends in "e".
print("Ends with e:")
b = []
b = [ human.name for human in humans if human.name[-1] == 'e' ]
print(b)

# Write a list comprehension that creates a list of names of everyone
# whose name starts with any letter between 'C' and 'G' inclusive.
print("Starts between C and G, inclusive:")
c = []
c = [ human.name for human in humans if human.name[0] in ['C','D','E','F','G']]
print(c)

# Write a list comprehension that creates a list of all the ages plus 10.
print("Ages plus 10:")
d = []
d = [ human.age + 10 for human in humans ]
print(d)

# Write a list comprehension that creates a list of strings which are the name
# joined to the age with a hyphen, for example "David-31", for all humans.
print("Name hyphen age:")
e = []
e = [f'{human.name}-{human.age}' for human in humans]
print(e)

# Write a list comprehension that creates a list of tuples containing name and
# age, for example ("David", 31), for everyone between the ages of 27 and 32,
# inclusive.
print("Names and ages between 27 and 32:")
f = []
f = [(human.name, human.age) for human in humans if 27 <= human.age <= 32 ]
print(f)

# Write a list comprehension that creates a list of new Humans like the old
# list, except with all the names uppercase and the ages with 5 added to them.
# The "humans" list should be unmodified.
print("All names uppercase:")
g = []
g = [Human(human.name.upper(), human.age + 5)for human in humans]
print(g)

# Write a list comprehension that contains the square root of all the ages.
print("Square root of ages:")
import math
h = []
h = [ math.sqrt(human.age) for human in humans ]
print(h)
22 changes: 22 additions & 0 deletions src/oop/oop1.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,25 @@
# pass
#
# Put a comment noting which class is the base class

class Vehicle:
# Base Class
pass

class FlightVehicle(Vehicle):
pass

class Starship(FlightVehicle):
pass

class Airplane(FlightVehicle):
pass

class GroundVehicle(Vehicle):
pass

class Car(GroundVehicle):
pass

class Motorcycle(GroundVehicle):
pass
18 changes: 15 additions & 3 deletions src/oop/oop2.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
# object is constructed.

class GroundVehicle():
def __init__(self, num_wheels):
def __init__(self, num_wheels = 4):
self.num_wheels = num_wheels

# TODO
def drive(self):
return "vroooom"

# TODO

# Subclass Motorcycle from GroundVehicle.
#
Expand All @@ -19,14 +21,24 @@ def __init__(self, num_wheels):

# TODO

class Motorcycle(GroundVehicle):
def __init__(self):
super().__init__(2)

def drive(self):
return 'BRAAAP!!'

vehicles = [
GroundVehicle(),
GroundVehicle(),
Motorcycle(),
Motorcycle(),
GroundVehicle(),
Motorcycle(),
]

# Go through the vehicles list and print the result of calling drive() on each.

# TODO

for engines in vehicles:
print(engines.drive())