diff --git a/src/cityreader/cityreader.py b/src/cityreader/cityreader.py index 2bd8007ce7..9bd8f1252d 100644 --- a/src/cityreader/cityreader.py +++ b/src/cityreader/cityreader.py @@ -14,21 +14,39 @@ # # 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 + + +class City: + def __init__(self,name,lat,lon): + self.name = name + self.lat = lat + self.lon = lon + cities = [] def cityreader(cities=[]): + with open('cities.csv','r') as csvfile: + csvreader = csv.reader(csvfile) + for row in csvreader: + cities.append(row) + cities.pop(0) + return cities + + # return 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 - return cities + cityreader(cities) # Print the list of cities (name, lat, lon), 1 record per line. for c in cities: - print(c) + print(tuple([c[0],c[3],c[4]])) # STRETCH GOAL! # diff --git a/src/comp/comp.py b/src/comp/comp.py index 82f8821d63..06b01f28c6 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 = [i.name for i in humans if i.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 = [i.name for i in humans if i.name.endswith('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 = [i.name for i in humans if i.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 = [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 = ['-'.join([i.name,str(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 = [] +f = [tuple([i.name,i.age]) for i in humans if i.age in range(27,33)] 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 = [tuple([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. print("Square root of ages:") import math -h = [] +h = [math.sqrt(i.age) for i in humans] print(h) diff --git a/src/oop/oop1.py b/src/oop/oop1.py index b7268c5263..5ff8e4e0c6 100644 --- a/src/oop/oop1.py +++ b/src/oop/oop1.py @@ -8,7 +8,7 @@ # v v # [Car] [Motorcycle] # -# Each class can simply "pass" for its body. The exercise is about setting up +# Each class can simply "pass" for its body. The exercise is about sett ing up # the hierarchy. # # e.g. @@ -17,3 +17,25 @@ # pass # # Put a comment noting which class is the base class + +class Vehicle: + 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 + diff --git a/src/oop/oop2.py b/src/oop/oop2.py index 29d3e481fe..33a47ff5c1 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. @@ -19,6 +21,13 @@ def __init__(self, num_wheels): # TODO +class Motorcycle(GroundVehicle): + def __init__(self,num_wheels=2): + super().__init__(num_wheels) + + def drive(self): + return 'BRAAAP!!' + vehicles = [ GroundVehicle(), GroundVehicle(), @@ -28,5 +37,6 @@ def __init__(self, num_wheels): ] # Go through the vehicles list and print the result of calling drive() on each. - +for i in vehicles: + print(i.drive()) # TODO