Anuncio

Colapsar
No hay ningún anuncio todavía.

Clase de vectores, funcion principal con menu.

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Python Clase de vectores, funcion principal con menu.

    Buenas, tengo mi siguiente clase que suma y resta dos vectores:

    Código:
    class Vector2d:
    
    
        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,nuevovector):
            return Vector2d(self.x+nuevovector.x,self.y+nuevovector.y)
    
    
        def __sub__(self,nuevovector):
            return Vector2d(self.x-nuevovector.x,self.y-nuevovector.y)
    Como podria usar el metodo especial if __name__=='main' para que se pida al usuario que ingrese dos vectores y luego se despliege un menu que le permita elegir entre sumarlos y/o restarlos?

    Nose como usar el if __name__=='__main__' no entiendo como deberia ir etc.
    Desde ya gracias.

    - - - Actualizado - - -

    Mi actual programa ahora es:

    Código:
    import string
    class Vector2d:
    
    
        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,nuevovector):
            return Vector2d(self.x+nuevovector.x,self.y+nuevovector.y)
    
    
        def __sub__(self,nuevovector):
            return Vector2d(self.x-nuevovector.x,self.y-nuevovector.y)
    
    
    
    
    if __name__=='__main__':
        x=input('ingrese primera coordenada del primer vector')
        y=input('ingrese segunda coordenada del primer vector')
        z=input('ingrese primera coordenada del segundo vector')
        w=input('ingrese segunda coordenada del segundo vector')
        a=Vector2d(x,y)
        b=Vector2d(z,w)
        print a+b
        menu={'S':a+b,'R':a-b}
        print '[S] para sumar, [R] para restar'
        choice=string.upper(raw_input())
        menu[choice](a,b)
    Pero al ejecutar en el terminal, python vector.py, se me ejecuta bien hasta la parte donde me dice '[S] para sumar, [R] para restar' pero se que no esta bien puesto el menu, nose como hacerlo, la idea es que al apretar S, me de el valor de a+b (la suma de los dos vectores). Como lo hago?

    - - - Actualizado - - -

    Código:
    import string
    class Vector2d:
    
    
        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,nuevovector):
            return Vector2d(self.x+nuevovector.x,self.y+nuevovector.y)
    
    
        def __sub__(self,nuevovector):
            return Vector2d(self.x-nuevovector.x,self.y-nuevovector.y)
    
    
    
    
    if __name__=='__main__':
        x=input('ingrese primera coordenada del primer vector: ')
        y=input('ingrese segunda coordenada del primer vector: ')
        z=input('ingrese primera coordenada del segundo vector: ')
        w=input('ingrese segunda coordenada del segundo vector: ')
        a=Vector2d(x,y)
        b=Vector2d(z,w)
        
        print '''          ### Menu ###
        (1) Suma
        (2) Resta'''
        respuesta=raw_input('Ingrese una seleccion ')
        if '1' in respuesta: print 'La suma es',a+b
        elif '2' in respuesta: print 'La resta es',a-b
    Ya he logrado hacerlo , arriba el codigo para que quizas a alguien el sirva a futuro
    Última edición por lindtaylor; 26/11/2012, 05:50:11.
    asdadsdsassdadsasdadsadsads

Contenido relacionado

Colapsar

Trabajando...
X