Semana 7

Lenguaje de Programación: Parte II

¿Qué son las Sentencias de Control?

Controlan el flujo de ejecución de un programa.

Se dividen en dos categorías: selección e iteración.

Tipos de Sentencias de Control

Selección: if-else, condicionales Iteración: bucles for y while

Sentencias de Selección

Permiten seleccionar una parte específica del código a ejecutar.

if-else: Ejecuta código basándose en una condición

Sentencias de Iteración

Permiten ejecutar una parte específica del código múltiples veces.

Bucles for: Para un número conocido de iteraciones Bucles while: Se ejecutan hasta que una condición sea falsa

Bloques de Código

Conjunto de sentencias agrupadas lógicamente.

Indentación en Python

Indica la estructura del código.

Ejemplo de Indentación

if x > 7:
    print("x es mayor que 7")
    if x % 2 == 0:
        print("x es un número par")

Ejercicio 1: Indentación

Corrige la indentación del siguiente código:

x = 10
if x > 5:
print("x es mayor que 5")
    if x < 15:
        print("x es menor que 15")
print("Este código siempre se ejecuta")

Codificación de Texto

Indicación de la codificación de caracteres utilizada en el archivo.

Ejemplo de Codificación de Texto

# -*- coding: utf-8 -*-
print("El niño juntó leños")

Opciones de Encoding

UTF-8: Más utilizada, soporta todos los idiomas ASCII: Limitada a 128 caracteres Unicode: Flexible, soporta hasta 65,536 caracteres

Ejercicio 2: Encoding

¿Qué salida produciría el siguiente código y por qué?

# Sin declaración de encoding
print("España")

Asignación Múltiple

Asignar múltiples variables en una sola instrucción.

a, b, c = 'casa', 244, False

Ejemplo con Tupla y Lista

# Con tupla
ejemplo_tupla = ('Título', 2023) 
texto, anio = ejemplo_tupla 

# Con lista
ejemplo_lista = ['león', 'África'] 
animal, continente = ejemplo_lista 

Ejercicio 3: Asignación Múltiple

Escribe una línea de código que asigne los valores 10, 20, 30 a las variables x, y, z respectivamente.

Estructuras de Control

Secuenciales: Ejecución línea por línea Selectivas: Decisiones basadas en condiciones Iterativas: Repetición de código

Estructuras de Control Condicionales

Permiten tomar decisiones basadas en condiciones.

¿Qué es una Bifurcación?

Instrucción que permite tomar una decisión.

Operadores Relacionales

Utilizados para comparar dos valores.

Tipos de Operadores Relacionales

OperadorDescripción
<Menor que
>Mayor que
<=Menor o igual que
>=Mayor o igual que
==Igual que
!=Distinto que

Ejemplo de Operadores Relacionales

a = 10
b = 5

print(a > b)   # True
print(a < b)   # False
print(a == b)  # False
print(a != b)  # True

Ejercicio 4: Operadores Relacionales

¿Qué valor devolverán estas expresiones?

x = 15
y = 15
z = "15"

a = x == y
b = x == z
c = x > y
d = x >= y

Operadores Lógicos

Para evaluar múltiples condiciones simultáneamente.

OperadorExplicación
andVerdadero si ambas condiciones son verdaderas
orVerdadero si al menos una condición es verdadera
xorVerdadero si solo una condición es verdadera

Ejemplo de Operadores Lógicos

a = 10
b = 5

print(a > 5 and b > 3)  # True
print(a > 15 or b > 3)  # True
print(a > 15 and b > 3) # False

Clasificación de Estructuras Selectivas

Selectivas simples: Ejecutan código si se cumple una condición Selectivas dobles: Alternativa entre dos bloques de código Selectivas múltiples: Combinan varias condiciones

Sentencias if / elif / else

Ejecutan código basado en condiciones.

Sintaxis de la Sentencia If

if condición:
    # bloque de código 1

Sintaxis de la Sentencia If-Else

if condición:
    # bloque de código 1
else:
    # bloque de código 2

Sintaxis de la Sentencia If-Elif-Else

if condición1:
    # bloque de código 1
elif condición2:
    # bloque de código 2
else:
    # bloque de código 3

Ejemplo de Selectiva Simple

x = 10

if x > 5:
    print("x es mayor que 5")

Ejemplo de Selectiva Doble

x = 10

if x > 15:
    print("x es mayor que 15")
else:
    print("x es menor o igual que 15")

Ejemplo de Selectiva Múltiple

x = 10

if x > 15:
    print("x es mayor que 15")
elif x > 5:
    print("x es mayor que 5 pero menor o igual que 15")
else:
    print("x es menor o igual que 5")

Ejercicio 5: Estructura If

Escribe un programa que determine si un número es positivo, negativo o cero.

Ejercicio 6: Calificaciones

Escribe un programa que califique una nota de 0 a 100 en:

  • Excelente (90-100)
  • Muy Bueno (80-89)
  • Bueno (70-79)
  • Regular (60-69)
  • Insuficiente (0-59)

Estructuras If Anidadas

x = 10

if x > 7:
    if x % 2 == 0:
        print("x es mayor que 7 y par")
    else:
        print("x es mayor que 7 e impar")
else:
    print("x es menor o igual que 7")

Ejercicio 7: Año Bisiesto

Escribe un programa que determine si un año es bisiesto. Un año es bisiesto si:

  • Es divisible por 4
  • No es divisible por 100, a menos que sea divisible por 400

Estructuras de Control Iterativas

Permiten ejecutar un código repetidamente.

Bucles For

Para iterar sobre una secuencia conocida.

for i in range(5):
    print(i)

Función Range()

Genera secuencias numéricas.

# range(parada)
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

# range(inicio, parada)
for i in range(2, 5):
    print(i)  # 2, 3, 4

# range(inicio, parada, paso)
for i in range(0, 10, 2):
    print(i)  # 0, 2, 4, 6, 8

Ejercicio 8: Suma con For

Escribe un programa que sume todos los números del 1 al 10 usando un bucle for.

Bucles While

Se ejecutan mientras una condición sea verdadera.

i = 0
while i < 5:
    print(i)
    i += 1

Ejercicio 9: Factorial con While

Escribe un programa que calcule el factorial de un número usando un bucle while.

Sentencias Break y Continue

Controlan el flujo dentro de los bucles.

Ejemplo de Break

for i in range(10):
    if i == 5:
        break
    print(i)

Ejemplo de Continue

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

Ejercicio 10: Números Primos

Escribe un programa que imprima todos los números primos entre 1 y 20.

Bucles Anidados

Bucles dentro de bucles.

for i in range(3):
    for j in range(3):
        print(f"({i}, {j})")

Ejemplo Práctico: Tabla de Multiplicación

for i in range(1, 6):
    for j in range(1, 6):
        print(f"{i} x {j} = {i * j}")
    print()  # Línea en blanco entre tablas

Ejercicio 11: Patrón de Asteriscos

Escribe un programa que dibuje un triángulo de asteriscos:

*
**
***
****
*****

Combinación de Estructuras

Usando condicionales dentro de bucles.

for i in range(1, 11):
    if i % 2 == 0:
        print(f"{i} es un número par")
    else:
        print(f"{i} es un número impar")

Ejercicio 12: FizzBuzz

Escribe un programa que imprima los números del 1 al 20, pero:

  • Para múltiplos de 3, imprime “Fizz”
  • Para múltiplos de 5, imprime “Buzz”
  • Para múltiplos de ambos, imprime “FizzBuzz”

Proyecto Final: Calculadora con Menú

Crea una calculadora que muestre un menú con las siguientes operaciones:

  1. Suma
  2. Resta
  3. Multiplicación
  4. División
  5. Potencia
  6. Salir

El programa debe pedir dos números y realizar la operación seleccionada.

Resumen

  • Las sentencias de control permiten controlar el flujo de ejecución
  • Estructuras selectivas: if, if-else, if-elif-else
  • Estructuras iterativas: for, while
  • Sentencias break y continue
  • La indentación es crucial en Python para definir bloques
  • Combinando estas estructuras podemos crear programas complejos

Preguntas