Decide por mí II… (Iteraciones: while)

Imagen:diwo.bq.com

Que tal aventureros, en la entrada
anterior vimos if/else que permite tomar decisiones, Pues hoy te traigo otra
herramienta:

Iteraciones:Lazos

Iterar (Repetición de un conjunto de
sentencias). Existen dos sentencias para implementar iteraciones, las cuales
son: while y for.

  • La sentencia while se repetirá siempre y cuando la condición sea verdadera.
  • La sentencia for, por otra parte repetirá
    instrucciones un número específico
    de veces.
Índice()

    Lazo while 

    El lazo se ejecuta mientras que una
    condición se cumple, es de recalcar que dentro de este lazo debemos de colocar
    una sentencia para que este lazo termine, de lo contrario será infinito.

    Te lo explicaré de esta forma:
    ¿Qué tal si nos piden un programa que permite ingresar al usuario los
    números que este decida?

    Bueno, en este caso se me ocurriría un
    mensaje tipo “Digite la cantidad de números a ingresar”. Pero si  el usuario
    no sabe de antemano cuantos números va a ingresar… La posible solución con if
    no es “amigable” con el usuario, siempre hay que mejorar el programa, para esto
    tenemos a while.

    El ciclo indefinido es de la forma:
    while
    <condición>:

    <hacer algo>

    Análisis.-

    Sabemos que while es infinito y por ende
    debemos de colocar una sentencia para detenerlo. De esta manera pediremos al
    usuario ingresar algún valor para que salga de la infinidad.
    num=int(input("Ingrese número: "))
    print("El número ingresado es: ",num)
    resp=input("Desea ingresar más números digite si o no: ")
    while resp=="si":
      num=int(input("Ingrese número:"))
      print("El número ingresado es: ",num)
      resp=input("Desea ingresar más números digite si o no: ")
    print("Gracias por usar el programa :)")
    


    Esta sentencia, para
    establecer la condición  he pedido al
    usuario que ingrese “si” como afirmación, si responde “si” entonces pedirá un
    nuevo número, lo mostrará por pantalla y volverá a pedirlo mientras se cumpla
    esta condición, el script se ejecuta pero nos encontramos con algunas líneas
    repetidas.

    while True

    while True (mientas sea
    verdadero), y en este sentido nos ahorramos mucho además de ser eficiente, de
    igual manera no debemos olvidar como detenerlo.

    Navegando en
    internet hay dos formas  de detener el while
    y por ende el while True, una sería mediante una variable contadora que la
    explicaré más adelante, y la otra es mediante un break, sentencia para detenerlo.

    Python va leyendo: Pide un número que
    lo almacena en una variable, lo presenta y pregunta al usuario si desea
    seguir ingresando. Luego analiza si la respuesta de dicha pregunta es igual a
    0, entonces presenta un mensaje de agradecimiento y de no haber un break, seguiría ejecutándose el código.
    Haz tu mismo la prueba sin break. No te
    olvides de las identaciones, el break se ejecuta cuando la condición del if se
    efectúa, de no ser cierto vuelve a repetirse desde la primera línea, es decir
    volvería a pedir un número.
    *
    Generalmente nos explican que en  iteraciones hemos de utilizar una variable
    contadora, acumuladora. Sin embargo solemos confundirnos en el momento de
    usarla.
    1.- Mostrar por pantalla
    números del 1 al 10.
    Ya con eso sabemos
    que la condición será
    variable<=10. De esa forma se presentará los números hasta el 10, pero
    Python debe contar tal y como nosotros lo haríamos.
    • Nombraremos a la
      variable contadora count
    • Dicha variable debe
      de cambiar (aumentar, en este caso) para que muestre cada número.
    En la entrada de Operadores
    definimos los de Incremento, bueno aquí lo utilizaremos:
    count=1
    while count<=10:
        print(count)
        count+=1
    


    ¿Por qué utilizar la sentencia count+=1?
    Esta permite que en cada vuelta que lea
    Python incremente el valor inicial de la variable, de lo contrario tendríamos
    un bucle infinito.
    IDE PyCharm

    2.- Pedir al usuario que ingrese varios valores y cuando
    ingrese -1 presente el promedio de los mismos.
    • Posibles
      condiciones: En algunos casos no tendrás tan claro la condición, te recomiendo
      que comiences haciendo las operaciones,
    • La fórmula del
      promedio es (n1+n2+…n)/total de números.

    Desarrollo

    Deduciendo que
    necesitamos contar los números ingresados, y acumular en otra variable la suma
    de los mismos.

    Esta vez voy a comenzaré con las
    operaciones.

    •  variable acumuladora suma, variable contadora cont  y ambas la inicializo con cero, en otro
      lenguaje:
      suma=0;cont=0
    • Presentar el promedio prom=0
    • Suma deberá de acumular la suma de los números:
      suma+=num
    • Contar los números: cont+=1

    La clave del
    ejercicio está en el enunciado  y
    cuando ingrese -1 presente el promedio de los mismos.
    Es decir que una vez que ingreso -1, automáticamente las
    variables se paralizan y la operación del promedio se calcula fuera del while; por último imprimimos el
    resultado.

    So….¿Cuál debería de ser la condición? num!=-1 o num==1, la primera
    obviamente porque mientras se cumpla esta expresión el programa seguirá
    operando…  

    print("## Calcule su promedio##")
    suma=0;cont=0;prom=0
    num=int(input("Ingrese número: "))
    while num!=-1:
        suma+=num
        cont+=1
        num=int(input("Ingrese número : "))
    prom=suma/cont
    print("nEl promedio de ", cont,"números es: ", prom
    

    DEBUGGEAR
    En PyCharm podemos “debuggear” dando
    click en la opción run de la barra superior, seleccionamos el archivo y
    agregamos breakpoints, más información

    PytonTutor es una
    página donde podemos programar muchos lenguajes incluido Python y también
    depura. Eficaz en mostrar el funcionamiento de estos ciclos, aquí te dejo el
    link del ejercicio.

    Lo que
    no se practica se olvida

    3.- Escribir un programa en Python que valide el ingreso de un número
    positivo.

    4.-  Escribir
    un programa en Python que muestre la suma de los dígitos de un número.
    Ejemplo:
    Ingrese número: 123
    La suma de los dígitos es: 6
    5.- Pedir al usuario números, si este es par
    elevarlos al cuadrado, si es impar mostrar su cubo
    Ejemplo:
     Numero
    ingresado: 3
    El número ingresado es 3 y su cuadrado 9
    Numero ingresado: 2
    El número ingresado es 2 y su cubo es 8


    Volver al índice: Tutorial Python 3.5
    1. claudio dice:

      soy un octogenario que se ha entusiasmado con esta cosa de la programación.Muy interesante los ejemplos presentados.Talvez seria interesante incluir tambien más ejemplos resueltos,que presenten además más soluciones alternativas.

      1. Victor Tutorus dice:

        Hola Claudio, espero que te encuentres muy bien. Te saludo desde California, USA. Tengo 65 y pense que era el de mas edad por aca. Felicitaciones y sigamos adelante. Todavia hay mucho por hacer.

    2. Nombre mostradp dice:

      si

    3. Anónimo dice:

      los ejercicios introducidos están resueltos en algún lado?

      1. jechm dice:

        Aqui les comparto los archivos de como los resolvi por si alguien les quiere echar un vistazo
        https://drive.google.com/open?id=1ohFAfZBtmQypSvpcyv-pkJaCUkphzESe

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.