
Problemas con clases Python. Dos ejercicios
Publicado por María de los Reyes (3 intervenciones) el 22/12/2014 17:06:48
Buenas tarde tengo un par de problemas al elaborar el código en unos ejercicios, necesito ayuda urgente:
Primer ejercicio: Dado un conjunto de datos en la forma (x, y) con y = f(x), cree un conjunto de clases
que permita mostrar diferentes tipos de gráficas de dichos datos: Histograma, diagrama
de barras, líneas de puntos, puntos, etc.
Mi codigo:
class Graficos(object):
def __init__(self):
self.rango = X
self.funcion = Y
self.titulo = t
if m == 'f1':
X = np.linspace(-100,100,1000)
Y = (3*X)/(np.sqrt(X**2))
t = '(3*X)/(np.sqrt(X**2)'
if m == 'f2':
X = np.linspace(-100,100,1000)
Y = (X+5)
t = 'X+5'
if m == 'f3':
X = np.linspace(1,10,50)
Y = (np.log (X))/X
t = 'lnx/x'
if m == 'f4':
X = np.linspace(-100,100,1000)
Y = (X*2)*(np.exp(x**2))
t = '2x *e(x**2)'
def histograma (self):
plt.figure ('histograma')
plt.title (self.titulo)
plt.hist(self.funcion,10000, self.rango)
plt.show ()
if __name__=='__main__':
m=raw_input('Introduce la función que quieres mostrar: ')
g=Graficos()
g.histograma()
Duda: Aquí creo la clase que necesito e introduzco las siguientes funciones, todo eso lo entiendo, pero a continuación cuando realizo el método histograma me dan unos errores. Según he leído esto se puede hacer con dos paquetes numpy y matplotlib; pero me pone para poder realizarlo con vectores no con funciones, por lo que me quedo muy descolocada, no sé como solucionarlo, al igual que no se muy bien como elegir la función en clases a la hora de ejecutarlo.
Sé que a la hora de hacer los diagramas de barras se usa también vectores pero yo lo quiero hacer con funciones ¿cómo lo hago?
Segundo ejercicio: Aquí quiero hacer una jerarquía de clases, en mi caso coches y motos, y a partir de ahí introducir por teclado o tenerlos ya definidos varios ejemplos para que me diga detalladamente cual es el modelo, marca, color y motor. Pero no sé como introducirlos para realizarlo, se darle valores globales en los paréntesis pero no se introducir más de uno fuera de ellos ni siquiera uno, me da muchos errores cada vez que soluciono alguno...
class Coches (object):
def __init__(self,marca,modelo,color,motor): #Creo una clase que indentifice un coche en sus aspectos generales.
self.marca = marca
self.modelo = modelo
self.color = color
self.motor = motor
def marca (Coches): #Defino el método marca
print 'La marca de este coche 1 es: ', coche1.marca
print 'La marca de este coche 2 es: ', coche2.marca
def modelo (Coches): # Defino el método que muestra el modelo del coche
print 'El modelo de este coche 1 es: ', coche1.modelo
print 'El modelo de este coche 2 es: ', coche2.modelo
def color (Coches): # Defino el método que nos dice el color del coche
print 'El color de este coche 1 es: ', coche1.color
print 'El color de este coche 2 es: ', coche2.color
def motor (Coches): # Defino el método que nos muestra el motor del coche
print 'El motor de este coche 1 es: ', coche1.motor
print 'El motor de este coche 2 es: ', coche2.motor
if __name__=='__main__':
marca = 'pepe' #Aquí he probado ponerle valor 0 none y no me deja de dar error no se cómo ponerlo.
modelo = 'pepe'
color = 'pepe'
motor = 'pepe'
coche1= Coches('mercedes','clk','gris','2200cc')
coche2= Coches('fiat', '500','blanco','900cc')
c= Coches (marca,modelo,color,motor)
c.marca ()
c.modelo ()
c.color ()
c.motor ()
La segunda parte seria igual solo que con motos ( todo en el mismo ejercicio)
Class Motos (object):
def marca (Motos): #Defino el método marca
print 'La marca de esta moto es: ',self.marca
def modelo (Motos): # Defino el método que muestra el modelo de la moto
print 'El modelo de esta moto es: ',self.modelo
def color (Motos): # Defino el método que nos dice el color de la moto
print 'El color de esta moto es: ',self.color
def motor (Motos): # Defino el método que nos muestra el motor de la moto
print 'El motor de esta moto es: ',self.motor
Muchas gracias, espero una respuesta rápida.
Primer ejercicio: Dado un conjunto de datos en la forma (x, y) con y = f(x), cree un conjunto de clases
que permita mostrar diferentes tipos de gráficas de dichos datos: Histograma, diagrama
de barras, líneas de puntos, puntos, etc.
Mi codigo:
class Graficos(object):
def __init__(self):
self.rango = X
self.funcion = Y
self.titulo = t
if m == 'f1':
X = np.linspace(-100,100,1000)
Y = (3*X)/(np.sqrt(X**2))
t = '(3*X)/(np.sqrt(X**2)'
if m == 'f2':
X = np.linspace(-100,100,1000)
Y = (X+5)
t = 'X+5'
if m == 'f3':
X = np.linspace(1,10,50)
Y = (np.log (X))/X
t = 'lnx/x'
if m == 'f4':
X = np.linspace(-100,100,1000)
Y = (X*2)*(np.exp(x**2))
t = '2x *e(x**2)'
def histograma (self):
plt.figure ('histograma')
plt.title (self.titulo)
plt.hist(self.funcion,10000, self.rango)
plt.show ()
if __name__=='__main__':
m=raw_input('Introduce la función que quieres mostrar: ')
g=Graficos()
g.histograma()
Duda: Aquí creo la clase que necesito e introduzco las siguientes funciones, todo eso lo entiendo, pero a continuación cuando realizo el método histograma me dan unos errores. Según he leído esto se puede hacer con dos paquetes numpy y matplotlib; pero me pone para poder realizarlo con vectores no con funciones, por lo que me quedo muy descolocada, no sé como solucionarlo, al igual que no se muy bien como elegir la función en clases a la hora de ejecutarlo.
Sé que a la hora de hacer los diagramas de barras se usa también vectores pero yo lo quiero hacer con funciones ¿cómo lo hago?
Segundo ejercicio: Aquí quiero hacer una jerarquía de clases, en mi caso coches y motos, y a partir de ahí introducir por teclado o tenerlos ya definidos varios ejemplos para que me diga detalladamente cual es el modelo, marca, color y motor. Pero no sé como introducirlos para realizarlo, se darle valores globales en los paréntesis pero no se introducir más de uno fuera de ellos ni siquiera uno, me da muchos errores cada vez que soluciono alguno...
class Coches (object):
def __init__(self,marca,modelo,color,motor): #Creo una clase que indentifice un coche en sus aspectos generales.
self.marca = marca
self.modelo = modelo
self.color = color
self.motor = motor
def marca (Coches): #Defino el método marca
print 'La marca de este coche 1 es: ', coche1.marca
print 'La marca de este coche 2 es: ', coche2.marca
def modelo (Coches): # Defino el método que muestra el modelo del coche
print 'El modelo de este coche 1 es: ', coche1.modelo
print 'El modelo de este coche 2 es: ', coche2.modelo
def color (Coches): # Defino el método que nos dice el color del coche
print 'El color de este coche 1 es: ', coche1.color
print 'El color de este coche 2 es: ', coche2.color
def motor (Coches): # Defino el método que nos muestra el motor del coche
print 'El motor de este coche 1 es: ', coche1.motor
print 'El motor de este coche 2 es: ', coche2.motor
if __name__=='__main__':
marca = 'pepe' #Aquí he probado ponerle valor 0 none y no me deja de dar error no se cómo ponerlo.
modelo = 'pepe'
color = 'pepe'
motor = 'pepe'
coche1= Coches('mercedes','clk','gris','2200cc')
coche2= Coches('fiat', '500','blanco','900cc')
c= Coches (marca,modelo,color,motor)
c.marca ()
c.modelo ()
c.color ()
c.motor ()
La segunda parte seria igual solo que con motos ( todo en el mismo ejercicio)
Class Motos (object):
def marca (Motos): #Defino el método marca
print 'La marca de esta moto es: ',self.marca
def modelo (Motos): # Defino el método que muestra el modelo de la moto
print 'El modelo de esta moto es: ',self.modelo
def color (Motos): # Defino el método que nos dice el color de la moto
print 'El color de esta moto es: ',self.color
def motor (Motos): # Defino el método que nos muestra el motor de la moto
print 'El motor de esta moto es: ',self.motor
Muchas gracias, espero una respuesta rápida.
Valora esta pregunta


0