Tutorial "Pythonizate: Fundamentos de Programación” – Estructuras de Control Iterativas

in #spanish7 years ago (edited)

Pythonizate "Aprendiendo a programar"

Este tutorial está siendo elaborado para enseñarte a programar en Python desde cero hasta un nivel intermedio – avanzado. Al momento de finalizarlo serás capaz de crear software sencillo aplicando los conceptos aprendidos e incluso crear su propia interfaz gráfica.


Índice

Contenido
Post
Introducción
Tutorial "Pythonizate: Aprendiendo a Programar" - Introducción
Instalación de entorno de desarrollo y primeros programas
"Pythonizate: Aprendiendo a Programar" - Instalación de entorno de desarrollo y primeros programas
Números, Operadores y Tipos de Datos
Tutorial "Pythonizate: Fundamentos de Programación” – Números, Operadores y Tipos de Datos.
Listas, Tuplas, Diccionario y Entrada por Teclado
Tutorial "Pythonizate: Fundamentos de Programación” - Listas, Tuplas, Diccionario y Entrada por Teclado
Estructura de Control Condicional
Tutorial "Pythonizate: Fundamentos de Programación” – Estructuras de Control Condicionales I

¡Hola mis queridos entusiastas de la programación! En el post del día de hoy vamos a aprender sobre el segundo tipo de estructuras de control de flujo, conocidas como estructuras de control iteración.

¿Qué es una estructura de control iterativa?

En el post anterior estudiamos la estructura de control condicional, donde pudimos notar que su función principal es evaluar si una o más condiciones se cumplen. La estructura de control iterativa es la que nos permite ejecutar un fragmento de código repetidamente, mientras se cumpla la condición establecida. Para esto Python usa dos estructuras cíclicas:

• El bucle while.
• El bucle for.

Bucle While

El bucle while, permite ejecutar repetidamente un bloque de instrucciones siempre que una condición sea verdadera. Cuando la condición se vuelve falsa, el control del programa pasa inmediatamente a la línea posterior al bucle.

La estructura del bucle while es la siguiente:

While(condición):
    acciones
    acciones
    acciones


Los aspectos importantes a saber de el bucle while son:

  1. Esta estructura puede contener una sola instrucción o un bloque de instrucciones.
  2. La condición puede ser cualquier expresión.
  3. El bucle se ejecuta mientras la condición sea verdadera.

Veamos el siguiente ejemplo de un contador:

Input

contador = 0
while (contador <= 10):
   print("El contador va por: ",contador)
   contador = contador + 1

print("El programa ha finalizado")


Output

El contador va por:  0
El contador va por:  1
El contador va por:  2
El contador va por:  3
El contador va por:  4
El contador va por:  5
El contador va por:  6
El contador va por:  7
El contador va por:  8
El contador va por:  9
El contador va por:  10
El programa ha finalizado

Descargue el ejemplo

Primero que nada, nuestra condición era que el bucle se iba a ejecutar hasta que el contador fuera menor o igual a 10, luego finalizaba el programa.

  1. Establecemos la variable contador en cero.
  2. Entra en el ciclo while y verifica la condición, es verdadera? Si.
  3. Entra en el bucle y ejecuta la acción interna.
  4. Imprime por pantalla el valor de la variable, aumenta su valor en 1.
  5. Luego vuelve a empezar el ciclo.
  6. Cuando llega a el valor de la variable contador a 11 verifica si la condición es verdadera, no lo es, sale del bucle y finaliza el programa.

El bucle infinito

Al usar los bucles while debemos tener precaución, porque existe la posibilidad de que nuestro condicional nunca sea falso, dando como resultado un bucle que nunca termina, conocido como bucle infinito.

  • Un bucle infinito podría ser útil en la programación cliente / servidor donde el servidor necesita ejecutarse continuamente para que los programas del cliente puedan comunicarse con él cuando sea necesario.

  • Otro forma de usar el bucle infinito es cuando no se conoce la cantidad de ciclos a ejecutar, este se controla mediante un valor centinela que indica si ya se introdujo el ultimo valor. Por ejemplo:

Input

print("ESTE PROGRAMA CALCULA EL PROMEDIO DE UN CURSO")
print()

contador = 0
total = 0
calificacion = int(input("Introduzca la calificacion del alumno o -1 para terminar el programa: "))

while (calificacion != -1):
   total = total + calificacion
   contador = contador + 1
   calificacion=int(input("Introduzca la calificacion del alumno o -1 para terminar el programa: "))

if (contador != 0):
    total = total / contador
    print()
    print("El promedio del curso fue: ", total)
    print()
else: 
    print("No introdujo ninguna calificacion")

print("El programa ha finalizado")


Output

ESTE PROGRAMA CALCULA EL PROMEDIO DE UN CURSO

Introduzca la calificacion del alumno o -1 para terminar el programa: 10
Introduzca la calificacion del alumno o -1 para terminar el programa: 8
Introduzca la calificacion del alumno o -1 para terminar el programa: 5
Introduzca la calificacion del alumno o -1 para terminar el programa: 1
Introduzca la calificacion del alumno o -1 para terminar el programa: 6
Introduzca la calificacion del alumno o -1 para terminar el programa: -1

El promedio del curso fue:  6.0

El programa ha finalizado

Descargue el ejemplo

No se asusten por la estructura del código, vamos a repasar su ejecución desde el principio hasta el final:

  1. Primero declaramos nuestras variables a usar, calificación que sera nuestro valor centinela, contador que sera quien cuenta el numero de ciclos y total donde se almacenara todas las calificaciones.
  2. Luego pedimos que nuestro valor centinela, cuando se introduzca -1 se terminara el programa.
  3. Entramos en bucle y este verifica si el valor introducido es diferente de -1, lo es? Entra en el bucle y ejecuta el bloque de instrucciones. Este bucle se ejecutara infinitamente hasta que se introduzca el valor -1.
  4. Al introducir -1 sale del bucle y entra en un condicional, aquí se verifica si el contador es distinto de cero, de ser así entra en la sentencia if y ejecuta el bloque de instrucciones. Si el contador es cero se ejecuta la sentencia else diciendo que nunca se introdujo una calificación.
  5. Luego finaliza el programa.

¡Excelenteeee, ya vamos entendiendo la lógica de la programación, estoy muy orgulloso de todos ustedes. Estoy seguro que han aprendido bastante y ahora es que queda camino por recorrer!


Bucle for

Los bucles for se usan cuando se tiene un bloque de código que se desea repetir una cantidad fija de veces, también se usa para recorrer una secuencia

La estructura del bucle for es la siguiente:

for elemento in secuencia:
    print elemento


La diferencia entre el bucle for y el bucle while , es que el segundo debe verificar una condición en cada iteración, mientras que el bucle for no. Por ejemplo:

Input

for i in range(3): 
    print("Valor de la variable es: ", i)
print()
print("El programa ha finalizado")

Output

Valor de la variable es:  0
Valor de la variable es:  1
Valor de la variable es:  2

El programa ha finalizado

Descargue el ejemplo

La función range(n) crea una lista de n números enteros consecutivos que empieza en 0 y acaba en n - 1.

En este ejemplo el bucle for cuenta dede 0 hasta el 2, y el valor es almacenado en la variable i, es decir, en el primer ciclo range() comienza en 0, este valor es asignado a la variable i, en el siguiente ciclorange() vale 1, este valor es asignado a la variable i y así sucesivamente hasta donde se establezca.

Para entenderlo mejor, cambiemos la función range() , por una lista:

Input

for i in [0,1,2]: 
    print("Valor de la variable es: ", i)
print()
print("El programa ha finalizado")


Output

Valor de la variable es:  0
Valor de la variable es:  1
Valor de la variable es:  2

El programa ha finalizado

Descargue el ejemplo

El resultado obtenido es el mismo, recordemos que range() es una lista de números.

También se puede establecer desde y hasta donde va a contar mi bucle for.

Input

for i in range(3,6): #range(desde,hasta-1)
    print("Valor de la variable es: ",i)
print()
print("El programa ha finalizado")


Output

Valor de la variable es: 3
Valor de la variable es: 4
Valor de la variable es: 5

El programa ha finalizado

Descargue el ejemplo

Con range() podemos establecer fácilmente desde donde empieza y hasta donde va a contar.

También podemos decirle de cuanto en cuanto va a contar. Por ejemplo hagamos una tabla de multiplicar:

Input

contador=1
for i in range(3,31,3): #El for cuenta desde el 3 hasta el 31 de 3 en 3
    print("3x",contador,"=",i)
    contador = contador + 1
print()
print("El programa ha finalizado")


Output

3x 1 = 3
3x 2 = 6
3x 3 = 9
3x 4 = 12
3x 5 = 15
3x 6 = 18
3x 7 = 21
3x 8 = 24
3x 9 = 27
3x 10 = 30

El programa ha finalizado

Descargue el ejemplo

De esta forma con la función range() podemos hacer una tabla de multiplicar fácilmente. Uno de los motivos porque se recomienda usar el range() en vez de una lista es porque durante la ejecución del programa ocupan menos memoria en el ordenador.

Como pudimos notar, a la función range() le podemos dar distintos usos, todo depende de lo que queramos hacer.


Para finalizar les dejo una serie de ejemplos del bucle for, para que los estudien. Descargue Ejemplos_For.rar


!Esto fue todo por hoy, nos vemos en el próximo post, donde estudiaremos el control de bucles y las funciones!

Si tienen alguna duda o consulta no duden en dejarla en los comentarios. En el Post Anterior deje planteado un ejercicio, el que lo resuelva va a ganar 0.5 SBD, tienen hasta el miércoles para resolverlo. ¡Éxitos!

"El ser humano es inteligente por naturaleza, la tecnología es solo un complemento"

Gracias por permitirme robar unos pocos minutos de tu vida. Me despido por los momentos mis lectores, que tengan un excelente día, tarde o noche.
╭════════════╮
Sígueme en mi Blog
╰════════════╯

GIF

Sort:  

¡Su post ha sido votado en nombre del Equipo de Curación dropahead!

Gracias por seguir las reglas

ADVERTENCIA: El Equipo de Curación dropahead no necesariamente comparte las opiniones expresadas en este artículo. Sin embargo, creemos que el esfuerzo y/o contribución del autor merece una mejor recompensa y visibilidad.

Ayudenos a darle mayores recompensas:

¡Vote este comentario!
¡Vote y dele Resteem a los últimos Reportes de Curación de dropahead!
Únase al Trail de Curación dropahead
¡Para maximizar sus recompensas de curación!
Vote por dropahead Witness con SteemConnect
Active el Voto Proxy de dropahead witness
con SteemConnect
Done STEEM POWER a @dropahead
12.5SP, 25SP, 50SP, 100SP, 250SP, 500SP, 1000SP
Haciendo lo anterior tendremos más Steem Power (SP) ¡Para poder brindarle mayores recompensas la próxima vez!

Noticias de dropahead: Como retribuir al Proyecto dropahead en 15 segundos o menos

Control de calidad del Equipo de Curación dropahead

De acuerdo a nuestros estándares de calidad(1), su publicación ha alcanzado una calificación de 86%.

Bien dijo Gabriel García Marquez: "Se aprende a escribir escribiendo" ¡Siga esforzandose, pronto alcanzará la excelencia!


(1) Estándares de calidad de dropahead Witness:

- Relación gráfica al texto (Elección de imágenes de acuerdo al texto)
- Orden y Coherencia
- Estilo y autenticidad (Toque personal, lógica, complejidad, lo que hace que sea interesante y fácil de entender para el lector)
- Fuente de las imágenes y su licencia de uso

Buen tutorial amigo, creo que es provechoso que utilicemos la plataforma, no solo para la literatura y para las opiniones o consejos de vida, sino también para impartir conocimientos en áreas como la programación, que constituyen un medio para la generación de productos digitales, que no requieren mayor inversión pero que si pueden producir excelentes beneficios económicos para su creador si se hace adecuadamente. Yo pensaba crear un curso de Python, pero creo que mejor seguiré este y quizá utilizando la etiqueta #pythonizate pudiéramos quienes lo vayamos siguiendo, ir publicando nuestros programas de prueba. Tal como yo pretendo hacer con mi serie de artículos sobre diseño 3D. Saludos.

¡Hola @nestorgomez! Esa es mi idea de usar la plataforma, poder impartir conocimientos y recompensar a las personas interesadas. Me apunto tu idea de utilizar la etiqueta #pythonizate, espero verte por aquí siguiendo el tutorial.

Le echare un ojo a tus tutoriales para ver si aprendo un poco sobre diseño 3D.

Saludos

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by vidayaventura from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Congratulations @vidayaventura! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your Board of Honor.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last announcement from @steemitboard!

Do you like SteemitBoard's project? Vote for its witness and get one more award!

Excelente! sigo estudiando/practicando lo que vas posteando. Gracias por la forma amena y clara que abordas cada tema. Saludos @vidayaventura


¡Hola @rafaelaquino! Me siento orgulloso de ti, le has hecho seguimiento a todos los post del tutorial y llegaste a resolver el ejercicio desafio propuesto en el post anterior.

Comunicate conmigo por privado en discord, por favor.

Saludos



Hola,hola. El trail de @generausd fue creado para apoyar todas aquellas contribuciones subvaloradas que tienen un excelente contenido como la tuya.Saludos ,sigue creando buen contenido... Si quieres ser parte de nuestra comunidad te invito a que le des click a estos enlaces: Disscord Registro TRAIL

¡Gracias por el apoyo!

buen tutorial me gusto

Me alegro de que te guste, te invito a que te animes a sumarte a esta aventura de conocimientos.

Saludos!

Me alegro de que continúes con el aprendizaje @rafaelaquino, la constancia es la clave del éxito. Sigue así.

Muy completo tu artículo. Saludos.

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.037
BTC 94837.57
ETH 3452.01
USDT 1.00
SBD 3.93