From 3506e6c6c0e619aefc91f47356c3d9e815a550b7 Mon Sep 17 00:00:00 2001 From: Vitaliy Mikhaylyuk Date: Sun, 13 Sep 2020 21:59:18 -0400 Subject: [PATCH 1/5] oop done --- src/oop/oop1.py | 25 +++++++++++++++++++++++++ src/oop/oop2.py | 26 +++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index b7268c5263..df4665d85c 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -17,3 +17,28 @@ # pass # # Put a comment noting which class is the base class + +# Vehicle is the base class + +class Vehicle: + pass + +class FlightVehicle(Vehicle): + pass + +class Starship(FlightVehicle): + pass + +class GroundVehicle(Vehicle): + pass + +class Airplane(FlightVehicle): + pass + +class Car(GroundVehicle): + pass + +class Motorcycle(GroundVehicle): + pass + + diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 29d3e481fe..dcc78914cc 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -4,11 +4,32 @@ # 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" + +car = GroundVehicle() +print(car.num_wheels) +print(car.drive()) + + + # TODO +class Motorcycle(GroundVehicle): + def __init__(self, num_wheels=2): + super().__init__(num_wheels) + self.num_wheels = num_wheels + + def drive(self): + return "BRAAAP!!" + +moto = Motorcycle() +print(moto.num_wheels) +print(moto.drive()) + # Subclass Motorcycle from GroundVehicle. # @@ -30,3 +51,6 @@ def __init__(self, num_wheels): # Go through the vehicles list and print the result of calling drive() on each. # TODO + +for i in vehicles: + print(i.drive()) From b8ca7b577780fe33960b4de1c781ba380230e935 Mon Sep 17 00:00:00 2001 From: Vitaliy Mikhaylyuk Date: Sun, 13 Sep 2020 22:39:57 -0400 Subject: [PATCH 2/5] comps --- src/cityreader/cityreader.py | 9 +++++++++ src/comp/comp.py | 15 ++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 2bd8007ce7..e60d3aabd8 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -1,9 +1,18 @@ # 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 + # We have a collection of US cities with population over 750,000 stored in the # file "cities.csv". (CSV stands for "comma-separated values".) + +import csv + # # In the body of the `cityreader` function, use Python's built-in "csv" module # to read this file so that each record is imported into a City instance. Then diff --git a/src/comp/comp.py b/src/comp/comp.py index 82f8821d63..43b42d4166 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -24,36 +24,40 @@ 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 = [i.name for i in humans if i.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 = [i.name for i in humans if i.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 = [i.name for i in humans if i.name[0] == "C" or "D" or "E" or "F" or "G"] +# c = [i.name for i in humans if i.name[0] == filter(i.name[0]), ("C", "D", "E", "F", "G")] c = [] print(c) # Write a list comprehension that creates a list of all the ages plus 10. print("Ages plus 10:") -d = [] +d = [i.age + 10 for i 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"{i.name}-{i.age}" for i 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 = [(i.name, i.age) for i in humans if i.age >= 27 and <= 32] +# f = [(i[0], i[1]) for i in humans] f = [] print(f) @@ -61,11 +65,12 @@ 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 = [i.name.upper() for i in humans] g = [] 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(i.age) for i in humans] print(h) From 3b2129bce0a2208f8913463ee78191af9bb6e4e2 Mon Sep 17 00:00:00 2001 From: Vitaliy Mikhaylyuk Date: Sun, 13 Sep 2020 23:58:22 -0400 Subject: [PATCH 3/5] csv file --- src/comp/comp.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 43b42d4166..8610dd16dd 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -65,8 +65,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 = [i.name.upper() for i in humans] -g = [] +g = [Human(i.name.upper(), i.age + 5) for i in humans] print(g) # Write a list comprehension that contains the square root of all the ages. From 6fa56466e3848cfe59b645ec0bb9d9e0bc512e6d Mon Sep 17 00:00:00 2001 From: Vitaliy Mikhaylyuk Date: Wed, 16 Sep 2020 21:33:40 -0400 Subject: [PATCH 4/5] cities csv done --- src/cityreader/cityreader.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index e60d3aabd8..3a97456550 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -7,12 +7,13 @@ def __init__(self, name, lat, lon): 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 # file "cities.csv". (CSV stands for "comma-separated values".) -import csv - # # In the body of the `cityreader` function, use Python's built-in "csv" module # to read this file so that each record is imported into a City instance. Then @@ -30,6 +31,16 @@ 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 + + import csv + + with open('cities.csv') as csvfile: + readCSV = csv.reader(csvfile, delimiter=',') + next(readCSV) + + + for row in readCSV: + cities.append(City(row[0], row[3], row[4])) return cities From afd3c7785da7866ec695e47b113c94a4c53aa16a Mon Sep 17 00:00:00 2001 From: Vitaliy Mikhaylyuk Date: Thu, 24 Sep 2020 22:56:13 -0400 Subject: [PATCH 5/5] corrected --- src/cityreader/cityreader.py | 2 +- src/cityreader/test_cityreader.py | 1 + src/comp/comp.py | 4 ++-- src/oop/oop2.py | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 3a97456550..70d40dfee2 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -40,7 +40,7 @@ def cityreader(cities=[]): for row in readCSV: - cities.append(City(row[0], row[3], row[4])) + cities.append(City(row[0], float(row[3]), float(row[4]))) return cities diff --git a/src/cityreader/test_cityreader.py b/src/cityreader/test_cityreader.py index a9a812876d..86127fd1c6 100644 --- a/src/cityreader/test_cityreader.py +++ b/src/cityreader/test_cityreader.py @@ -79,6 +79,7 @@ def setUp(self): def test_cityreader_correctness(self): self.assertEqual(len(self.cities), 60) for i in range(len(self.cities)): + # print(type(self.cities[i].lat), type(self.expected[i].lat)) self.assertTrue(check_city(self.cities[i], self.expected[i])) diff --git a/src/comp/comp.py b/src/comp/comp.py index 8610dd16dd..28c573426d 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -56,9 +56,9 @@ def __repr__(self): # age, for example ("David", 31), for everyone between the ages of 27 and 32, # inclusive. print("Names and ages between 27 and 32:") -# f = [(i.name, i.age) for i in humans if i.age >= 27 and <= 32] +f = [(i.name, i.age) for i in humans if i.age >= 27 and i.age<= 32] # f = [(i[0], i[1]) for i in humans] -f = [] +# f = [] print(f) # Write a list comprehension that creates a list of new Humans like the old diff --git a/src/oop/oop2.py b/src/oop/oop2.py index dcc78914cc..b9801cd2e5 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -21,7 +21,7 @@ def drive(self): class Motorcycle(GroundVehicle): def __init__(self, num_wheels=2): super().__init__(num_wheels) - self.num_wheels = num_wheels + # self.num_wheels = num_wheels def drive(self): return "BRAAAP!!"