diff --git a/Grpa Week 10/question1.py b/Grpa Week 10/question1.py index e69de29..af45f26 100644 --- a/Grpa Week 10/question1.py +++ b/Grpa Week 10/question1.py @@ -0,0 +1,19 @@ +class Calculator: + def __init__(self, a, b): + self.a = a + self.b = b + + def add(self): + return self.a + self.b + + def multiply(self): + return self.a * self.b + + def subtract(self): + return self.a - self.b + + def quotient(self): + return self.a // self.b + + def remainder(self): + return self.a % self.b diff --git a/Grpa Week 10/question2.py b/Grpa Week 10/question2.py index e69de29..35ba22a 100644 --- a/Grpa Week 10/question2.py +++ b/Grpa Week 10/question2.py @@ -0,0 +1,23 @@ +class StringManipulation: + def __init__(self, words): + self.words = words + + def total_words(self): + return len(self.words) + + def count(self, some_word): + return self.words.count(some_word) + + def words_of_length(self, length): + return [word for word in self.words if len(word) == length] + + def words_start_with(self, char): + return [word for word in self.words if word.startswith(char)] + + def longest_word(self): + if not self.words: + return "" + return max(self.words, key=len) + + def palindromes(self): + return [word for word in self.words if word == word[::-1]] diff --git a/Grpa Week 10/question3.py b/Grpa Week 10/question3.py index e69de29..5a76e1c 100644 --- a/Grpa Week 10/question3.py +++ b/Grpa Week 10/question3.py @@ -0,0 +1,26 @@ +class Shape: + def __init__(self, name): + self.name = name + self.area = None + self.perimeter = None + + def display(self): + print(f'{self.name} has an area of {self.area} and perimeter of {self.perimeter}') + +class Square(Shape): + def __init__(self, side): + # (2) Call base constructor and set name to "Square" + super().__init__("Square") + # (3) Assign side to the attribute + self.side = side + # (4) Call the compute methods + self.compute_area() + self.compute_perimeter() + + def compute_area(self): + # (5) Compute area and assign to self.area (inherited from Shape) + self.area = self.side * self.side + + def compute_perimeter(self): + # (6) Compute perimeter and assign to self.perimeter (inherited from Shape) + self.perimeter = 4 * self.side diff --git a/Grpa Week 10/question4.py b/Grpa Week 10/question4.py index e69de29..4bd9722 100644 --- a/Grpa Week 10/question4.py +++ b/Grpa Week 10/question4.py @@ -0,0 +1,24 @@ +class Time: + def __init__(self, time): + self.time = time + + def seconds_to_minutes(self): + mins = self.time // 60 + secs = self.time % 60 + return f"{mins} min {secs} sec" + + def seconds_to_hours(self): + hours = self.time // 3600 + remaining_secs = self.time % 3600 + mins = remaining_secs // 60 + secs = remaining_secs % 60 + return f"{hours} hrs {mins} min {secs} sec" + + def seconds_to_days(self): + days = self.time // 86400 # 24 * 3600 + remaining_secs = self.time % 86400 + hours = remaining_secs // 3600 + remaining_secs %= 3600 + mins = remaining_secs // 60 + secs = remaining_secs % 60 + return f"{days} days {hours} hrs {mins} min {secs} sec"