Foros del Web » Programando para Internet » Python »

Iteraciones con el ciclo for

Estas en el tema de Iteraciones con el ciclo for en el foro de Python en Foros del Web. Que tal maestros, aqui con una nueva duda...como sabran el bucle for en python tiene cosillas interesantes y ahorra trabajo...pero ese ahorro de trabajo me ...
  #1 (permalink)  
Antiguo 31/07/2009, 21:33
 
Fecha de Ingreso: diciembre-2007
Ubicación: Frente al ordenador...
Mensajes: 139
Antigüedad: 16 años, 4 meses
Puntos: 1
Iteraciones con el ciclo for

Que tal maestros, aqui con una nueva duda...como sabran el bucle for en python tiene cosillas interesantes y ahorra trabajo...pero ese ahorro de trabajo me impide hacer algo que quiero...

def mostrar_tabla():
keri = 'SELECT * FROM tabla1 ORDER BY Fecha DESC;'
C.execute(keri)
res = C.fetchall()

for reg in res:
print reg[0], '|', reg[1], reg[2], reg[3], reg[4], reg[5]

#num = raw_input("¿Cuántos dias deseas mostrar?")

mostrar_tabla()

raw_input("Pulsa Enter para salir...")

Lo que quisiera es que me mostrara solo ciertos registros para eso le puse la variable num...ahora bien, se lo mando a la funcion mostrar_tabla()?? y como le hago para que en el for solo imprima el numero de veces que haya introducido el usuario ya que el for in...mostrara todos los registros...
Gracias de antemano...
__________________
----------------------------------------------------------
Algunas cosas simplemente son bellas...por que uno no puede tenerlas...
  #2 (permalink)  
Antiguo 31/07/2009, 23:11
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Iteraciones con el ciclo for

Eso lo puedes acomodar en el query, no en el for
Código python:
Ver original
  1. def mostrar_tabla(dias):
  2.     keri = 'SELECT * FROM tabla1 ORDER BY Fecha DESC LIMIT 0 , %s;' % int(dias)
  3.     C.execute(keri)
  4.     res = C.fetchall()
  5.  
  6.     for reg in res:
  7.         print reg[0], '|', reg[1], reg[2], reg[3], reg[4], reg[5]
  8.  
  9. num = raw_input("¿Cuántos dias deseas mostrar?")
  10.  
  11. mostrar_tabla(num)
  12.  
  13. raw_input("Pulsa Enter para salir...")

Ojala te sirva.
Chao
__________________
Revista Código Latino
SoloCodigo
  #3 (permalink)  
Antiguo 31/07/2009, 23:37
 
Fecha de Ingreso: diciembre-2007
Ubicación: Frente al ordenador...
Mensajes: 139
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Iteraciones con el ciclo for

Muchas gracias RadicalEd, funciona perfectamente...ahora bien, antes de que me respondieras estaba tratando con un while, y me salian errores, no se por que...las funciones en python no aceptan variables como parametro??? checa...

def mostrar_tabla(N):
keri = 'SELECT * FROM tris_classic ORDER BY Fecha DESC;'
C.execute(keri)
res = C.fetchall()

i=0
while i < N:
print res[i][0],'|',res[i][1],res[i][2],res[i][3],res[i][4],res[i][5]
i = i + 1

num = raw_input('Cuantos dias deseas mostrar?')

mostrar_tabla(num)

y me mostraba un error, de que N no estaba definida, pero ps obviamente esa la pone el usuario en el raw_input...
__________________
----------------------------------------------------------
Algunas cosas simplemente son bellas...por que uno no puede tenerlas...
  #4 (permalink)  
Antiguo 31/07/2009, 23:48
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Iteraciones con el ciclo for

Por que estás usando N si instanciarla primero, es como si dejaras

Mientras 0 < vacio

ese campo vacio al no existir te va a sacar el error de que no se ha definido, en ese caso antes debes instanciar la N tal cual como la i
__________________
Revista Código Latino
SoloCodigo
  #5 (permalink)  
Antiguo 31/07/2009, 23:55
 
Fecha de Ingreso: diciembre-2007
Ubicación: Frente al ordenador...
Mensajes: 139
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Iteraciones con el ciclo for

ahhh ya te comprendi...lo que faltaba hacer era hacer que otra variable sea asignada con N o sea num = N y ahora si...hacemos el while

i=0
num = N

while i < num
...
...

gracias RadicalEd, ya salio asi tambien...solo que en el shell al terminar de ejecutar el programita, me salen errores

Traceback (most recent call last):
File "C:\Users\Luis\Documents\Cosillas del phyton\ejemplo_mysql.py", line 22, in <module>
mostrar_tabla(num)
File "C:\Users\Luis\Documents\Cosillas del phyton\ejemplo_mysql.py", line 14, in mostrar_tabla
print res[i][0],'|',res[i][1],res[i][2],res[i][3],res[i][4],res[i][5]
IndexError: tuple index out of range

a que se debe??
__________________
----------------------------------------------------------
Algunas cosas simplemente son bellas...por que uno no puede tenerlas...
  #6 (permalink)  
Antiguo 01/08/2009, 01:34
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Iteraciones con el ciclo for

En la tupla que te está generando el query, tú estás consultando más registros de los que esta está devolviendo, por eso saca ese error, el out of range quiere decir que se salio del rango de la tupla; ejemplo tienes esta tupla

t = (0, 1, 2, 3, 4, 5)

Son 6 elementos y si tratas de consultar 7 lógicamente el interprete te va a mostrar ese error.
__________________
Revista Código Latino
SoloCodigo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:12.