Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:cursos:introduccion_programacion_python:sentencias_de_control

¡Esta es una revisión vieja del documento!


Sentencias de control

Bloque perteneciente al curso Introducción a la programación con Python.

Condicionales

if, if-else, if-elif-else

condicion = True
 
if condicion:
    print("Código condicional")

Si hay alguna operación que deba hacerse en base a si se da o no una determinada circunstancia, lo ponemos en un bloque if

En Python, el sangrado de código (indentation), es un elemento sintáctico. Es obligatorio mantener un sangrado correcto para que el intérprete de Python lo procese adecuadamente y sepa a qué bloque de código pertenecen ciertas instrucciones.

x = 3
 
if x < 5:
    print("El valor de x es pequeño")

Responderá:

El valor de x es pequeño
x = 1
cond = False
 
if x < 100 or cond:
    print("Al menos una de las dos es cierta")

Responderá:

Al menos una de las dos es cierta
x = 1000
cond = True
 
if x < 100 and cond:
    print("Las dos deben cumplirse")

Responderá:

Las dos deben cumplirse
x = 10
cond = False
 
if (x < 100 or x > 100000) and not cond:
    print("Las dos deben cumplirse")

Responderá:

Las dos deben cumplirse

Mediante la palabra clave else se puede indicar otro bloque de instrucciones que se llevarán a cabo únicamente en el caso de que la condición del if no se cumpla.

condicion = False
 
if condicion:
    print("Esto se hará si la condición es cierta")
else:
    print("Si no es cierta, se hará esto otro")

Responderá:

Si no es cierta, se hará esto otro

Ejemplo de resolución de ecuación de segundo grado:

from math import sqrt
 
print("ax^2 + bx + c = 0")
 
# Toma de datos:
a = float(input("Coeficiente a:"))
b = float(input("Coeficiente b:"))
c = float(input("Coeficiente c:"))
 
# Cálculo de las raíces
d = b ** 2 - 4 * a * b * c
 
if d >= 0:
    # Ahora podemos ejecutar las siguientes operaciones sin temor a que 
    # dé error de dominio
    x1 = (-b + sqrt(b**2 - 4 * a * c)) / (2 * a)
    x2 = (-b - sqrt(b**2 - 4 * a * c)) / (2 * a)
    print(f"Soluciones: {x1} y {x2}")
else:
    # Para el caso de la raíz cuadrada negativa, mostramos un aviso
    print("Su ecuación no tiene soluciones reales")

Para encadenar varias comprobaciones o condiciones de tal modo que si no se cumple una de ellas, pase a comprobar la siguiente, y así varias veces hasta un else final, utilizamos la palabra reservada elif

temperatura = 25
 
if temperatura < 20:
    print("Tiempo fresco")
elif temperatura > 30:
    print("Tiempo caluroso")
else:
    print("Temperatura agradable")

Responderá:

Temperatura agradable

Bucles

Cuando necesitamos que ciertas instrucciones se repitan un número (determinado o indeterminado) de veces, tenemos las construcciones for, while

while

Sintaxis:

while condicion:
    instruccion1
    instruccion2
    ...
from math import sin, abs
 
x = 1.0
e = 1000.0
 
while e > 0.0001:
    x0 = x
    x = cos(x)
    e = abs(x0 - x)
    print(x, e)
cuenta = 10
 
while cuenta > 0:
    print(cuenta)
    cuenta -= 1 # cuenta = cuenta - 1
 
print("It's the final countdown!")

Devolverá:

10
9
8
7
6
5
4
3
2
1
It's the final countdown!
s = 0
 
while True:
    x = float(input("Introduzca un número (0 para terminar):"))
    if x==0:
        break
    s += x  # Suma a s el valor de x 
print(f"La suma de todos los valores es {s}")

Ejemplo de uso del programa:

Introduzca un número (0 para terminar): 4
Introduzca un número (0 para terminar): 5
Introduzca un número (0 para terminar): 0
La suma de todos los valores es 9.0

Algunas notas acerca de while:

  • Un bucle while puede ejecutarse 0 o mas veces. Si la condición no se cumple de entrada, no se ejecutará el código de dentro ni siquiera la primera vez.
  • La comprobación de la condición se hace al principio de cada vuelta / iteración. Si en algún momento, durante la ejecución de las instrucciones de dentro del bucle esa condición pasase a ser falsa, no será hasta que comience la siguiente vuelta que se termine el bucle.
  • Si se indica como condición la constante True, el bucle será infinito ya que la condición se cumple siempre.
  • Si deseamos interrumpir forzosamente un bucle (independientemente de si la condición se cumple o no), podemos utilizar la orden break. Lo normal es que dicha orden se lance de forma condicionada; con un if, por ejemplo.
s = 0
while True:
    try:
        x = float(input("Introduzca un número (0 para terminar):"))
        if x==0:
            break
        s += x  # Suma a s el valor de x
    except:
        print("Inténtelo otra vez")
 
print(f"La suma de todos los valores es {s}")

Ejemplo de ejecución del programa:

Introduzca un número (0 para terminar): 6
Introduzca un número (0 para terminar): siete
Inténtelo otra vez
Introduzca un número (0 para terminar): 7
Introduzca un número (0 para terminar): 0
La suma de todos los valores es 13.0

for

Permite recorrer secuencias, ejecutando un bloque de instrucciones en cada iteración. Se utiliza una variable para recorrer la secuencia. Dicha variable tomará el valor de cada uno de los elementos de la secuencia en cada iteración, respetando el orden.

Sintaxis:

for variable in secuencia:
    instruccion1
    instruccion2
    ...

Ejemplos:

palabras = ["alpha", "bravo", "charlie", "delta"]
 
for p in palabras:
    print(p)

Resultado:

alpha
bravo
charlie
delta
for i in range(10):
    print(i)

Resultado:

0
1
2
3
4
5
6
7
8
9
for i in range(0, 20, 2):
    print(i)

Resultado:

0
2
4
6
8
10
12
14
16
18
for i in range(10, 0, -1):
    print(i)

Resultado:

10
9
8
7
6
5
4
3
2
1

Los rangos son muy útiles para hacer secuencias de números que podemos utilizar con el bucle `for`. Más información sobre rangos en la documentación oficial

informatica/programacion/python/cursos/introduccion_programacion_python/sentencias_de_control.1681731200.txt.gz · Última modificación: por tempwin