Tema 03 - Controlando El Flujo
Tema 03 - Controlando El Flujo
Tema 03 - Controlando El Flujo
Sentencia If (Si)
Se cumple la condición
También se muestre este print
a=5
if a == 2:
print("a vale 2")
if a == 5:
print("a vale 5")
a vale 5
a=5
b = 10
if a == 5:
print("a vale",a)
if b == 10:
print("y b vale",b)
a vale 5
y b vale 10
Como condición podemos evaluar múltiples expresiones, siempre que éstas devuelvan True o
False
a vale 5 y b vale 10
n = 11
if n % 2 == 0:
print(n,"es un número par")
else:
print(n,"es un número impar")
11 es un número impar
Se encadena a un if u otro elif para comprobar múltiples condiciones, siempre que las anteriores
no se ejecuten.
Instrucción Pass
if True:
pass
Iteraciones
Iterar significa realizar una acción varias veces. Cada vez que se repite se denomina iteración.
Sentencia While (Mientras)
Se basa en repetir un bloque a partir de evaluar una condición lógica, siempre que ésta sea True.
Queda en las manos del programador decidir el momento en que la condición cambie a False
para hacer que el While finalice.
c=0
while c <= 5:
c+=1
print("c vale",c)
c vale 1
c vale 2
c vale 3
c vale 4
c vale 5
c vale 6
c=0
while c <= 5:
c+=1
print("c vale",c)
else:
print("Se ha completado toda la iteración y c vale",c)
c vale 1
c vale 2
c vale 3
c vale 4
c vale 5
c vale 6
Se ha completado toda la iteración y c vale 6
Instrucción Break
Sirve para "romper" la ejecución del While en cualquier momento. No se ejecutará el Else, ya
que éste sólo se llama al finalizar la iteración.
c=0
while c <= 5:
c+=1
if (c==4):
print("Rompemos el bucle cuando c vale",c)
break
print("c vale",c)
else:
print("Se ha completado toda la iteración y c vale",c)
c vale 1
c vale 2
c vale 3
Rompemos el bucle cuando c vale 4
Instrucción Continue
c=0
while c <= 5:
c+=1
if c==3 or c==4:
# print("Continuamos con la siguiente iteración",c)
continue
print("c vale",c)
else:
print("Se ha completado toda la iteración y c vale",c)
c vale 1
c vale 2
c vale 5
c vale 6
Se ha completado toda la iteración y c vale 6
numeros = [1,2,3,4,5,6,7,8,9,10]
indice = 0
while indice < len(numeros):
print(numeros[indice])
indice+=1
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
Para asignar un nuevo valor a los elementos de una lista mientras la recorremos, podríamos
intentar asignar al número el nuevo valor:
numeros
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Sin embargo, ésto no funciona. La forma correcta de hacerlo es haciendo referencia al índice de
la lista en lugar de la variable:
indice = 0
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for numero in numeros:
numeros[indice] *= 10
indice+=1
numeros
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Podemos utilizar la función enumerate() para conseguir el índice y el valor en cada iteración
fácilmente:
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
a
m
i
g
o
s
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-8ba888c46579> in <module>()
1 for i,c in enumerate(cadena):
----> 2 cadena[i] = "*"
cadena2 = ""
for caracter in cadena:
cadena2 += caracter * 2
cadena
'Hola amigos'
cadena2
'HHoollaa aammiiggooss'
La función range()
Sirve para generar una lista de números que podemos recorrer fácilmente, pero no ocupa
memoria porque se interpreta sobre la marcha:
for i in range(10):
print(i)
0
1
2
3
4
5
6
7
8
9
range(10)
range(0, 10)
for i in [0,1,2,3,4,5,6,7,9]:
print(i)
0
1
2
3
4
5
6
7
9
list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Ejemplo de cabecera
n=0
while n < 10:
if (n % 2) == 0:
print(n,'es un número par')
else:
print(n,'es un número impar')
n=n+1
Tema 03: Control de flujo (Soluciones)
Nota: Estos ejercicios son optativos para hacer al final de la unidad y están pensados para apoyar
tu aprendizaje.
1) Realiza un programa que lea dos números por teclado y permita elegir entre 3 opciones en un
menú:
print("¿Qué quieres hacer? \n1) Sumar los dos números\n2) Restar los dos números\n3)
Multiplicar los dos números")
opcion = int(input("Introduce un número: ") )
if opcion == 1:
print("La suma de",n1,"+",n2,"es",n1+n2)
elif opcion == 2:
print("La resta de",n1,"-",n2,"es",n1-n2)
elif opcion == 3:
print("El producto de",n1,"*",n2,"es",n1*n2)
else:
print("Opción incorrecta")
Introduce un número: 5
Introduce otro número: 5
¿Qué quieres hacer?
1) Sumar los dos números
2) Restar los dos números
3) Multiplicar los dos números
Introduce un número: 3
El producto de 5.0 * 5.0 es 25.0
2) Realiza un programa que lea un número impar por teclado. Si el usuario no introduce un
número impar, debe repetise el proceso hasta que lo introduzca correctamente.
3) Realiza un programa que sume todos los números pares desde el 0 hasta el 100:
Sugerencia: Puedes utilizar la funciones sum() y range() para hacerlo más fácil. El tercer
parámetro en la función range(inicio, fin, salto) indica un salto de números, pruébalo.
print(suma)
2550
2550
4) Realiza un programa que pida al usuario cuantos números quiere introducir. Luego lee todos
los números y realiza una media aritmética:
5) Realiza un programa que pida al usuario un número entero del 0 al 9, y que mientras el
número no sea correcto se repita el proceso. Luego debe comprobar si el número se encuentra en
la lista de números y notificarlo:
while True:
numero = int(input("Escribe un número del 0 al 9: "))
if numero >= 0 and numero <= 9:
break
if numero in numeros:
print("El número",numero,"se encuentra en la lista",numeros)
else:
print("El número",numero,"no se encuentra en la lista",numeros)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[-19, -17, -15, -13, -11, -9, -7, -5, -3, -1]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
7) Dadas dos listas, debes generar una tercera con todos los elementos que se repitan en ellas,
pero no debe repetise ningún elemento en la nueva lista:
lista_3 = []
print(lista_3)