[Python]Tablas de Multiplicar

Iniciado por CATBro, 5 Enero 2011, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

CATBro

Muy buenas tardes  ;D eh aqui mi problema
Código (python) [Seleccionar]

1.x=0   #Operando
2.y=0   #Operando e inicializo la variable
3.res=0 #Resultado
4.c=0   #Para tener el control del ciclo
5.
6.while c!="no":          #Se repite el bucle hasta que tecleo "no"
7.   x=int(raw_input("Ingresa el numero de la tabla #:"))   #Ingreso la tabla....
8.   #que quiero, ejemplo: la tabla del 2 . 2X1 ,2X2 etc..
9.
10.  while y <11:     #Le digo que la tabla solo llegue hasta multiplicar al 10
11.      res=x * y     #Multiplicacion
12.      print "%d X %d = %d" % (x,y,res)  #Muestra
13.      y+=1           #Incremento
14.  c=raw_input("Quieres continuar si/no:")
15.



Se supone que ingreso el numero de la tabla que quiero, y este me muestra la tabla resuelta hasta el 10 pero en el caso que quiera otra tabla por eso puse el bucle, pero el problema es que ingreso la tabla , me muestra el resultado, pero se supone que cuando le digo que si quiero continuar me pide otra vez el numero de la tabla ...lo hace pero no me muestra el resultado del segunda tabla se brinca a preguntarme si quiero continuar.

Saludos

PD: Me estoy apenas enseñando a programar ,unas disculpas si esta muy facil o revoltoso mi programa  jeje..  Gracias

leogtz

Porque "y" se queda con un valor que no cumple la condición del segundo bucle.

Saliendo del bucle interno while, inicializa de nuevo la variable "y".
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

CATBro

Gracias si era eso ;D
Pero no entiendo porque inicializar otra vez la "y" antes del segundo while , si ya lo inicialise antes...



Saludos

kerith

Porque sino estará empezando el bucle con y = 11 (o el valor que sea que tuviera al acabar el bucle), por lo tanto cumple la condición del segundo bucle ('y' no es menor que 11) y el segundo while no se inicia.

Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.

ChicoMaravilla

mira por si no lo sacaste
yo lo hice así  ;-)

Código (python) [Seleccionar]
try:
    x=0
    c="si"
    l=0
    while c!="no":
        x=input("Quiero la tabla del: ")
        while l!=11:
            print "%d x %d = %d" % (x,l,x*l)
            l+=1
        l=0
        c=raw_input("Quieres continuar si/no:")
except:
    print "Solo se aceptan numeros"


mira tenes que entender como funcionan los bucles while,



lo que hace es que si cierta condición se cumple se ejecuta una sentencia, cuando la sentencia termina vuelve al inicio del bucle while y vuelve a revisar si se cumple la condición y así sucesivamente hasta que la condición se cumpla.                       


fallout20xx

Cita de: CATBro en  5 Enero 2011, 23:41 PM
Código (python) [Seleccionar]

1.x=0   #Operando
2.y=0   #Operando e inicializo la variable
3.res=0 #Resultado
4.c=0   #Para tener el control del ciclo
5.
6.while c!="no":          #Se repite el bucle hasta que tecleo "no"
7.   x=int(raw_input("Ingresa el numero de la tabla #:"))   #Ingreso la tabla....
8.   #que quiero, ejemplo: la tabla del 2 . 2X1 ,2X2 etc..
9.
10.  while y <11:     #Le digo que la tabla solo llegue hasta multiplicar al 10
11.      res=x * y     #Multiplicacion
12.      print "%d X %d = %d" % (x,y,res)  #Muestra
13.      y+=1           #Incremento
14.  c=raw_input("Quieres continuar si/no:")
15.

Código (python) [Seleccionar]

c = 'si'
while c == 'si':
     x= int(raw_input("ingresa....\n"))
     for n in range(1, 11):
         print "%s X %s = %s" % (x, n, x*n)
     c = raw_input("continuar si / no\n")

aqui lo tienes mas corto y lo que te falla en tu ejemplo es el sangrado del probrama, el c = ... tiene que estar dentro del while si no nunca se repetira.

Un saludo
si disfrutas siempre que programas... significa que aun no has programado suficiente xD