From df4f430999d7d963b24705d098e5139aed83107a Mon Sep 17 00:00:00 2001 From: Kelson Hartle Date: Sun, 13 Sep 2020 19:11:19 -0600 Subject: [PATCH 1/4] oop1 tests passing --- src/oop/oop1.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index b7268c5263..c033dc649b 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -17,3 +17,25 @@ # pass # # Put a comment noting which class is the base class + +class Vehicle: #Base Class + color = "Blue" + pass + +class GroundVehicle(Vehicle): + pass + +class Car(GroundVehicle): + pass + +class Motorcycle(GroundVehicle): + pass + +class FlightVehicle(Vehicle): + pass + +class Starship(FlightVehicle): + pass + +class Airplane(FlightVehicle): + pass \ No newline at end of file From d738679a98147870ada9420ec679e00c9ca4e306 Mon Sep 17 00:00:00 2001 From: Kelson Hartle Date: Sun, 13 Sep 2020 19:15:00 -0600 Subject: [PATCH 2/4] oop 2 tests now passing --- src/oop/oop2.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 29d3e481fe..afdf4e7651 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -4,9 +4,12 @@ # object is constructed. class GroundVehicle(): - def __init__(self, num_wheels): + def __init__(self, num_wheels = 4): self.num_wheels = num_wheels + def drive(self): + return "vroooom" + # TODO @@ -16,6 +19,12 @@ def __init__(self, num_wheels): # of wheels to 2 by passing that to the constructor of its superclass. # # Override the drive() method in Motorcycle so that it returns "BRAAAP!!" +class Motorcycle(GroundVehicle): + def __init__(self): + super().__init__(num_wheels = 2) + + def drive(self): + return "BRAAAP!!" # TODO @@ -30,3 +39,5 @@ def __init__(self, num_wheels): # Go through the vehicles list and print the result of calling drive() on each. # TODO +for vehicle in vehicles: + print(vehicle.drive()) From 3939889716d4743d8ef37ef91a73f656cf65c0b6 Mon Sep 17 00:00:00 2001 From: Kelson Hartle Date: Sun, 13 Sep 2020 19:41:14 -0600 Subject: [PATCH 3/4] List Comprehension tests passing --- src/comp/comp.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 82f8821d63..ac23c7df7e 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -1,5 +1,7 @@ # The following list comprehension exercises will make use of the # defined Human class. +import string +import sys class Human: def __init__(self, name, age): self.name = name @@ -24,48 +26,56 @@ 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 = [n.name for n in humans if n.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 = [n.name for n in humans if n.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 = [] +allowed = 'abcdefg' + +c = [n.name for n in humans if ord(n.name[0]) in range(ord('C'), ord('H'))] print(c) # Write a list comprehension that creates a list of all the ages plus 10. print("Ages plus 10:") -d = [] +d = [n.age + 10 for n 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 = [n.name.replace('','-') for n in humans] +e = [f"{n.name}-{n.age}" for n in humans] +# result =''.join(f'&humans={pair}' for pair in humans) print(e) +# 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 = [(n.name, n.age) for n in humans if n.age > 27 and n.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 = [[n.name.upper() for n in humans] [n.age + 5 for n in humans]] +g = [(n.name.upper(), n.age + 5) for n in humans] +g = [Human(n.name.upper(), n.age + 5) for n 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(n.age) for n in humans] print(h) From cec8b6e5bc179f768f65c32d7846a4ceaab4ee30 Mon Sep 17 00:00:00 2001 From: Kelson Hartle Date: Sun, 13 Sep 2020 19:58:36 -0600 Subject: [PATCH 4/4] cityreader tests passing PROJECT MVP --- src/cityreader/cityreader.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 2bd8007ce7..4b52c48d01 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -1,5 +1,15 @@ +import csv + # 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"{self.name}, {self.lat}, {self.lon}" # We have a collection of US cities with population over 750,000 stored in the @@ -21,7 +31,13 @@ def cityreader(cities=[]): # 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('cities.csv', 'r') as csv_file: + csv_reader = csv.reader(csv_file) + + next(csv_reader) # this line tells the compiler to skip the first line. + for line in csv_reader: + cities.append(City(line[0], float(line[3]), float(line[4]))) + return cities cityreader(cities) @@ -29,6 +45,7 @@ def cityreader(cities=[]): # Print the list of cities (name, lat, lon), 1 record per line. for c in cities: print(c) + # print(f"City: {c.name} Lat: {c.lat} Lon: {c.lon}\n") # STRETCH GOAL! #