From c845a78e129206b72dad907a89a447d4b6fe1a12 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 12:58:39 -0400 Subject: [PATCH 01/14] =?UTF-8?q?feat:=20Initial=20commit=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index eeb64678a7..73f44aef14 100644 --- a/README.md +++ b/README.md @@ -54,3 +54,5 @@ There's a separate test file `test_stretch.py` for the stretch problem that you | _Student can demonstrate applied knowledge of Object-Oriented Programming by completing `oop1.py` and `oop2.py`_ | OOP: (2 points per file, 4 max) | 0 points | 2 points | 4 points | | | _Student can demonstrate applied research and language learning by completing `cityreader.py`_ | CSV: 6 points for `cityreader()`, 1 point for `cityreader_stretch()` | 0 points | 6 points | 7 points | | | **FINAL SCORE** | | **0-13** | **14-18** | **19** | | + +# Initial Commit \ No newline at end of file From 0362e296a908dec743afed2670b20fb9640dc3a3 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 13:29:46 -0400 Subject: [PATCH 02/14] feat(oop1.py): Creates class hierarchies --- src/oop/oop1.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index b7268c5263..5636fdc3c0 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -17,3 +17,30 @@ # pass # # Put a comment noting which class is the base class + +class Vehicle(object): # This is the base class + pass + + +class FlightVehicle(Vehicle): # FlightVehicle is a type of Vehicle + pass + + +class Starship(FlightVehicle): # Satarship is a type of FlightVehicle + pass + + +class Airplane(FlightVehicle): # Airplane is a type of FlightVehicle + pass + + +class GroundVehicle(Vehicle): # GroundVehicle is a type of Vehicle + pass + + +class Car(GroundVehicle): # Car is a type of GroundVehicle + pass + + +class Motorcycle(GroundVehicle): # Motorcylce is a type of GroundVehicle + pass From d032a2ab27633c3435794ab945e16f1ecb0c1ff6 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 13:31:54 -0400 Subject: [PATCH 03/14] docs(README.md): Corrects h1 heading into comment (line 58) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73f44aef14..9a06d52c43 100644 --- a/README.md +++ b/README.md @@ -55,4 +55,4 @@ There's a separate test file `test_stretch.py` for the stretch problem that you | _Student can demonstrate applied research and language learning by completing `cityreader.py`_ | CSV: 6 points for `cityreader()`, 1 point for `cityreader_stretch()` | 0 points | 6 points | 7 points | | | **FINAL SCORE** | | **0-13** | **14-18** | **19** | | -# Initial Commit \ No newline at end of file + \ No newline at end of file From 4038a15268ecc5f734956c9cbe317e2fee30f8f1 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 13:53:42 -0400 Subject: [PATCH 04/14] feat(oop2.py): Adds methods and prints loop --- src/oop/oop2.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 29d3e481fe..5109d71ad3 100644 --- a/src/oop/oop2.py +++ b/src/oop/oop2.py @@ -4,10 +4,12 @@ # 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" # Subclass Motorcycle from GroundVehicle. @@ -18,6 +20,12 @@ def __init__(self, num_wheels): # Override the drive() method in Motorcycle so that it returns "BRAAAP!!" # TODO +class Motorcycle(GroundVehicle): + def __init__(self, num_wheels=2): + self.num_wheels = num_wheels + + def drive(self): + return "BRAAAP!!" vehicles = [ GroundVehicle(), @@ -30,3 +38,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()) \ No newline at end of file From 1fa06271e21849676ff9b5f4e73b4714df72ce4d Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:01:58 -0400 Subject: [PATCH 05/14] feat(comp.py): Creates list comprehensions 1 & 2 of 8 --- src/comp/comp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 82f8821d63..f9903bb781 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -24,13 +24,13 @@ 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.startswith("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.endswith("e")] print(b) # Write a list comprehension that creates a list of names of everyone From ae10e22e7dac8086cd068d2ee4db408544d9400b Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:13:01 -0400 Subject: [PATCH 06/14] feat(comp.py): Creates list comprehension 3 of 8 --- src/comp/comp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index f9903bb781..c9052331a1 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -36,7 +36,8 @@ def __repr__(self): # 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 = [] +letters = ("C", "D", "E", "F", "G") +c = [human.name for human in humans if human.name.startswith(letters)] print(c) # Write a list comprehension that creates a list of all the ages plus 10. From c471ec8c37f42b5f894eb563a90e74de6302b0d0 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:15:06 -0400 Subject: [PATCH 07/14] feat(comp.py): Creates list comprehension 4 of 8 --- src/comp/comp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index c9052331a1..772c48535a 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -42,7 +42,7 @@ def __repr__(self): # 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 From 1f1a246c9cc1ca47ff65397684c231aa3f78b5c5 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:18:24 -0400 Subject: [PATCH 08/14] feat(comp.py): Creates list comprehension 5 of 8 --- src/comp/comp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 772c48535a..09f890078a 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -48,7 +48,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 = [] +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 From ef2ba6c562a715ebdb1c4fe7a1fd759239c79478 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:23:37 -0400 Subject: [PATCH 09/14] feat(comp.py): Creates list comprehension 6 of 8 --- src/comp/comp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 09f890078a..cc8b6696c4 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -55,7 +55,7 @@ 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 = [] +f = [(human.name, human.age) for human in humans if (human.age >= 27 and human.age <= 32)] print(f) # Write a list comprehension that creates a list of new Humans like the old From ce29ab071d52d14fecd4b3dd25d46cbc503f9c4f Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:27:11 -0400 Subject: [PATCH 10/14] feat(comp.py): Creates list comprehension 8 of 8 --- src/comp/comp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index cc8b6696c4..1af4150367 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -1,3 +1,4 @@ +import math # The following list comprehension exercises will make use of the # defined Human class. class Human: @@ -68,5 +69,5 @@ def __repr__(self): # 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) From 97a0e6152d0068874555a104271112f9701d7a58 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:31:33 -0400 Subject: [PATCH 11/14] feat(comp.py): Creates list comprehension 7 of 8 --- src/comp/comp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/comp/comp.py b/src/comp/comp.py index 1af4150367..7cb25d2533 100644 --- a/src/comp/comp.py +++ b/src/comp/comp.py @@ -63,7 +63,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 = [] +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. From 1e1d594de48db2310bb8a75cda0892b4efac1d81 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 14:54:56 -0400 Subject: [PATCH 12/14] feat(cityreader.py): Implements read csv functionality and prints list --- src/cityreader/cityreader.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 2bd8007ce7..12585e8c27 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -1,6 +1,11 @@ +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 # We have a collection of US cities with population over 750,000 stored in the # file "cities.csv". (CSV stands for "comma-separated values".) @@ -21,8 +26,12 @@ 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 - - return cities + with open("./src/cityreader/cities.csv", newline="") as csvfile: + next(csvfile) + for line in csvfile: + city_info = line.split(",") + cities.append(City(city_info[0], float(city_info[3]), float(city_info[4]))) + return cities cityreader(cities) From 6d831fe33561b5141666ac8099d483a4ad1c71a3 Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 15:13:10 -0400 Subject: [PATCH 13/14] docs(README.md): Stores questions for later code review --- README.md | 16 +++++++++++++++- problems.png | Bin 0 -> 27209 bytes 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 problems.png diff --git a/README.md b/README.md index 9a06d52c43..f71b2765a5 100644 --- a/README.md +++ b/README.md @@ -55,4 +55,18 @@ There's a separate test file `test_stretch.py` for the stretch problem that you | _Student can demonstrate applied research and language learning by completing `cityreader.py`_ | CSV: 6 points for `cityreader()`, 1 point for `cityreader_stretch()` | 0 points | 6 points | 7 points | | | **FINAL SCORE** | | **0-13** | **14-18** | **19** | | - \ No newline at end of file + + +
+
+
+
+ +--- + +
+ +> # Questions for Anthony during my 1-on-1: +> 1. Should I have used "quote_numeric" (https://docs.python.org/3/library/csv.html) instead of declaring variables to be floats (line 33)? +> 2. Should I be concerned about these "problems" in my `test_comp.py` file? +![problems from vscode](problems.png "Logo Title Text 1") \ No newline at end of file diff --git a/problems.png b/problems.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7658b25ecc5dc32cf1f979e9bee5c8040a51e6 GIT binary patch literal 27209 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 J8%vFk{uia3W%&RA literal 0 HcmV?d00001 From a2d7ad06793645756343d5d0e53de10fc39e397b Mon Sep 17 00:00:00 2001 From: OliverAbreu Date: Sat, 12 Sep 2020 15:15:22 -0400 Subject: [PATCH 14/14] docs(README.md): Adds detail to review question 1 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f71b2765a5..bb169dec27 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,6 @@ There's a separate test file `test_stretch.py` for the stretch problem that you
> # Questions for Anthony during my 1-on-1: -> 1. Should I have used "quote_numeric" (https://docs.python.org/3/library/csv.html) instead of declaring variables to be floats (line 33)? +> 1. Should I have used "quote_numeric" (https://docs.python.org/3/library/csv.html) instead of declaring variables to be floats in `cityreader.py` (line 33)? > 2. Should I be concerned about these "problems" in my `test_comp.py` file? ![problems from vscode](problems.png "Logo Title Text 1") \ No newline at end of file