diff options
Diffstat (limited to 'mit/oop/fractions.py')
| -rw-r--r-- | mit/oop/fractions.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/mit/oop/fractions.py b/mit/oop/fractions.py new file mode 100644 index 0000000..46f62a8 --- /dev/null +++ b/mit/oop/fractions.py @@ -0,0 +1,80 @@ +#!/usr/bin/python3 + +# Example of class usage in python. + +# Let's define a new class to represent fraction numbers + + +class fraction(object): + def __init__(self, numer, denom): + self.numer = numer + self.denom = denom + + def __str__(self): + return str(self.numer) + ' / ' + str(self.denom) + + + # Getters definition + # We almost never want to directly manipulate the data inside objects, + # so, we should (almost) always define getters and setters methods for data + # manipulation inside a class + + def getNumer(self): + return self.numer + + def getDenom(self): + return self.denom + + def __add__(self, other): + new_numer = (self.getNumer() * other.getDenom()) + \ + (other.getNumer() * self.getDenom()) + new_denom = (self.getDenom() * other.getDenom()) + + return fraction(new_numer, new_denom) + + def __sub__(self, other): + new_numer = (self.getNumer() * other.getDenom()) - \ + (other.getNumer() * self.getDenom()) + new_denom = (self.getDenom() * other.getDenom()) + + return fraction(new_numer, new_denom) + + # Return the float representation of the fraction + def convert(self): + return self.getNumer() / self.getDenom() + + +# Set example + +# Create a class to represent a set of numbers which are not allowed to be +# repeated + +class Set(object): + + def __init__(self): + self.set = [] + + def insert(self, nval): + if nval not in self.set: + self.set.append(nval) + else: + raise ValueError(str(nval) + " is already in the set") + + def remove(self,nval): + try: + self.set.remove(nval) + except: + raise ValueError(str(nval) + " not found!") + + def member(self, nval): + return nval in self.set + + def __str__(self): + self.set.sort() + + result = '' + + for i in self.set: + result += str(i) + ', ' + + return '{' + result[:-2] + '}' |
