Foros del Web » Programando para Internet » Python »

No entiendo :@

Estas en el tema de No entiendo :@ en el foro de Python en Foros del Web. Estoy haciendo el curso de pythonya y llege a el capitulo donde habla de llamar funciones dentro de la clase, el tema es que me ...
  #1 (permalink)  
Antiguo 24/06/2012, 20:12
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 10 meses
Puntos: 3
No entiendo :@

Estoy haciendo el curso de pythonya y llege a el capitulo donde habla de llamar funciones dentro de la clase, el tema es que me tira alto codigO.

Código Python:
Ver original
  1. class Tabla:
  2.     mat=[]
  3.     cantfilas=0
  4.     cantcolumnas=0
  5.  
  6.     def __init__(self,fi,co):
  7.         self.cantfilas=fi
  8.         self.cantcolumnas=co
  9.         for f in range(0,fi):
  10.             self.mat.append([])
  11.             for c in range(0,co):
  12.                 self.mat[f].append('')
  13.  
  14.     def cargar(self,fi,col,valor):
  15.         self.mat[fi][col]=valor
  16.  
  17.     def iniciotabla(self):
  18.         print '<table border="1">'
  19.    
  20.     def iniciofila(self):
  21.         print '<tr>'
  22.  
  23.     def mostrar(self,fi,co):
  24.         print '<td>'
  25.         print self.mat[fi][co]
  26.         print '</td>'
  27.  
  28.     def finfila(self):
  29.         print '</tr>'
  30.  
  31.     def fintabla(self):
  32.         print '</table>'
  33.  
  34.     def graficar(self):
  35.         self.iniciotabla()
  36.         for f in range(0,self.cantfilas):
  37.             self.iniciofila()
  38.             for c in range(0,self.cantcolumnas):
  39.                 self.mostrar(f,c)
  40.             self.finfila()
  41.         self.fintabla()
  42.    
  43. tabla1=Tabla(3,4)
  44. tabla1.cargar(0,0,1)
  45. tabla1.cargar(0,1,2)
  46. tabla1.cargar(0,2,3)
  47. tabla1.cargar(0,3,4)
  48. tabla1.cargar(1,0,5)
  49. tabla1.cargar(1,1,6)
  50. tabla1.cargar(1,2,7)
  51. tabla1.cargar(1,3,8)
  52. tabla1.cargar(2,0,9)
  53. tabla1.cargar(2,1,10)
  54. tabla1.cargar(2,2,11)
  55. tabla1.cargar(2,3,12)
  56. tabla1.graficar()

y me es super dificil deentender :S, hasta aca venia perfecto entendiendo. pero esto es super complicado.la funcion mostrar no entiendo porque funciona asi, osea lo que yo entiendo del codigo es que, crea una lista q es la tabla, por cada fila que va a tener la tabla crea una lista adentro de la lista... OK, y a cada lista le agrega un espacio vacio(no entiendo para que), algiuen me puede explicar el codigo por favor :S


ayudame razpe =(

Última edición por iivo94; 24/06/2012 a las 21:03 Razón: Titulo no descriptivo
  #2 (permalink)  
Antiguo 24/06/2012, 21:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: No entiendo :@

El código es bastante sencillo y asqueroso. (Lo digo por lo poco pythonesco que tiene.)

__init__: Inicia una matriz de tamaño NxM en este caso de 3x4 con cadenas vacías.
mostrar: Despliega una celda html <td></td> con el contenido de la celda en la matriz.
cargar: Pone un valor en la celda indicada.
fintabla, iniciotabla, finfila, iniciofila: Imprime lo indicado en la funcion.
graficar: Imprime la matriz entera, usando las funciones anteriores.
  #3 (permalink)  
Antiguo 24/06/2012, 21:17
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: No entiendo :@

una pregunta, en la funcion cargar es cuando crea cosas adentro de las listas q estan adentro de la lista si lo neceista?

osea antes de la funcion cargar esta asi la lista

lista=[[ ],[ ],[ ]]
y si la funcion lcargar la llamo asi
tabla.cargar(0,2,'HOLIS')
entonces se transforma a esto la lista?
lista=[[' ',' ',2],[ ],[ ]]

o sigo entendiendo mal?
  #4 (permalink)  
Antiguo 24/06/2012, 21:24
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: No entiendo :@

Cita:
Iniciado por iivo94 Ver Mensaje
una pregunta, en la funcion cargar es cuando crea cosas adentro de las listas q estan adentro de la lista si lo neceista?
No, cargar crea las cosas que lleva adentro, inicialmente toda la tabla esta cargada con cadenas vacías, pero cargar sustituye ese valor en la celda que le indiques.

osea antes de la funcion cargar esta asi la lista

Cita:
Iniciado por iivo94 Ver Mensaje
lista=[[ ],[ ],[ ]]
y si la funcion lcargar la llamo asi
tabla.cargar(0,2,'HOLIS')
entonces se transforma a esto la lista?
lista=[[' ',' ',2],[ ],[ ]]

o sigo entendiendo mal?
Sigues entiendo mal.
Código Python:
Ver original
  1. tabla = Tabla(2,2) #[['', ''], ['', '']]
  2. tabla.cargar(0,0, 'Hola') #[['Hola', ''], ['', '']]
  #5 (permalink)  
Antiguo 24/06/2012, 21:28
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: No entiendo :@

entonces por cada columna le agrega un string vacio a la lista, cada lista adentro de la "lista madre" seria una fila, y cada fila(lista) tiene tantos strings vacios como columnas tiene la tabla?
  #6 (permalink)  
Antiguo 24/06/2012, 22:43
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: No entiendo :@

Cita:
Iniciado por iivo94 Ver Mensaje
entonces por cada columna le agrega un string vacio a la lista, cada lista adentro de la "lista madre" seria una fila, y cada fila(lista) tiene tantos strings vacios como columnas tiene la tabla?
Si, eso es.
  #7 (permalink)  
Antiguo 25/06/2012, 07:12
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: No entiendo :@

gracias razpe te quiero mucho :D
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 06:56.