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") 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:
- Python evalúa la condición después de la palabra clave
if - Si la condición es
True, se ejecuta el primer bloque con sangría y se omite el bloqueelse - Si la condición es
False, se omite el primer bloque y se ejecuta el bloqueelse - 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!") 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") El número es impar
Ejemplo 2: Comparación de Cadenas
username = "admin"
if username == "admin":
print("Welcome, Administrator!")
else:
print("Welcome, User!") ¡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") 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}") ¡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) 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") 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") ¡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") 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") ¡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") 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") ¡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") 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") 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") 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") 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") 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!") 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") 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") 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") 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") 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") 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
// 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.