Mejores prácticas para declaraciones condicionales en Python
Este artículo explica las mejores prácticas para declaraciones condicionales en Python.
YouTube Video
Mejores prácticas para declaraciones condicionales en Python
La declaración if en Python es un constructo fundamental para implementar bifurcaciones condicionales, y tiene un gran impacto en la legibilidad y el mantenimiento del código. Aquí, discutiremos en detalle las mejores prácticas para usar declaraciones if.
Usa expresiones condicionales explícitas
Escribe expresiones condicionales de forma concisa y explícita, evitando declaraciones redundantes.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- En Python, puedes indicar que una condición es verdadera escribiendo
if condition:.
Combinación de múltiples condiciones
Al combinar múltiples condiciones, utiliza and o or. Sin embargo, cuando las expresiones condicionales se vuelven complejas, la legibilidad puede disminuir, así que considera los siguientes ajustes:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- Dividiendo condiciones y asignándolas a variables, se puede mejorar la legibilidad.
Evaluación de cortocircuito con and/or
En las expresiones condicionales que utilizan and o or, si el resultado se puede determinar solo con el valor de la izquierda, se produce una evaluación de cortocircuito y el lado derecho no se evalúa. Comprender esto te ayuda a evitar procesamientos innecesarios y prevenir errores.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- Al utilizar la evaluación de cortocircuito, puedes mejorar la eficiencia y la seguridad del procesamiento.
Precedencia de and y or
and tiene mayor precedencia que or. Por lo tanto, al combinar condiciones de manera ingenua, puedes obtener resultados no deseados. Es importante usar paréntesis para dejar claras tus intenciones.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- Al usar paréntesis, puedes aclarar la precedencia de
andyor, reduciendo el riesgo de errores inesperados.
Entiende los valores Truthy y Falsy
En Python, los siguientes valores se evalúan como False:.
NingunoFalso- El número
0(incluyendo0.0) - Tipos de secuencias vacías (como listas, tuplas o cadenas vacías)
- Ejemplos:
[],(),""
- Ejemplos:
- Diccionario vacío
- Ejemplo:
{}
- Ejemplo:
Aprovechar esto puede ayudarte a simplificar tus expresiones condicionales.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passUso adecuado de elif y else
Al evaluar múltiples condiciones, utiliza elif. Usa else para definir un comportamiento por defecto al final.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"elseno es obligatorio. Si se cubren todas las condiciones, se puede omitir.- Presta atención al orden de las expresiones condicionales y organízalas de forma lógica sin redundancias.
Limita la profundidad de la anidación.
Una anidación profunda de declaraciones if hace que el código sea más difícil de leer.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- Usar retornos tempranos puede reducir la anidación y hacer el código más conciso.
Evita usar declaraciones if en una sola línea.
Es posible escribir declaraciones if en una sola línea, pero esto puede reducir la legibilidad.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- El uso de declaraciones if de una sola línea es aceptable solo para condiciones o acciones cortas, pero evita escribir código demasiado extenso.
Simplificando con el operador ternario o or
Para ramas condicionales simples, usar el operador ternario o or puede hacer tu código más conciso. Sin embargo, abusar de estos puede hacer que el código sea más difícil de leer, así que solo deben usarse para condiciones simples e intuitivas.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- Para condiciones simples, usar el operador ternario o
orpuede hacer tu código más corto y fácil de entender.
Caché de expresiones condicionales.
Las expresiones condicionales que implican cálculos costosos o llamadas a funciones pueden almacenarse en caché en variables para mejorar el rendimiento.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 passResumen
Las declaraciones if de Python son herramientas simples y potentes, pero un uso inadecuado puede hacer que el código sea complejo y difícil de leer. Al adoptar las mejores prácticas presentadas aquí, puedes mejorar la legibilidad, mantenibilidad y eficiencia de tu código.
Puedes seguir el artículo anterior utilizando Visual Studio Code en nuestro canal de YouTube. Por favor, también revisa nuestro canal de YouTube.