Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Duda con la ejecución de un ejercicio en Python.

Estas en el tema de Duda con la ejecución de un ejercicio en Python. en el foro de Python en Foros del Web. Hola que tal... me pueden dar una mano con este ejercicio que resolví mal?. El problema que tengo es que no se como trabaja, si ...
  #1 (permalink)  
Antiguo 09/07/2013, 16:21
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Duda con la ejecución de un ejercicio en Python.

Hola que tal... me pueden dar una mano con este ejercicio que resolví mal?. El problema que tengo es que no se como trabaja, si alguien se tomara el trabajo de explicarme paso a paso como llega al resultado correcto que es "10". Le estaría muy agradecido...


Indicar el resultado de la ejecucion del siguiente programa:

Código Python:
Ver original
  1. from record import record
  2.  
  3. class k(record):
  4.   l = 2
  5.   m = 5
  6.   n = 9
  7.  
  8. o = k(l = 5)
  9. p = k(m = 7)
  10. q = k(n = 3)
  11.  
  12. print o.n / o.n + p.n
------------------------------------------------------------
Respuesta: 6.9 <----MI RESPUESTA

Incorrecto

Respuesta correcta: 10
-------------------------------------------------------------
  #2 (permalink)  
Antiguo 09/07/2013, 18:09
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Duda con la ejecución de un ejercicio en Python.

A menos que nos des el código de record no podemos darte una respuesta clara.

Edito:

En tu expresion
o.n / o.n + p.n

Se evalua como
(o.n / o.n) + p.n

Y (o.n / o.n) siempre te va a dar uno (excepto si es cero). Ahora solo falta saber porque p.n es 9 y eso nos lo dirá el constructor de record.

Última edición por razpeitia; 09/07/2013 a las 18:17
  #3 (permalink)  
Antiguo 09/07/2013, 18:57
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con la ejecución de un ejercicio en Python.

Cita:
Iniciado por razpeitia Ver Mensaje
A menos que nos des el código de record no podemos darte una respuesta clara.

Edito:

En tu expresion
o.n / o.n + p.n

Se evalua como
(o.n / o.n) + p.n

Y (o.n / o.n) siempre te va a dar uno (excepto si es cero). Ahora solo falta saber porque p.n es 9 y eso nos lo dirá el constructor de record.
Hola y gracias por responderme, mira... este ejercicio era uno de un total de diez que me tomaron en un examen reciente. Este examen no consistía en desarrollar ningún ítem, solo se basaba en completar con ejecuciones de salida para cada ejercicio. Intente comprender este ejercicio con el depurador de Python, pero no me dejo por el "record" y te aseguro que no había código adicional... por eso quería saber como llega al resultado que dice ser "10"
  #4 (permalink)  
Antiguo 09/07/2013, 19:03
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Duda con la ejecución de un ejercicio en Python.

Bueno, si el atributo "n" es 9 por default en cada instancia, solo hay que sustituir:

Código Python:
Ver original
  1. o.n / o.n + p.n = 9 / 9 + 9

No creo que tengas duda con eso.


Saludos
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 09/07/2013, 19:22
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con la ejecución de un ejercicio en Python.

Cita:
Iniciado por Carlangueitor Ver Mensaje
Bueno, si el atributo "n" es 9 por default en cada instancia, solo hay que sustituir:

Código Python:
Ver original
  1. o.n / o.n + p.n = 9 / 9 + 9

No creo que tengas duda con eso.


Saludos
me da no se que preguntarte, pero si no lo hago no lo entenderé jamas. Porque o.n= 9 y p.n = 9?... al menos ahora ya puedo ver porque el resultado correcto era 10.

Acaso o y p no influyen?... mi ignorancia me hizo interpretarlo así ---> 2.9 / 2.9 + 5.9 = 6.9 y estuvo muy mal!!

Última edición por Azrael_Carmesi; 09/07/2013 a las 19:35
  #6 (permalink)  
Antiguo 10/07/2013, 00:15
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Duda con la ejecución de un ejercicio en Python.

Cita:
Iniciado por Azrael_Carmesi Ver Mensaje
me da no se que preguntarte, pero si no lo hago no lo entenderé jamas. Porque o.n= 9 y p.n = 9?... al menos ahora ya puedo ver porque el resultado correcto era 10.
Por que o y p son objetos.

Cita:
Iniciado por Azrael_Carmesi Ver Mensaje
Acaso o y p no influyen?... mi ignorancia me hizo interpretarlo así ---> 2.9 / 2.9 + 5.9 = 6.9 y estuvo muy mal!!
No se como sacaste que o == 2 y que ademas poniéndole un punto (a un identificador) lo conviertes a flotante.

Mira trata de correr este ejemplo en la terminal de dinámica de python:
Código Python:
Ver original
  1. a = 9
  2. print a.2 # Error de sintaxis

Código Python:
Ver original
  1. a = 9
  2. b = 2
  3. a.b # Error de atributo

Si ejecutas el ejemplo, veras que efectivamente da 10 el resultado. Pero es porque (y discúlpame si sueno cortante) no conoces primero el lenguaje y segundo programar. Entonces sin este conocimiento del lenguaje y los fundamentos básicos de programación mucho menos vas a poder comprender conceptos mas avanzados como programación orientada a objetos.

Código Python:
Ver original
  1. class k:
  2.     l = 2
  3.     m = 5
  4.     n = 9
  5.  
  6.     # Ignora este bloque de codigo
  7.     # Solamente es para simular record
  8.     def __init__(self, l=None, m=None, n=None):
  9.         if l is not None:
  10.             self.l = l
  11.         if m is not None:
  12.             self.m = m
  13.         if n is not None:
  14.             self.n = n
  15.     # Fin del bloque
  16.  
  17. o = k(l = 5)
  18. p = k(m = 7)
  19. q = k(n = 3)
  20.  
  21. print o.n / o.n + p.n

Recursos para aprender python hay muchos:
1. Python para todos
2. Dive into python
3. Introducción a la programación con Python
  #7 (permalink)  
Antiguo 10/07/2013, 01:32
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con la ejecución de un ejercicio en Python.

Hey razpeitia muchas gracias por tus consejos. Es cierto no soy de lo mejor en esto de los entornos de programación, pero me gusta saber lo que hago y cuando me equivoco en algo trato siempre en la medida de investigar como se hace correctamente... si habrá burradas que habré preguntado en clases jeje!... pero si no las hago me quedare con las dudas, además de seguro pregunto por más de uno que tienen la misma duda que yo y no se animan a preguntar por temor a quedar mal.

Es que los ejemplos del libro de Marzal, no me sirvieron ni siquiera para empezar con este tipo de ejercicios y no enganche ni por cerca como trabajan "record" y "class"

PD: muy groso tu simulador de "record"

Creo haber comprendido lo de los objetos!

Código Python:
Ver original
  1. class k:
  2.     l = 2
  3.     m = 5
  4.     n = 9
  5.  
  6.     # Simulador de "record"
  7.     def __init__(self, l=None, m=None, n=None):
  8.         if l is not None:
  9.             self.l = l
  10.         if m is not None:
  11.             self.m = m
  12.         if n is not None:
  13.             self.n = n
  14.     # Fin del bloque
  15.  
  16. o = k(l = 5)
  17. p = k(m = 7)
  18. q = k(n = 3)
  19.  
  20. print o.n / o.n + p.n # Seria 9 / 9 + 9
  21.  
  22. # o.m=5--o.n=9 ("o" no coincide con "m y n") y o.l=5 ("o" si coincide con "l")
  23. # p.l=2--p.n=9 ("p" no coincide con "l y n") y p.m=7 ("p" si coincide con "m")
  24. # q.l=2--q.m=5 ("q" no coincide con "l y m") y q.n=3 ("q" si coincide con "n")


y ya que estaba me puse con otro ejercicio similar y comprendi como trabaja.

Código Python:
Ver original
  1. class j:
  2.     k = ''
  3.     l = 0
  4.     m = 0
  5.    
  6.     # Simulador de "record"
  7.     def __init__(self, k=None, l=None, m=None):
  8.         if k is not None:
  9.             self.k = k
  10.         if l is not None:
  11.             self.l = l
  12.         if m is not None:
  13.             self.m = m
  14.     # Fin del bloque
  15.  
  16. n = j(k = 'nedi', l = 8, m = 28)
  17. o = j(k = 'voqi', l = 18, m = 4)
  18. p = j(k = 'ftay', l = 13, m = 8)
  19.  
  20. q = [n, o, p]
  21.  
  22. print q[2].l # Seria 13
  23.  
  24. # q[0].l=8--q[0].m=28
  25. # q[1].l=18--q[1].m=4
  26. # q[2].l=13--q[2].m=8

Bueno ahora seguiré por mi cuenta saludos razpeitia y Carlangueitor.
  #8 (permalink)  
Antiguo 10/07/2013, 20:48
ger84
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con la ejecución de un ejercicio en Python.

En algunos cursos se enseñan registros con python, pero como es poco intuitivo hacerlo con métodos (ya que los registros carecen de ésto), alguien, creo que Alex Martelli, implementó el modulo record, que ayuda a declarar registros a la manera de otros lenguajes.

Así, podes simular

Código Python:
Ver original
  1. class Point(record):
  2.     x = 0.0
  3.     y = 0.0
  4.  
  5. p0 = Point(x=4,y=3)

Hay un fragmento de este módulo en un apéndice del libro Introducción a la Programación con Python de la U. JAume Castelló, interesante.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:17.