From 04c7b2c03ec4b199c1987574f29e4764be46630d Mon Sep 17 00:00:00 2001 From: VINCENT ADENIJI <54925113+TOSINNIJIS1@users.noreply.github.com> Date: Sun, 13 Sep 2020 21:46:48 -0400 Subject: [PATCH 1/3] MVP met --- src/cityreader/cityreader.py | 22 ++++++++++++++++++++-- src/comp/comp.py | 16 ++++++++-------- src/oop/oop1.py | 23 +++++++++++++++++++++++ src/oop/oop2.py | 20 +++++++++++++++++--- 4 files changed, 68 insertions(+), 13 deletions(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 2bd8007ce7..dc5b4c09d5 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -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".) @@ -9,11 +17,14 @@ # 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=[]): @@ -21,7 +32,14 @@ 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('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) diff --git a/src/comp/comp.py b/src/comp/comp.py index 82f8821d63..682c01d2b5 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -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.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) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index b7268c5263..bc85779aa6 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -17,3 +17,26 @@ # pass # # Put a comment noting which class is the base class + +class Vehicle(): + ''' Base Class ''' + def __init__(self, name): + self.name = name + +class GroundVehicle(Vehicle): + pass + +class Car(GroundVehicle): + pass + +class Motorcycle(GroundVehicle): + pass + +class FlightVehicle(Vehicle): + pass + +class Airplane(FlightVehicle): + pass + +class StarShip(FlightVehicle): + pass \ No newline at end of file diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 29d3e481fe..b87bf9f4fb 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -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. # @@ -19,10 +21,19 @@ def __init__(self, num_wheels): # TODO +class Motorcycle(GroundVehicle): + def __int__(self): + super().__init__(2) + + + def drive(self): + return 'BRAAAP!!' + + vehicles = [ GroundVehicle(), GroundVehicle(), - Motorcycle(), + Motorcycle(), GroundVehicle(), Motorcycle(), ] @@ -30,3 +41,6 @@ def __init__(self, num_wheels): # Go through the vehicles list and print the result of calling drive() on each. # TODO + +for engines in vehicles: + print(engines.drive()) From 36832fc94c4baefbcb62fd123e55f21c8570bcd9 Mon Sep 17 00:00:00 2001 From: VINCENT ADENIJI <54925113+TOSINNIJIS1@users.noreply.github.com> Date: Mon, 14 Sep 2020 23:56:02 -0400 Subject: [PATCH 2/3] fixed the bugs --- src/comp/comp.py | 4 ++-- src/oop/oop1.py | 20 +++++++++----------- src/oop/oop2.py | 3 ++- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 682c01d2b5..9e75ef6c19 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -47,7 +47,7 @@ def __repr__(self): # 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 = [f'{human.name} - {human.age}' for human in humans] +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 @@ -61,7 +61,7 @@ def __repr__(self): # 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 = [(human.name.upper(), human.age + 5)for human in humans] +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. diff --git a/src/oop/oop1.py b/src/oop/oop1.py index bc85779aa6..d4c8f1169d 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -18,25 +18,23 @@ # # Put a comment noting which class is the base class -class Vehicle(): - ''' Base Class ''' - def __init__(self, name): - self.name = name +class Vehicle: + pass -class GroundVehicle(Vehicle): +class FlightVehicle(Vehicle): pass -class Car(GroundVehicle): +class Starship(FlightVehicle): pass -class Motorcycle(GroundVehicle): +class Airplane(FlightVehicle): pass -class FlightVehicle(Vehicle): +class GroundVehicle(Vehicle): pass -class Airplane(FlightVehicle): +class Car(GroundVehicle): pass -class StarShip(FlightVehicle): - pass \ No newline at end of file +class Motorcycle(GroundVehicle): + pass \ No newline at end of file diff --git a/src/oop/oop2.py b/src/oop/oop2.py index b87bf9f4fb..9c4d8cd35e 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -22,8 +22,9 @@ def drive(self): # TODO class Motorcycle(GroundVehicle): - def __int__(self): + def __init__(self): super().__init__(2) + def drive(self): From f4e97b7eacef4c78f1fe348cc22928e405df1039 Mon Sep 17 00:00:00 2001 From: VINCENT ADENIJI <54925113+TOSINNIJIS1@users.noreply.github.com> Date: Tue, 15 Sep 2020 00:16:34 -0400 Subject: [PATCH 3/3] added the base comment --- src/oop/oop1.py | 3 ++- src/oop/oop2.py | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index d4c8f1169d..556b37dbdd 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -19,6 +19,7 @@ # Put a comment noting which class is the base class class Vehicle: + # Base Class pass class FlightVehicle(Vehicle): @@ -37,4 +38,4 @@ class Car(GroundVehicle): pass class Motorcycle(GroundVehicle): - pass \ No newline at end of file + pass diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 9c4d8cd35e..950cfa701a 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -25,12 +25,9 @@ class Motorcycle(GroundVehicle): def __init__(self): super().__init__(2) - - def drive(self): return 'BRAAAP!!' - vehicles = [ GroundVehicle(), GroundVehicle(),