Este artículo fue publicado como parte del Blogatón de ciencia de datos
Introducción
¿Alguna vez ha deseado escribir un código Python mejor y más corto? ¿Cómo replicar los casos de Switch tradicionales en Python? Te tengo cubierto. En este artículo, discutiremos 5 consejos / trucos de Python para escribir un código mejor y más corto. ¡Entonces empecemos!
Nota: Más corto no siempre significa mejor. Tu código debe ser Fácil de leer y entender.
Nos centraremos en escribir más corto y más legible código en este artículo. Específicamente, aprenderemos:
- ¿Cómo hacer que los números grandes sean más legibles en código y salida (10000000 a 10,000,000)?
- ¿Cómo tomar una contraseña como entrada de un usuario sin mostrarla realmente?
- ¿Cómo utilizar los diccionarios para implementar los casos de interruptores?
- ¿Cómo ahorrar memoria usando generadores?
Tabla de contenido
- Condicionales ternarios
- Trabajar con números grandes
- Ingresar información secreta
- Utilice el diccionario para replicar casos de interruptores
- Utilice generadores para ahorrar memoria
- Consejo de bonificación
- Resumen
- Notas finales
Condicionales ternarios
Tomemos una situación en la que está asignando un valor a la variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos.... en función de alguna condición. Probablemente escribirías algo como lo siguiente:
condition = False if condition: x = 1 else: x = 0 print(x)
El código anterior funciona correctamente, pero ¿crees que es pitónico? No lo es. Entonces, para hacer que su código sea pitónico, puede encontrar algo como lo siguiente:
condition = False x = 1 if condition else 0 print(x)
x = 1 si la condición else 0 está en inglés sencillo y se explica por sí mismo. Por lo tanto, hace que nuestro código sea más corto y fácil de entender.
Obtendríamos el mismo resultado en ambos sentidos.
Pasemos a otro truco.
Trabajar con números grandes
Ahora hablemos de mi truco favorito. ¿Ha trabajado alguna vez con grandes números? 1000000000 o 1.000.000.000; ¿Cuál es más legible? El segundo, ¿verdad? Pero si intentamos hacer eso en Python como num1 = 1,000,000,000, obtendríamos un error.
Pero hay otro método para hacer lo mismo. Nosotros podemos usar _ para separar los dígitos que no afectan a nuestro programa. Y podemos usar :, dentro de la cadena f para separar los dígitos de salida con una coma. El siguiente código demuestra lo mismo.
num1 = 1_000_000_000 # 1 billion num2 = 10_000_000 # 10 million total = num1 + num2 print(f'{total:,}') # To separate the output digits with comma
# Output # 1,010,000,000
¿No es asombroso? De hecho, es.
Ingresar información secreta
Digamos que está tomando un nombre de usuario y una contraseña como entrada del usuario. Seguramente optaría por el siguiente enfoque.
uname = input('Enter Username: ') pwd = input('Enter password: ') print('Logging In....')
Producción:
Imagen del autor
Pero cualquiera puede ver esa contraseña y eso viola la seguridad. Entonces, para hacerlo más seguro, estaríamos usando el conseguir pase módulo.
from getpass import getpass uname = input('Enter Username: ') pwd = getpass('Enter password: ') print('Logging In....')
Producción:
Imagen del autor
¿Has notado la diferencia? Ok, eso suena genial. Pasemos a otro truco.
Utilice el diccionario para replicar casos de interruptores
La mayoría de nosotros aprendemos el lenguaje C como nuestro primer lenguaje de programación. Encontré las cajas de interruptores como el concepto más simple pero importante en el lenguaje C. Ese fue el primer concepto que aprendí en programación que tiene algunas aplicaciones del mundo real. Podemos pensar en su aplicación en las llamadas de Atención al Cliente.
Muchas veces, los programadores principiantes de Python tienen dudas sobre la aplicación de casos de interruptores usando Python. Podemos usar el Diccionario Python para hacer eso en el que definimos el nombre de la función como una clave y la expresión de la función como un valor. El siguiente programa demuestra lo mismo.
calc = { 'add': lambda x, y: x + y, 'subtract': lambda x, y: x - y, 'mul': lambda x, y: x * y, 'div': lambda x, y: x / y } # Smart way to call a function which is defined in a dictionary. print(calc['add'](5, 4)) print(calc['subtract'](5, 2)) print(calc['mul'](5, 4)) print(calc['div'](10, 2))
Producción:
Imagen del autor
Utilice generadores para ahorrar memoria
Digamos que tenemos una lista muy grande. Entonces, aquí tenemos 10,000 elementos en la lista y queremos calcular el cuadrado de cada elemento. Podemos hacer eso con la lista de comprensiones con el código que se ve como el siguiente.
import sys squares_list = [i*i for i in range(10_000)] # To print the size of a variable print(sys.getsizeof(squares_list, "bytes"))
# Output # 87632
Entonces, este es un ejemplo perfecto donde podemos usar generadores. De manera similar a las listas por comprensión, podemos usar las comprensiones del generador donde tenemos paréntesis en lugar de llaves cuadradas. Un generador calcula nuestros elementos de forma perezosa. Por lo tanto, produce solo un artículo a la vez y solo cuando se lo solicita. Puede leer más sobre los generadores aquí. El siguiente programa calcula el cuadrado de cada número hasta 10000 usando comprensiones del generador.
squares_gen = (i*i for i in range(10_000)) # To print the size of a variable print(sys.getsizeof(squares_gen, "bytes"))
# Output # 128
Esa es una diferencia bastante notable en el uso de la memoria. Ahora, intente obtener los números más grandes por su cuenta. ¡Vería una gran diferencia!
Consejo de bonificación
Usar operador interactivo «_»
Discutamos nuestro último consejo. Es una característica útil que no muchos de nosotros conocemos. Siempre que probamos una expresión o llamamos a una función, el resultado se envía a un nombre temporal, _ (un guión bajo). Entonces, demostremos esto.
2 + 3
# Output # 5
Ahora, ejecute el siguiente código.
print(_)
# Output # 5
¿Sorprendido por esto? Puede encontrar todos los trucos discutidos en un artículo en mi cuaderno de Python en Github.
Resumen
Eso completa la discusión de hoy. En este artículo, aprendimos:
- ¿Cómo hacer que los números grandes sean más legibles en código y salida (10000000 a 10,000,000)?
- ¿Cómo tomar una contraseña como entrada de un usuario sin mostrarla realmente?
- ¿Cómo utilizar los diccionarios para implementar los casos de interruptores?
- ¿Cómo ahorrar memoria usando generadores?
Notas finales
¡Gracias por leer este artículo!
Espero que haya disfrutado leyendo este artículo y valga la pena dedicar sus 10 minutos.
¿Me perdí algo importante o quería compartir tus pensamientos? Comenta abajo y te responderé.
Sobre el Autor
Soy Harsh Dhamecha, un aspirante a científico de datos. Soy estudiante de último año de la carrera de Informática con especialización en Inteligencia Artificial. Un alumno motivado que está ansioso por ayudar a la comunidad de ciencia de datos tanto como pueda. Creo que el conocimiento es la moneda del siglo XXI y me encanta compartirlo.
Si tiene alguna consulta, puede directamente Email yo o conéctate conmigo en LinkedIn o Gorjeo para la colaboración en proyectos.
Si encuentra este artículo informado y atractivo, también puede leer mis otros artículos.
¡Seguir leyendo! Un agradecimiento especial para ti 🙌
Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.