# 0612.py class vettore (list): def __init__(A,x,y,z): A(x,y,z) def __call__(A,x,y,z): del A[:]; A.extend([x,y,z]) def __add__(A,B): (x,y,z)=A; (u,v,w)=B; return vettore(x+u,y+v,z+w) def __mul__(A,t): (x,y,z)=A; return vettore(t*x,t*y,t*z) def __rmul__(A,t): return A*t def __mod__ (A,B): # prodotto scalare. (x,y,z)=A; (u,v,w)=B; return x*u+y*v+z*w def __and__ (A,B): # prodotto vettoriale. (x,y,z)=A; (u,v,w)=B return vettore(y*w-z*v,z*u-x*w,x*v-y*u) def __str__ (A): return '%.2f %.2f %.2f' %(tuple(A)) def lun (A): (x,y,z)=A; return math.sqrt(x*x+y*y+z*z) v=vettore(3,4,5); w=vettore(1,3,2) print (v) # 3.00 4.00 5.00 print (v+w) # 4.00 7.00 7.00 print (v&w) # -7.00 -1.00 5.00 print (v%w) # 25