Python - Clase de numeros con su incerteza.

   
Vista:

Clase de numeros con su incerteza.

Publicado por jmarquez (12 intervenciones) el 26/11/2012 08:06:39
Buenas, tengo un ejercicio que dice asi:

Escriba un modulo en python (archivo .py) en el que defina una clase de cantidades con incertezas, es decir, un float \pm otro float. Debe imprementar documentacion para la clase que se despliegue en pantalla al llamar al modulo con la opcion -h desde la linea de comando. Por otra parte, debe implementar metodos especiales para: la suma, la resta, el producto, la division y la impresion.
Ademas debe implementar una funcion principal (main) para el modulo a travez de la construccion if __name__=='__main__', que le pida al usuario un par de numeros con incerteza, despues le ofrezca un menu para eleegir la operacion a ejecutar y finalmente imprima el resultado.

El codigo que he logrado hacer hasta ahora es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class Numeroincerteza:   #x=numero, y=su incerteza
	'''Programa que opera numeros con su respectiva incerteza'''
 
 
	def __init__(self,x,y):
		self.x=x
		self.y=y
 
	def __repr__(self):
		return "(%9.5f,%9.5f)" %(self.x,self.y)
 
	def __add__(self,nuevonumero):
		return Numeroincerteza(self.x+nuevonumero.x,self.y+nuevonumero.y)
 
	def __sub__(self,nuevonumero):
		return Numeroincerteza(self.x-nuevonumero.x,self.y+nuevonumero.y)
 
	def __mul__(self,nuevonumero):
		return Numeroincerteza(self.x*nuevonumero.x,(self.x*nuevonumero.x)*(self.y/self.x+nuevonumero.y/nuevonumero.x))
 
	def __div__(self,nuevonumero):
		return Numeroincerteza(self.x/nuevonumero.x,(self.x/nuevonumero.x)*(self.y/self.x+nuevonumero.y/nuevonumero.x))
 
 
 
 
if __name__=='__main__':
 
	print Numeroincerteza.__doc__
	x=input('Ingrese el primero numero: ')
	y=input('Ingrese la incerteza del primero numero ingresado: ')
	z=input('Ingrese el segundo numero: ')
	w=input('Ingrese la incerteza del segundo numero ingresado: ')
 
	a=Numeroincerteza(x,y)
	b=Numeroincerteza(z,w)
 
	print ''' ###Menu###
	(1) Suma los numeros con su incerteza
	(2) Resta los numeros con su incerteza
	(3) Producto de los numeros con su incerteza
	(4) Division de los numeros con su incerteza'''

	respuesta=raw_input('Ingrese una seleccion: ')

	if respuesta== '1' or respuesta=='2' or respuesta=='3' or respuesta=='4':
		if '1' in respuesta: print 'La suma con su incerteza es: ',a+b
		elif '2' in respuesta: print 'La resta con su incerteza es: ',a-b
		elif '3' in respuesta: print 'El producto con su incerteza es: ',a*b
		elif '4' in respuesta: print 'La division con su incerteza es: ',a/b
	else:
		print 'Ingrese una de las opciones validas'


El cual parece hasta ahora funcionar bien, pero cual es ese metodo especial de impresion del que se habla? Tambien no se como hacer lo de la opcion -h.
Desde ya gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder