Mejores prácticas para declaraciones condicionales en Python

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 and y or, reduciendo el riesgo de errores inesperados.

Entiende los valores Truthy y Falsy

En Python, los siguientes valores se evalúan como False:.

  • Ninguno
  • Falso
  • El número 0 (incluyendo 0.0)
  • Tipos de secuencias vacías (como listas, tuplas o cadenas vacías)
    • Ejemplos: [], (), ""
  • Diccionario vacío
    • 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    pass

Uso 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"
  • else no 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 or puede 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    pass

Resumen

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.

YouTube Video