1. Versión de Python
Me gustaría recordarles a todos: a partir del 1 de enero de 2020, Python oficialmente ya no es compatible con Python 2. Muchos de los ejemplos de este artículo solo se pueden ejecutar en Python 3. Si todavía usa Python 2.7, actualice ahora.
2. Verifique la versión mínima de Python
Puede verificar la versión de Python en el código para asegurarse de que sus usuarios no estén ejecutando el script en una versión incompatible. El método de verificación es el siguiente:
if not sys.version_info > (2, 7):
#. berate your user for running a 10 year
#. python version
elif not sys.version_info >= (3, 5):
#. Kindly tell your user (s)he needs to upgrade
#. because you're using 3.5 features
3. IPython
IPython es esencialmente un shell mejorado. Vale la pena intentarlo solo para completarlo automáticamente, y su función es más que eso, también tiene muchos comandos que no puedo dejar, como:
-
% cd: cambia el directorio de trabajo actual
-
% edit: abre el editor y ejecuta el código escrito después de cerrar el editor
-
% env: muestra las variables del entorno actual
-
% pip install [pkgs]: puede instalar paquetes de software sin salir del shell interactivo
-
% time y% timeit: mide el tiempo para ejecutar código Python
Para obtener una lista completa de comandos, haga clic aquí para ver (https://ipython.readthedocs.io/en/stable/interactive/magics.html).
También hay una función muy útil: consulte la salida del comando anterior. La entrada y la salida son objetos reales. Puede utilizar la salida del tercer comando en forma de Out [3].
El comando de instalación de IPython es el siguiente:
pip3 install ipython
4. Comprensión de listas
Puede utilizar listas por comprensión para evitar el engorroso uso de bucles para llenar listas. La sintaxis básica de la comprensión de la lista es la siguiente:
[ expression for item in list if conditional ]
Para dar un ejemplo básico: llene una lista con un conjunto de números ordenados:
mylist = [i for i in range(10)]
print(mylist)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Como puede usar expresiones, también puede realizar algunas operaciones aritméticas:
squares = [x**2 for x in range(10)]
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Incluso puede llamar a funciones externas:
def some_function(a):
return (a + 5) / 2
my_formula = [some_function(i) for i in range(10)]
print(my_formula)
# [2, 3, 3, 4, 4, 5, 5, 6, 6, 7]
Finalmente, también puede usar 'si' para filtrar la lista. En el siguiente ejemplo, solo conservamos los números divisibles por 2:
filtered = [i for i in range(20) if i%2==0]
print(filtered)
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
5. Verifique el uso de memoria del objeto
Puede usar sys.getsizeof () para verificar el uso de memoria del objeto:
import sys
mylist = range(0, 10000)
print(sys.getsizeof(mylist))
# 48
Espera, ¿por qué esta enorme lista solo contiene 48 bytes?
Porque la función de rango aquí devuelve una clase, pero se comporta como una lista. En términos de uso de memoria, el rango es mucho más eficiente que la lista real de números.
Puede intentar crear una lista de números con el mismo rango usando la comprensión de listas:
import sys
myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist))
# 87632
6. Devuelve varios valores
Una función en Python puede devolver más de una variable sin usar diccionarios, listas o clases. Como sigue:
def get_user(id):
# fetch user from database
# ....
return name, birthdate
name, birthdate = get_user (4)
Si el número de valores devueltos es limitado, por supuesto que está bien. Sin embargo, si el número de valores devueltos supera los 3, debe poner el valor devuelto en una clase (de datos).
7. Utilice clases de datos
Python ha proporcionado clases de datos desde la versión 3.7. En comparación con las clases normales u otros métodos (como devolver varios valores o diccionarios), las clases de datos tienen varias ventajas obvias:
El tipo de datos tiene menos código
Puede comparar clases de datos porque las clases de datos proporcionan el método eq
Al depurar, puede generar fácilmente la clase de datos, porque la clase de datos también proporciona el método repr
Los tipos de datos necesitan sugerencias de tipo, por lo que puede reducir la posibilidad de errores
Los ejemplos de clases de datos son los siguientes:
from dataclasses import dataclass
@dataclass
class Card:
rank: str
suit: str
card = Card("Q", "hearts")
print(card == card)
# True
print(card.rank)
# 'Q'
print(card)
Card(rank='Q', suit='hearts')
Para obtener la guía de uso detallada, haga clic aquí (https://realpython.com/python-data-classes/).
8. Intercambio de variables
Los siguientes consejos son muy inteligentes y pueden ahorrarle varias líneas de código:
a = 1
b = 2
a, b = b, a
print (a)
# 2
print (b)
# 1
9. Combinar diccionarios (Python 3.5 y superior)
A partir de Python 3.5, la operación de combinar diccionarios se ha vuelto más fácil:
dict1 = {
'a': 1, 'b': 2 }
dict2 = {
'b': 3, 'c': 4 }
merged = {
**dict1, **dict2}
print (merged)
# {'a': 1, 'b': 3, 'c': 4}
Si se repite la clave, se sobrescribirá la clave del primer diccionario.
10. Ponga en mayúscula la primera letra de la cadena
La siguiente técnica es realmente un poco linda:
mystring = "10 awesome python tricks"
print(mystring.title())
'10 Awesome Python Tricks'