π Chapter 3
π‘ Code
print(int)
print(float)
print(dir(int))
print(dir(float))
print()
print()
n=10
print(n+100)
print(n.__add__(100))
print(n.__bool__(), bool(n))
print(n * 100, n.__mul__(100))
print()
print()
class Fruit:
def __init__(self,name,price):
self._name = name
self._price = price
def __str__(self):
return 'Fruit Class Info : {}, {}'.format(self._name,self._price)
def __add__(self,x):
print('Called >> __add__ Method.')
return self._price + x._price
def __sub__(self,x):
print('Called >> __sub__ Method.')
return self._price - x._price
def __le__(self,x):
print('Called >> __sub__ Method.')
return self._price <= x._price
def __ge__(self,x):
print('Called >> __sub__ Method.')
return self._price >= x._price
s1 = Fruit('Orange',7500)
s2 = Fruit('Banana', 3000)
print(s1 + s2)
print(s1 - s2)
print(s1 >= s2)
print(s1 <= s2)
print(s1)
print(s2)
class Vector:
def __init__(self,*args):
'''Create a vector, example : v = Vector(5,10)'''
if len(args) == 0:
self._x,self._y = 0, 0
else:
self._x, self._y = args
def __repr__(self):
'''Returns the vector informations'''
return 'Vector(%r,%r)' % (self._x,self._y)
def __add__(self,other):
'''Returns the vector addition of self and other'''
return Vector(self._x + other._x, self._y + other._y)
def __mul__(self,y):
return Vector(self._x * y, self._y * y)
def __bool__(self):
return bool(max(self._x, self._y))
v1 = Vector(5,7)
v2 = Vector(23,35)
v3 = Vector(0,0)
print(Vector.__init__.__doc__)
print(Vector.__repr__.__doc__)
print(Vector.__add__.__doc__)
print(v1, v2, v3)
print(v1 + v2)
print(v1 * 10)
print(v2 * 3)
print(bool(v1), bool(v2))
print(bool(v3))
print()
print()
import dis
dis.dis(v2.__add__)
pt1 = (1.0, 5.0)
pt2 = (2.5, 1.5)
from math import sqrt
l_leng1 = sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2)
print(l_leng1)
from collections import namedtuple
Point = namedtuple('Point', 'x y')
pt3 = Point(1.0, 5.0)
pt4 = Point(2.5, 1.5)
l_leng2 = sqrt((pt3.x - pt4.x) ** 2 + (pt3.y - pt4.y) ** 2)
print(l_leng2)
Point1 = namedtuple('Point', ['x', 'y'])
Point2 = namedtuple('Point', 'x, y')
Point3 = namedtuple('Point', 'x y')
Point4 = namedtuple('Point', 'x y x class', rename = True)
temp_dict = {'x' : 75, 'y' : 55}
print(Point1, Point2, Point3, Point4)
p1 = Point1(x = 10, y = 35)
p2 = Point2(x= 20, y = 40)
p3 = Point3(x= 45, y = 20)
p4 = Point4(10, 20, 30, 40)
p5 = Point3(**temp_dict)
print()
print(p1)
print(p2)
print(p3)
print(p4)
print(p5)
print(p1[0] + p2[1])
print(p1.x + p2.y)
x, y = p3
print(x + y)
temp = [52, 38]
p6 = Point1._make(temp)
print(p6)
print(p1._fields, p2._fields, p3._fields)
print(p1._asdict(), p6._asdict())
Classes = namedtuple('Classes', ['rank', 'number'])
numbers = [str(n) for n in range(1,21)]
ranks = 'A B C D'.split()
students = [Classes(rank, number) for rank in ranks for number in numbers]
print(len(students))
print(students)
students2 = [
Classes(rank, number)
for rank in 'A B C D'.split()
for number in [str(n)
for n in range(1,21)]]
print(len(students2))
print(students2)
for s in students2:
print(s)