Foros del Web » Programando para Internet » Python »

que esta mal? :S

Estas en el tema de que esta mal? :S en el foro de Python en Foros del Web. Problema Propuesto Confeccionar una clase Tabla que permita indicarle en el constructor la cantidad de filas y columnas. Definir otra responsabilidad que podamos cargar un ...
  #1 (permalink)  
Antiguo 26/06/2012, 16:48
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 9 meses
Puntos: 3
que esta mal? :S

Problema Propuesto
Confeccionar una clase Tabla que permita indicarle en el constructor la cantidad de filas y columnas. Definir otra responsabilidad que podamos cargar un dato en una determinada fila y columna además de definir su color de fuente. Finalmente debe mostrar los datos en una tabla HTML.


yo escribi esto:
Código Python:
Ver original
  1. class Tabla:
  2.     cantfilas=0
  3.     cantcolumnas=0
  4.     mat=[]
  5.     colores=[]
  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.             self.colores.append([])
  12.             for c in range(0,co):
  13.                 self.mat[f].append(' ')
  14.                 self.colores[f].append('')
  15.  
  16.     def cargar(self,f,c,valor,co):
  17.         self.mat[f][c]=valor
  18.         self.colores[f][c]=co
  19.  
  20.     def mostrar(self,fi,co):
  21.         print '<td style=color:'+self.colores[fi][co]+'>'
  22.         print self.mat[f][c]
  23.         print '</td>'
  24.     def iniciotabla(self):
  25.         print '<table border="1">'
  26.     def iniciofila(self):
  27.         print '<tr>'
  28.     def fintabla(self):
  29.         print '</table>'
  30.     def finfila(self):
  31.         print '</tr>'
  32.     def graficar(self):
  33.         self.iniciotabla()
  34.         for f in range(0,self.cantfilas):
  35.             self.iniciofila()
  36.             for c in range(0,self.cantcolumnas):
  37.                 self.mostrar(f,c)
  38.         self.finfila()
  39.         self.fintabla()
  40.  
  41. tabla1=Tabla(3,4)
  42. tabla1.cargar(0,0,200,'#FF0000')
  43. tabla1.cargar(0,1,300,'#FF0000')
  44. tabla1.graficar()

y me dice:
Status: 500 Internal Server Error Content-Type: text/html; charset=utf-8 Cache-Control: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Content-Length: 522
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
handler.post(*groups)
File "/base/data/home/apps/pythonya/1.339838402016280589/pythonya.py", line 48, in post
exec(compile(x,'xx.py','exec'))
File "xx.py", line 46, in <module>
File "xx.py", line 39, in graficar
File "xx.py", line 25, in mostrar
NameError: global name 'f' is not defined


no entiendo q esta mal :S


YA LO ARREGLE XD

Última edición por iivo94; 26/06/2012 a las 17:01
  #2 (permalink)  
Antiguo 12/07/2012, 11:50
Avatar de iukaeru  
Fecha de Ingreso: mayo-2012
Mensajes: 127
Antigüedad: 12 años, 5 meses
Puntos: 12
Respuesta: que esta mal? :S

Al no conocer otras posibles partes del código y según entiendo, por lo que pones, aún no has definido la variable "f" o la estás repitiendo en otro trozo de código. Si dicha variable es global creará conflicto con la local.

Veo que hay relaciones con otros archivos o módulos ".py" y tendríamos que ver todo el contexto... difícil así, o por lo menos eso logro ver a "vuelo de pájaro".

Última edición por iukaeru; 12/07/2012 a las 12:16
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 15:37.