Sei sulla pagina 1di 11

Introducción a Python / Ing.

Carlos Julio Pardo

LECCION 2: ESTRUCTURAS DE CONTROL DE FLUJO

Una estructura de control, es un bloque de código que permite agrupar instrucciones


de manera controlada. En esta sección, hablaremos sobre dos estructuras de
control:
▪ Estructuras de control condicionales
▪ Estructuras de control iterativas

2.1 Identación
Para hablar de estructuras de control de flujo en Python, es imprescindible primero,
hablar de identación.
¿Qué es la identación? En un lenguaje informático, la identación es lo que la
sangría al lenguaje humano escrito (a nivel formal). Así como para el lenguaje
formal, cuando uno redacta una carta, debe respetar ciertas sangrías, los lenguajes
informáticos, requieren una identación.
No todos los lenguajes de programación, necesitan de una identación, aunque sí,
se estila implementarla, a fin de otorgar mayor legibilidad al código fuente. Pero en
el caso de Python, la identación es obligatoria, ya que, de ella dependerá su
estructura.

Una identación de 4 (cuatro) espacios en blanco, indicará que las


instrucciones identadas, forman parte de una misma estructura de
control.

Una estructura de control, entonces, se define de la siguiente forma:

Inicio de estructura de control:


instrucciones

2.2 Estructuras de control de flujo condicionales


Las estructuras de control condicionales, son aquellas que nos permiten
evaluar si una o más condiciones se cumplen, para decir qué acción vamos a

1
Introducción a Python / Ing. Carlos Julio Pardo

ejecutar. La evaluación de condiciones, solo puede arrojar 1 de 2 resultados:


verdadero o falso (True o False).

Los condicionales nos permiten comprobar condiciones y hacer que nuestro


programa se comporte de una forma u otra, que ejecute un fragmento de
código u otro, dependiendo de esta condición

En la vida diaria, actuamos de acuerdo a la evaluación de condiciones, de manera


mucho más frecuente de lo que en realidad creemos: Si el semáforo está en verde,
cruzar la calle. Si no, esperar a que el semáforo se ponga en verde. A veces,
también evaluamos más de una condición para ejecutar una determinada acción: Si
llega la factura de la luz y tengo dinero, pagar la boleta.
Para describir la evaluación a realizar sobre una condición, se utilizan operadores
relacionales (o de comparación):

Y para evaluar más de una condición simultáneamente, se utilizan operadores


lógicos:

Las estructuras de control de flujo condicionales, se definen mediante el uso de tres


palabras claves reservadas, del lenguaje:

2
Introducción a Python / Ing. Carlos Julio Pardo

if (si), else (sino) y elif (sino, si) es una contracción de else if.

if condición:
aquí van las órdenes que se ejecutan si la condición es cierta
y que pueden ocupar varias líneas
else:
y aquí van las órdenes que se ejecutan si la condición es falsa
y que también pueden ocupar varias líneas

La estructura de control if ... elif ... else ...permite encadenar varias


condiciones. elif es una contracción de else if. La orden en Python se escribe
así:

if condición_1:
bloque 1
elif condición_2:
bloque 2
elif condición_3:
bloque 3
else:
bloque 4

 Si se cumple la condición 1, se ejecuta el bloque 1


 Si no se cumple la condición 1 pero sí que se cumple la condición 2, se
ejecuta el bloque 2
 Si no se cumple la condición 1 ni la condición 2, pero si la condición 3 se
ejecuta el bloque 3
 Si no se cumplen ni la condición 1 ni la condición 2, ni la condición 3 se
ejecuta el bloque 4.

Veamos algunos ejemplos:

1) Ingresar edad y establecer si se es mayor de edad


edad = int(input("¿Cuántos años tiene? "))
if edad < 18:
print("Es usted menor de edad")
else:
print("Es usted mayor de edad")
print("¡Hasta la próxima!")

3
Introducción a Python / Ing. Carlos Julio Pardo

En el ejemplo anterior creamos una variable edad que es igual a un valor numérico
ingresado por teclado. Luego utilizamos una condición if vara evaluar si edad es
mayor o igual a 18, si esto se cumple se ejecuta el código del if, si no, se ejecuta el
código del else. Pueden cambiar el valor de la variable a 15 para ver cómo se
comporta el programa.
2) Definir estado de semáforo, si está en verde, cruzar la calle. Si no, esperar.
semaforo = "verde"
if semaforo == "verde":
print ("Cruzar la calle")
else:
print ("Esperar")

3) Ingresar edad y establecer el periodo de vida en el que se encuentra:

 niño si es menor a 13 años.


 Adolescente si es mayor o igual a 13 años y menor a 18 años
 Joven si es mayor o igual a 18 años y menor a 30 años
 Adulto si es mayor o igual a 30 años y menor a 65 años
 Jubilado si es mayor o igual a 65 años

print('Hola, ¿Cómo te llamas?')


nombre=input()
print('Hola, '+nombre+', ¿Cuantos años tienes?')
edad=input()
edad=int(edad)
if edad<13:
print(nombre+', eres un niño')
elif edad>=13 and edad<18:
print(nombre+', eres un adolescente')
elif edad>=18 and edad<30:
print(nombre+', eres un joven')
elif edad>=30 and edad<65:
print(nombre+', eres un adulto')
else:
print(nombre+', eres un jubilado')

4
Introducción a Python / Ing. Carlos Julio Pardo

EJERCICIOS

1. Escribe un programa que pida el año actual y un año cualquiera y que escriba
cuántos años han pasado desde ese año o cuántos años faltan para llegar a
ese año:
>>¿En qué año estamos?: 2002
>>Escribe un año cualquiera: 2014
>>Para llegar al año 2014 faltan 12 años.

>>¿En qué año estamos?: 1990


>>Escribe un año cualquiera: -753
>>Desde el año -753 han pasado 2743 años.

>>¿En qué año estamos?: 1492


>>Escribe un año cualquiera: 1492
>>¡Son el mismo año!

2. Escribe un programa que pida dos números y que escriba cuál es el menor
y cuál el mayor o que escriba que son iguales:
>>Comparador de números
>>Escribe un número: 23
>>Escribe otro número: 14.5
>>Menor: 14.5
>>Mayor: 23.0

>>Comparador de números
>>Escribe un número: 5.0
>>Escribe otro número: 5
>>Son iguales

3. Escribe un programa que pida tres números y que escriba si son los tres
iguales, si hay dos iguales o si son los tres distintos.
>>Escribe un número: 6
>>Escribe otro número: 6.5
>>Escribe otro número más: 6
>>Has escrito uno de los números dos veces

5
Introducción a Python / Ing. Carlos Julio Pardo

>>Escribe un número: 4
>>Escribe otro número: 5
>>Escribe otro número más: 6
>>Los tres números que has escrito son distintos

4. Escribe un programa que solicite los coeficientes de una ecuación de primer


grado (a x + b = 0) y escriba la solución. Recuerda que una ecuación de
primer grado puede no tener solución, tener una solución única, o que todos
los números sean solución.
>>Ecuación a x + b = 0
>>Escribe el valor del coeficiente a: 4.2
>>Escribe el valor del coeficiente b: 21
>>La solución de la ecuación es -5.0

Estos son algunos ejemplos (sin ordenar) de posibles respuestas:

a b Solución
0 4 Sin solución
3 15 Una solución: -5
0 0 Todos los números son solución

5. Escribe un programa que pregunte primero si quieres calcular el área de un


triángulo o de un círculo. Si contestas que quieres calcular el área de un
triángulo, el programa tiene que pedir entonces la base y la altura y escribir
el área. Si contestas que quieres calcular el área de un círculo, el programa
tiene que pedir entonces el radio y escribir el área.
>>Cálculo de áreas - Elige una figura geométrica:
>>a) Triángulo
>>b) Círculo
>>¿Qué figura quieres calcular (escribe T o C)? T
>>Escribe la base: 3
>>Escribe la altura: 5.5
>>Un triángulo de base 3.0 y altura 5.0 tiene un área de 8.25

>>Cálculo de áreas - Elige una figura geométrica:


>>a) Triángulo
>>b) Círculo
>>¿Qué figura quieres calcular (escribe T o C)? c
>>Escribe el radio: 2
>>Un círculo de radio 2.0 tiene un área de 12.566370614359172

6
Introducción a Python / Ing. Carlos Julio Pardo

2.3. Estructuras de control iterativas


A diferencia de las estructuras de control condicionales, las iterativas (también
llamadas cíclicas o bucles), nos permiten ejecutar un mismo código, de manera
repetida, mientras se cumpla una condición.

En Python se dispone de dos estructuras cíclicas:

▪ El bucle while
▪ El bucle for

Las veremos en detalle a continuación.

2.3.1. Bucle while


Este bucle, se encarga de ejecutar una misma acción "mientras que" una
determinada condición se cumpla.

while condición:
cuerpo de bucle que se repetirá mientras la condición
sea correcta.

Ejemplo: Mientras que día sea menor o igual a 7, imprimir la frase "Inventario de dia
de la semana ".

dia = 1
while dia <= 31:
print ("Analisis de dia de la semana", str(dia))
dia += 1

La iteración anterior, generará la siguiente salida:

Analisis de dia de la semana 1


Analisis de dia de la semana 2
Analisis de dia de la semana 3
Analisis de dia de la semana 4
Analisis de dia de la semana 5
Analisis de dia de la semana 6
Analisis de dia de la semana 7

Si miras la última línea:


dia += 1

7
Introducción a Python / Ing. Carlos Julio Pardo

Podrás notar que en cada iteración, incrementamos el valor de la variable dia que
condiciona el bucle. Si no lo hiciéramos, esta variable siempre sería igual a 1 y el
bucle se ejecutaría de forma infinita, ya que la condición (dia <= 31) siempre se
estaría cumpliendo.
Pero ¿Qué sucede si el valor que condiciona la iteración no es numérico y no puede
incrementarse? En ese caso, podremos utilizar una estructura de control
condicional, anidada dentro del bucle, y frenar la ejecución cuando el condicional
deje de cumplirse, con la palabra clave reservada break:

while True:
nombre = input("Indique su nombre: ")
if nombre:
break
El bucle anterior, incluye un condicional anidado que verifica si la variable nombre
es verdadera (solo será verdadera si el usuario tipea un texto en pantalla cuando el
nombre le es solicitado). Si es verdadera, el bucle para (break). Sino, seguirá
ejecutándose hasta que el usuario, ingrese un texto en pantalla.

2.3.2 Bucle for


El bucle for, en Python, es aquel que nos permitirá iterar sobre una variable
compleja, del tipo lista o tupla. La sintaxis de un bucle for es la siguiente:

for variable in lista (o cadena):


cuerpo del bucle

1) Por cada nombre en mi_lista, imprimir nombre


mi_lista = ['Julio', 'Antonio', 'Pedro', 'Nicolas']
for nombre in mi_lista:
print (nombre)

2) Por cada color en mi_tupla, imprimir color:


mi_tupla = ('rosa', 'verde', 'celeste', 'amarillo')
for color in mi_tupla:
print (color)

En los ejemplos anteriores, nombre y color, son dos variables declaradas en tiempo
de ejecución (es decir, se declaran dinámicamente durante el bucle), asumiendo
como valor, el de cada elemento de la lista (o tupla) en cada iteración.
Con el bucle for es posible emular la estructura while,

8
Introducción a Python / Ing. Carlos Julio Pardo

dia = 1
for dia in range(1,7):
print ("Analisis de dia de la semana", str(dia))
dia += 1

2.3.3 Contadores y acumuladores


En muchos programas necesitarás utilizar variables que cuenten cuántas veces ha
ocurrido algo (contadores) o que acumulen valores (acumuladores). Las situaciones
pueden ser muy diversas, por lo que simplemente hay aquí un par de ejemplos para
que veas cuál es la idea.

2.3.3.1 Acumulador
Este es un ejemplo de programa con acumulador:

suma = 0
for i in range(10):
suma = suma + i
print ("La suma de los números de 0 a 10 es", suma)

En cada iteración, el valor de i se añade a la variable suma. Es muy importante


que antes del bucle definas el valor inicial del acumulador (en este caso, la variable
suma).

2.3.3.2 Contador
Este es un ejemplo de programa con contador:

cuenta = 0
for i in range(1000):
if i%7 == 0:
cuenta = cuenta + 1
print ("Entre 0 y 1000 hay", cuenta, "múltiplos de 7")

En cada iteración, el programa comprueba si i es múltiplo de 7. Si lo es, la variable


cuenta aumenta una unidad. Es muy importante que antes del bucle definas el valor
inicial del contador (en este caso, la variable cuenta).

9
Introducción a Python / Ing. Carlos Julio Pardo

EJERCICIOS

1. Escribe un programa que pida dos números y escriba la suma de enteros


desde el primer número hasta el segundo.
>>Escribe el primer numero: 30
>>Escribe el segundo numero mayor a 30: 32
>>La suma desde 30 hasta 32 es: 93.
>>30+31+32 = 93

2. Escribe un programa que pida un número y calcule su factorial.

>>Escribe un numero: 5
>>El factorial de 5 es: 120

3. Escribe un programa que pregunte cuantos números vas a introducir, pida


esos números y calcule su suma.
>>Dime cuántos números vas a escribir: 5
>>Dime el número 1: 25
>>Dime el número 2: 30
>>Dime el número 3: 10
>>Dime el número 4: 14
>>Dime el número 5: 23
>>La suma de los números que has escrito es: 102

4. Escribe un programa que pregunte cuántos números vas a introducir, pida


esos números y escriba cuántos negativos has puesto.

>>Dime cuántos números vas a escribir: 5


>>Dime el número 1: 56
>>Dime el número 2: -22
>>Dime el número 3: 98
>>Dime el número 4: -30
>>Dime el número 5: -30
>>Has escrito 3 números negativos

10
Introducción a Python / Ing. Carlos Julio Pardo

5. Escribe un programa que pregunte cuántos números vas a introducir, pida


esos números, y escriba el mayor, el menor y la media.
>>¿Cuántos valores vas a introducir?: 5
>>Dime el número 1: 25
>>Dime el número 2: 100
>>Dime el número 3: 7
>>Dime el número 4: 90
>>Dime el número 5: 14
>>El número más pequeño de los introducidos es: 7
>>El número más grande de los introducidos es: 100
>>La media de los números introducidos es: 47.2

6. Juguemos al juego de adivinar el número, generaremos un número entre 1 y


20. Nuestro objetivo es adivinar el número. Si fallamos nos dirán si es mayor
o menor que el número buscado. También definir el número de intentos
posiles. Suponiendo que el numero a adivinar es el 11
>>Adivina el numero: 7
>>Fallaste! El numero ingresado es menor
>>Aun tienes 2 intentos

7. Escribe un programa que te pida primero un número (límite) y después te


pida números hasta que la suma de los números introducidos supere el
número inicial. El programa termina escribiendo la lista de números.
>>Escribe el límite: 50
>>Escribe un valor: 10
>>Escribe otro valor: 25
>>Escribe otro valor: 7
>>Escribe otro valor: 14
>>El límite a superar es 50. La lista creada es [10, 25, 7, 14]

8. Escribe un programa que te pida números cada vez más grandes y los
guarde en una lista. Para terminar de escribir números, escribe un número
que no sea mayor que el anterior. El programa termina escribiendo la lista de
números.
>>Escribe un número: 6
>>Escribe un número mayor que 6: 10
>>Escribe un número mayor que 10: 12
>>Escribe un número mayor que 12: 9
>>Los números que has escrito son [6, 10, 12]

11

Potrebbero piacerti anche