Classes - 1
Classes - 1
Classes - 1
c = Coordinate(3,4)
origin = Coordinate(0,0)
print(c.x, origin.x)
print(c.distance(origin))
print(Coordinate.distance(c, origin))
print(origin.distance(c))
print(c)
30
5.0
5.0
5.0
<3,4>
#################
## EXAMPLE: simple class to represent fractions
## Try adding more built-in operations like multiply, divide
### Try adding a reduce method to reduce the fraction (use gcd)
#################
class Fraction(object):
"""
A number represented as a fraction
"""
def __init__(self, num, denom):
""" num and denom are integers """
assert type(num) == int and type(denom) == int, "ints not used"
self.num = num
self.denom = denom
def __str__(self):
""" Retunrs a string representation of self """
return str(self.num) + "/" + str(self.denom)
def __add__(self, other):
""" Returns a new fraction representing the addition """
top = self.num*other.denom + self.denom*other.num
bott = self.denom*other.denom
return Fraction(top, bott)
def __sub__(self, other):
""" Returns a new fraction representing the subtraction """
top = self.num*other.denom - self.denom*other.num
bott = self.denom*other.denom
return Fraction(top, bott)
def __float__(self):
""" Returns a float value of the fraction """
return self.num/self.denom
def inverse(self):
""" Returns a new fraction representing 1/self """
return Fraction(self.denom, self.num)
a = Fraction(1,4)
b = Fraction(3,4)
c = a + b # c is a Fraction object
print(c)
print(float(c))
print(Fraction.__float__(c))
print(float(b.inverse()))
##c = Fraction(3.14, 2.7) # assertion error
##print a*b # error, did not define how to multiply two Fraction objects
16/16
1.0
1.0
1.3333333333333333
##############
## 3.EXAMPLE: a set of integers as class
##############
class intSet(object):
"""
An intSet is a set of integers
The value is represented by a list of ints, self.vals
Each int in the set occurs in self.vals exactly once
"""
def __init__(self):
""" Create an empty set of integers """
self.vals = []
def __str__(self):
""" Returns a string representation of self """
self.vals.sort()
return '{' + ','.join([str(e) for e in self.vals]) + '}'
s = intSet()
print(s)
s.insert(3)
s.insert(4)
s.insert(3)
print(s)
s.member(3)
s.member(5)
s.insert(6)
print(s)
#s.remove(7) # leads to an error
s.remove(3)
print(s)
{}
{3,4}
{3,4,6}
{4,6}
##############
## 4.EXAMPLE: Symbolic Python example (newton Raphson method)
##############
https://github.com/TheAlgorithms/Python/blob/3a0555bdd7d9cfb4cfcf165249bb95b67cab3877/Arithmet
icAnalysis/NewtonRaphsonMethod.py
# Author: Haseeb
''' Finds root from the point 'a' onwards by Newton-Raphson method '''
while True:
x = a
c = Decimal(a) - ( Decimal(eval(func)) /
Decimal(eval(str(diff(func)))) )
x = c
a = c
return c
# Let's Execute
if __name__ == '__main__':
# Find value of pi
# Exponential Roots