if else en Python: Guía de Declaraciones Condicionales

Domina las declaraciones if else de Python con ejemplos claros. Aprende sintaxis, mejores prácticas y casos de uso comunes. Incluye ejemplos de código interactivos y tutoriales.

La declaración if else en Python proporciona toma de decisiones bidireccional ejecutando un bloque de código cuando una condición es verdadera y otro bloque cuando la condición es falsa. A diferencia de una declaración if simple que no hace nada cuando la condición es falsa, if else garantiza que uno de los dos caminos de código siempre se ejecutará. Esto es esencial para crear programas que necesitan manejar tanto escenarios de éxito como de fallo.

Sintaxis Básica de if else

La declaración if else extiende la declaración if básica agregando una acción alternativa cuando la condición se evalúa como False.

if condition:
    # code to execute if condition is True
    statement1
else:
    # code to execute if condition is False
    statement2

La palabra clave else captura todo lo que no es capturado por la condición if, actuando como un "captura todo" para escenarios no cubiertos por la declaración if. Python usa dos puntos (:) después de las palabras clave if y else, seguidas de bloques de código con sangría.

Ejemplo 1: Declaración if else Simple

a = 200
b = 33

if b > a:
    print("b is greater than a")
else:
    print("b is not greater than a")
Salida:
b no es mayor que a

Since 33 is not greater than 200, the condition is false, so the else block executes.

Cómo Funciona if else

La declaración if else sigue un flujo de ejecución directo:

  1. Python evalúa la condición después de la palabra clave if
  2. Si la condición es True, se ejecuta el primer bloque con sangría y se omite el bloque else
  3. Si la condición es False, se omite el primer bloque y se ejecuta el bloque else
  4. Después de que cualquiera de los bloques se complete, la ejecución continúa con el código después de toda la estructura if else

Ejemplo: Verificación de Temperatura

temperature = 15

if temperature > 20:
    print("It's warm outside")
else:
    print("It's cool outside")

print("Have a nice day!")
Salida:
Hace frío afuera
¡Que tengas un buen día!

La declaración print final se ejecuta independientemente de qué rama se tomó.

Comparando Valores con if else

La declaración if else comúnmente usa operadores de comparación para tomar decisiones basadas en valores numéricos o de cadena.

Ejemplo 1: Comparación de Números

number = 7

if number % 2 == 0:
    print("The number is even")
else:
    print("The number is odd")
Salida:
El número es impar

Ejemplo 2: Comparación de Cadenas

username = "admin"

if username == "admin":
    print("Welcome, Administrator!")
else:
    print("Welcome, User!")
Salida:
¡Bienvenido, Administrador!

Ejemplo 3: Verificación de Edad

age = 16

if age >= 18:
    print("You are eligible to vote")
else:
    print("You are not eligible to vote yet")
Salida:
Aún no eres elegible para votar

Múltiples Declaraciones en Bloques if else

Tanto los bloques if como else pueden contener múltiples declaraciones, siempre que mantengan una sangría consistente.

Ejemplo:

score = 85

if score >= 90:
    print("Excellent performance!")
    print("You earned an A grade")
    grade = "A"
    bonus_points = 10
else:
    print("Good effort!")
    print("Keep working hard")
    grade = "B"
    bonus_points = 5

print(f"Your grade is: {grade}")
print(f"Bonus points: {bonus_points}")
Salida:
¡Buen esfuerzo!
Sigue trabajando duro
Tu calificación es: B
Puntos de bonificación: 5

if else en Una Línea (Operador Ternario)

Para condiciones simples con declaraciones únicas, Python te permite escribir if else en una línea, creando código más conciso.

Formato Estándar:

age = 20

if age >= 18:
    status = "adult"
else:
    status = "minor"

print(status)

Formato de Una Línea (Operador Ternario):

age = 20
status = "adult" if age >= 18 else "minor"
print(status)
Salida:
adulto

More Examples:

# Example 1: Maximum of two numbers
a = 10
b = 20
max_value = a if a > b else b
print(f"Maximum: {max_value}")  # Output: Maximum: 20

# Example 2: Pass/Fail determination
marks = 75
result = "Pass" if marks >= 50 else "Fail"
print(result)  # Output: Pass

# Example 3: Sign determination
number = -5
sign = "Positive" if number > 0 else "Non-positive"
print(sign)  # Output: Non-positive

Esta sintaxis compacta es particularmente útil para asignaciones simples y condiciones rápidas.

Combinando Condiciones con Operadores Lógicos

Puedes usar los operadores and, or y not para crear condiciones complejas en declaraciones if else.

Ejemplo 1: Usando el Operador and

age = 25
has_license = True

if age >= 18 and has_license:
    print("You can drive")
else:
    print("You cannot drive")
Salida:
Puedes conducir

Ejemplo 2: Usando el Operador or

day = "Saturday"

if day == "Saturday" or day == "Sunday":
    print("It's the weekend!")
else:
    print("It's a weekday")
Salida:
¡Es fin de semana!

Ejemplo 3: Usando el Operador not

is_raining = False

if not is_raining:
    print("You don't need an umbrella")
else:
    print("Take an umbrella")
Salida:
No necesitas un paraguas

Ejemplo 4: Verificación de Rango de Temperatura

temperature = 35

if temperature > 30 and temperature < 40:
    print("It's a hot day!")
else:
    print("Temperature is moderate")
Salida:
¡Es un día caluroso!

Declaraciones if else Anidadas

Puedes colocar declaraciones if else dentro de otras declaraciones if else para manejar múltiples niveles de toma de decisiones.

Ejemplo 1: Anidación Básica

number = 10

if number >= 0:
    if number == 0:
        print("Number is zero")
    else:
        print("Number is positive")
else:
    print("Number is negative")
Salida:
El número es positivo

Ejemplo 2: Clasificación de Calificaciones con Anidación

marks = 85

if marks >= 50:
    print("You passed!")
    if marks >= 90:
        print("Grade: A - Excellent!")
    else:
        print("Grade: B - Good job!")
else:
    print("You failed")
    print("Please retake the exam")
Salida:
¡Aprobaste!
Calificación: B - ¡Buen trabajo!

Ejemplo 3: Autenticación de Usuario Multi-Nivel

username = "admin"
password = "secret123"

if username == "admin":
    if password == "secret123":
        print("Access granted")
        print("Welcome to admin panel")
    else:
        print("Incorrect password")
else:
    print("User not found")
Salida:
Acceso concedido
Bienvenido al panel de administración

Aunque el anidamiento es poderoso, el anidamiento excesivo puede hacer que el código sea más difícil de leer—considera usar elif para una lógica multi-condición más limpia.

Validando Entrada del Usuario con if else

La declaración if else es esencial para la validación de entrada y el manejo de errores.

Ejemplo 1: Verificación de Cadena Vacía

username = ""

if len(username) > 0:
    print(f"Welcome, {username}!")
else:
    print("Error: Username cannot be empty")
Salida:
Error: El nombre de usuario no puede estar vacío

Ejemplo 2: Validación de Longitud de Contraseña

password = "abc"

if len(password) >= 8:
    print("Password is valid")
else:
    print("Password must be at least 8 characters")
Salida:
La contraseña debe tener al menos 8 caracteres

Ejemplo 3: Validación de Rango Numérico

age = 150

if age > 0 and age <= 120:
    print(f"Age {age} is valid")
else:
    print("Invalid age entered")
Salida:
Edad ingresada inválida

Ejemplo 4: Verificación de Membresía en Lista

allowed_users = ["alice", "bob", "charlie"]
current_user = "david"

if current_user in allowed_users:
    print("Access granted")
else:
    print("Access denied")
Salida:
Acceso denegado

Extendiendo con elif

Aunque esta página se enfoca en if else, puedes agregar elif (else if) entre if y else para probar múltiples condiciones secuencialmente.

temperature = 22

if temperature > 30:
    print("It's hot outside!")
elif temperature > 20:
    print("It's warm outside")
elif temperature > 10:
    print("It's cool outside")
else:
    print("It's cold outside!")
Salida:
Hace calor afuera

La declaración else debe venir al final y actúa como el valor predeterminado cuando ninguna otra condición es verdadera.

Casos de Uso Comunes

Caso de Uso 1: Sistema de Inicio de Sesión

stored_password = "python123"
entered_password = "python123"

if entered_password == stored_password:
    print("Login successful")
else:
    print("Invalid password")
Salida:
Inicio de sesión exitoso

Caso de Uso 2: Calculadora de Descuentos

purchase_amount = 120

if purchase_amount >= 100:
    discount = purchase_amount * 0.10
    print(f"You get a 10% discount: ${discount}")
else:
    print("No discount available")
Salida:
Obtienes un descuento del 10%: $12.0

Caso de Uso 3: Sistema de Aprobado/Reprobado

exam_score = 45
passing_score = 50

if exam_score >= passing_score:
    print("Congratulations! You passed")
else:
    print(f"Sorry, you need {passing_score - exam_score} more points to pass")
Salida:
Lo siento, necesitas 5 puntos más para aprobar

Caso de Uso 4: Verificador de Extensión de Archivo

filename = "document.pdf"

if filename.endswith(".pdf"):
    print("This is a PDF file")
else:
    print("This is not a PDF file")
Salida:
Este es un archivo PDF

Caso de Uso 5: Verificador de Año Bisiesto

year = 2024

if year % 4 == 0:
    print(f"{year} is a leap year")
else:
    print(f"{year} is not a leap year")
Salida:
2024 es un año bisiesto

Errores Comunes a Evitar

Error 1: Falta el Dos Puntos

# Wrong
if number > 0
    print("Positive")
else
    print("Not positive")

# Correct
if number > 0:
    print("Positive")
else:
    print("Not positive")

Error 2: Sangría Inconsistente

# Wrong
if age >= 18:
    print("Adult")
else:
  print("Minor")  # Different indentation

# Correct
if age >= 18:
    print("Adult")
else:
    print("Minor")

Error 3: Usar elif Después de else

# Wrong
if x > 0:
    print("Positive")
else:
    print("Not positive")
elif x < 0:  # SyntaxError
    print("Negative")

# Correct
if x > 0:
    print("Positive")
elif x < 0:
    print("Negative")
else:
    print("Zero")

Error 4: Bloques de Código Vacíos

# Wrong
if condition:
    # Code here
else:
    # This will cause an error

# Correct - use pass for placeholder
if condition:
    print("Condition met")
else:
    pass  # Do nothing

Usa pass como marcador de posición

Mejores Prácticas

Práctica 1: Mantén las Condiciones Simples y Legibles

# Less readable
if not (age < 18 or not has_permission):
    print("Allowed")

# More readable
if age >= 18 and has_permission:
    print("Allowed")

Práctica 2: Usa Nombres de Variables Significativos

# Poor
if x > 100:
    y = True

# Better
if purchase_amount > 100:
    eligible_for_discount = True

Práctica 3: Maneja Ambos Caminos Explícitamente

# When both outcomes matter, use if else
file_exists = True

if file_exists:
    print("Loading file...")
else:
    print("Creating new file...")

Cuando ambos resultados importan, usa if else

Práctica 4: Evita el Anidamiento Profundo

# Harder to read
if condition1:
    if condition2:
        if condition3:
            action()

# Better - use elif or logical operators
if condition1 and condition2 and condition3:
    action()

Pruébalo Tú Mismo

Experimenta con declaraciones if else

Listo
main.py
Consola de Salida 0 ms
// Haz clic en "Ejecutar Código" para ver resultados

Temas Relacionados

Preguntas Frecuentes

¿Cuál es la diferencia entre if y if else en Python?

Una declaración if solo ejecuta código cuando la condición es verdadera y no hace nada en caso contrario. Una declaración if else garantiza que uno de dos bloques de código se ejecutará—ya sea el bloque if cuando la condición es verdadera o el bloque else cuando es falsa.

¿Puedo tener un if else sin elif?

Sí, if else funciona perfectamente sin elif. La palabra clave elif solo se necesita cuando quieres probar múltiples condiciones secuencialmente.

¿Necesito paréntesis alrededor de las condiciones en las declaraciones if else de Python?

No, los paréntesis son opcionales. Tanto if (x > 5): como if x > 5: son válidos, aunque el último se usa más comúnmente en Python.

¿Puedo usar if else en una línea?

Sí, Python admite el operador ternario: result = "yes" if condition else "no". Esto es útil para asignaciones simples.

¿Qué sucede si olvido sangrar el código en un bloque else?

Python generará un IndentationError porque requiere sangría consistente para definir bloques de código.

¿Puede aparecer else por sí solo sin if?

No, else siempre debe estar emparejado con una declaración if precedente. No puedes usar else independientemente.