Condicionales y funciones en Python
Al finalizar este tema
Podrás crear ramas de ejecución con if/elif/else y definir funciones con def para reutilizar el código.
Condicionales — if, elif, else
Los programas deben "comportarse de manera diferente según la situación". Así funcionan los condicionales.
score = 85
if score >= 90: print("Calificación A")elif score >= 80: print("Calificación B")elif score >= 70: print("Calificación C")else: print("Repetir el examen")
# Salida: Calificación BLas condiciones se evalúan en orden, de arriba hacia abajo. Se ejecuta el primer bloque cuya condición sea verdadera y se omiten los demás.
La sangría es sintaxis
# ✅ Correctoif True: print("Ejecutado")
# ❌ IndentationErrorif True:print("¡Error!")Python utiliza la sangría (normalmente 4 espacios) en lugar de llaves para delimitar bloques. Si la sangría es incorrecta, se produce un error de sintaxis. No se deben mezclar tabulaciones y espacios.
Operadores de comparación y operadores lógicos
# Operadores de comparaciónx = 10print(x > 5) # Trueprint(x == 10) # True (¿son iguales?)print(x != 10) # False (¿son diferentes?)print(x >= 10) # True (mayor o igual)
# Operadores lógicosage = 25has_id = True
if age >= 18 and has_id: print("Entrada permitida")
if age < 18 or not has_id: print("Entrada denegada")| Operador | Significado | Ejemplo |
|---|---|---|
and | Ambos son verdaderos | A and B |
or | Al menos uno es verdadero | A or B |
not | Inversión | not A |
Funciones — def
En lugar de repetir el mismo código varias veces, encapsúlelo en una función y asígnele un nombre.
def greet(name): print(f"¡Hola, {name}!")
greet("Ana") # ¡Hola, Ana!greet("Luis") # ¡Hola, Luis!def nombre_función(parámetro): → El bloque con sangría es el cuerpo de la función. La función no se ejecuta hasta que se la invoque.
return — Devolver un resultado
def add(a, b): return a + b
result = add(3, 5)print(result) # 8
# Sin return, se devuelve Nonedef say_hello(): print("hello")
x = say_hello() # muestra "hello"print(x) # Noneprint() se muestra en la pantalla, mientras que return devuelve un valor. Son funciones con propósitos diferentes.
Valores predeterminados y argumentos con nombre
def power(base, exponent=2): return base ** exponent
print(power(3)) # 9 (usa el valor predeterminado exponent=2)print(power(3, 3)) # 27 (establece exponent=3)
# Argumentos con nombre: el orden no importaprint(power(exponent=4, base=2)) # 16Los parámetros que tienen valores predeterminados se pueden omitir cuando se realiza la llamada a la función.
Variables dentro de las funciones: ámbito
x = 10 # variable global
def foo(): x = 20 # variable local: solo es válida dentro de la función print(x) # 20
foo()print(x) # 10: la x global no ha cambiadoLas variables creadas dentro de una función se eliminan cuando la función finaliza. Aunque tengan el mismo nombre que las variables fuera de la función, son variables diferentes. Esto se conoce como ámbito (scope).
Sentencias condicionales + funciones = lógica
def classify_bmi(weight, height): bmi = weight / (height ** 2)
if bmi < 18.5: return "Bajo peso" elif bmi < 25: return "Peso normal" elif bmi < 30: return "Sobrepeso" else: return "Obesidad"
print(classify_bmi(70, 1.75)) # Peso normalprint(classify_bmi(90, 1.70)) # SobrepesoTomar decisiones con sentencias condicionales y reutilizar código mediante funciones. Al combinar estos dos conceptos, se puede expresar la mayor parte de la lógica de un programa.