Hay muchos consejos y trucos en Python que pueden facilitar un poco la codificación. En este tutorial, veremos un montón de consejos y trucos que le pueden gustar cuando trabaje con Python. Algunos de los temas a cubrir incluyen el operador condicional de Python (ternario), la combinación de diccionarios, guiones bajos para ayudar con números grandes, imprimir una lista en un orden específico, cómo usar administradores de contexto, encontrar el elemento más común en una lista, usar el enumerar funciones, intercambiar variables, usar help (), usar zip () y muchos más.


Operador ternario de Python

El primer consejo a tener en cuenta es el operador ternario en Python. A veces también se le llama condicional ternario. El ternario se agregó a la versión 2.5 de Python. El ternario de Python es útil en algunas situaciones para ayudar a acortar su código o hacerlo más claro. Entonces, ¿cómo se usa? Primero, veamos un simple condicional if / else en Python. Es un patrón común en el que verifica si una condición es Verdadera o Falsa, y luego asigna un valor a una variable en función del resultado de esa condición.

myvariable es 1

Dado que la condición es verdadera, la variable se establece en 1. Establezcamos la condición en False ahora para ver cómo la variable se establece en 0.

myvariable es 0

El ternario

Una forma más rápida de escribir esto es usando el Condicional Ternario en Python. Esto convierte efectivamente la construcción if / else en una simple frase. En el código siguiente, podemos ver cómo funciona esto. El hecho de que ahora sea de una sola línea no significa que sea mejor. El objetivo es escribir código que usted y otros puedan entender de una manera fácil. Muchas veces, el condicional ternario es igualmente fácil de leer, especialmente una vez que estás acostumbrado. Entonces, si hace que el código sea más corto, entonces eso es una ventaja adicional.

otra variable es 1

otra variable es 2

Fusionar dos diccionarios

El siguiente truco es cómo fusionar dos diccionarios de Python en una variable. Esto se puede hacer con el operador de doble asterisco ** introducido en Python 3.5. Cada elemento se agrega al nuevo diccionario y las entradas superpuestas utilizan el valor del elemento posterior. Aquí está en acción.

{'a': 1, 'b': 2, 'c': 4, 'd': 5, 'e': 6}

Subraya como comas en números grandes

Este consejo trata sobre cuándo está trabajando con grandes números en Python. En Python, no puede usar comas para dividir números grandes. Entonces, en lugar de escribir un número como 70.000.000.000, tienes que escribirlo como 70000000000. Mirando un número como ese es fácil confundir el tamaño del número. El truco que puede utilizar es poner guiones bajos en lugar de donde irían las comas, y Python lo permite.

70070000000

Las matemáticas todavía ocurren correctamente. Luego, puede usar una cadena F en Python para agregar comas así a la salida.

70,070,000,000

Especificar el orden de impresión de una lista

Este pequeño truco en Python le permite imprimir una lista en el orden que elija.

10 20 30 40
40 20 30 10

Aprovechando los administradores de contexto de Python

Al leer y escribir archivos en Python, hay algunas formas de completar esa tarea. Considere este archivo y el siguiente código.

archivo de Python en el disco

12

El código anterior primero abre manualmente un archivo, luego lee el archivo y luego el archivo se cierra manualmente. Una vez que tenemos el contenido del archivo, dividimos las palabras usando espacios como delimitadores, contamos las palabras y las imprimimos. Cuando necesita administrar recursos manualmente, como abrir y cerrar el archivo como se ve aquí, es una pista de que podría haber una mejor manera de hacerlo. La mejor forma de hacerlo es mediante el uso de un administrador de contexto. El propósito del administrador de contexto es administrar los recursos por usted, por lo que no necesita manejarlo manualmente. Aquí está el código que se reescribió usando el administrador de contexto con, y creo que estará de acuerdo en que es un buen resultado.

12

Encuentra el artículo más común en una lista

Este truco de Python le muestra cómo encontrar el elemento más común en una lista. El siguiente ejemplo tiene una lista de cadenas. Específicamente, hay un montón de verduras en una lista y queremos encontrar la verdura que más tenemos. Así es como se hace.

brócoli

Si hay un empate, el artículo que alcanza el conteo más alto gana primero.

frijoles

Enumerar función en Python

El siguiente consejo de Python se refiere a aprender a usar la función enumerate () en Python. En otros idiomas, cuando usa un bucle for para iterar, automáticamente obtiene acceso a un índice para que pueda realizar un seguimiento de dónde se encuentra en el bucle. Python realmente no tiene eso, por lo que a veces verá un código como este para crear manualmente un índice.

1 brócoli
2 coles de Bruselas
3 coliflor
4 calabaza butternut

Un mejor enfoque es usar enumerate () ya que fue diseñado para este tipo de aplicación. Por defecto, cuando usa enumerate (), el índice comienza en 0. Sin embargo, podemos cambiar el punto de partida haciendo uso del startparámetro y configurándolo en 1.

1 brócoli
2 coles de Bruselas
3 coliflor
4 calabaza butternut

Intercambiar dos variables

Un truco genial que puedes hacer en Python es intercambiar variables fácilmente. Veamos cómo funciona esto. Primero, tenemos dos variables con algunos datos y las imprimimos obteniendo lo que esperaríamos.

Tom jerry

Para revertir lo que contiene cada variable, todo lo que tenemos que hacer es intercambiar el orden así. No es necesario configurar variables temporales.

Jerry Tom

El fragmento de código anterior trata con cadenas simples, los números enteros funcionan igual también.

10 20
20 10

Bucle sobre varias listas a la vez

A veces, es posible que desee recorrer más de una lista a la vez en Python. Este consejo te ayudará a hacer este tipo de cosas. Digamos que tienes dos listas. Su objetivo es acceder al primer valor de ambas listas en la primera iteración, luego acceder al segundo valor de ambas listas en la segunda iteración, y así sucesivamente. Hay varias formas de hacer esto. La primera es usando la función enumerate () que acabamos de conocer.

Brócoli cubierto con queso
Coles de Bruselas cubiertas con ajo
Coliflor cubierta con aceite de oliva
Calabaza butternut cubierta con mantequilla

Entonces podemos ver el propósito de recorrer dos listas a la vez. Cada índice de cada lista está relacionado de alguna manera con el índice correspondiente de otra lista. Quizás una forma más limpia de lograr esto es usando la función zip () en Python. Veamos cómo funciona.

Brócoli cubierto con queso
Coles de Bruselas cubiertas con ajo
Coliflor cubierta con aceite de oliva
Calabaza butternut cubierta con mantequilla

¡Muy genial! Sin embargo, ¿por qué detenerse en dos listas? ¡Recorramos fácilmente tres listas a la vez!

Brócoli frito cubierto con queso
Coles de Bruselas al horno cubiertas con ajo
Coliflor al vapor cubierta con aceite de oliva
Calabacín al horno cubierto con mantequilla

Agregar un emoji en Python

Esta lista de trucos en Python no estaría completa sin ver cómo agregar un Emoji a su código Python. Como se hace Primero, debe instalar el paquete con pip install emoji , luego podemos usar un código como este.

Python es 🔥

Desempaquetando valores en Python

Desembalar le permite asignar muchos valores a la vez. Es muy conveniente y le permite expresar mucha lógica en una sintaxis concisa. Veamos algunos ejemplos de Desempaquetar valores en Python. El siguiente código descomprime dos valores de una tupla y los coloca cada uno en su propia variable. Puede hacer esto con tantos valores como desee.

1
2

Para descomprimir valores pero ignorar un valor en particular, puede usar un guión bajo como marcador de posición así.

1

Por lo general, desea tener el mismo número de variables a la izquierda del =que el número de valores que está intentando descomprimir a la derecha del =El mapeo debe ser igual. Hay una pequeña forma de evitar esto usando el operador *. Con este enfoque, puede descomprimir los dos primeros valores en sus propias variables y luego tomar el resto de los valores y asignarlos a una lista.

1
2
[3, 4, 5]

El mismo truco de subrayado se puede utilizar para ignorar ciertos valores como vimos anteriormente.

1
2

Aquí hay otro ejemplo de este truco.

1
2
[3, 4]
5

Escriba con mayúscula cada palabra en una oración

Hay un montón de trucos que puedes hacer con cadenas, pero uno de mis favoritos es simplemente aplicar el método title () a una cadena para poner en mayúscula la primera letra de cada palabra en una cadena. Por ejemplo:

Consejos y trucos de Python

Uso de la ayuda ()

Imagínese que su Internet se cayó y no tiene acceso a la documentación de Python. Tiene algunas preguntas sobre la función o el módulo que está intentando utilizar. ¡No temáis! El módulo help () es tu amigo. De hecho, para nuestro primer truco, usaremos help () en help . Observar:

Ayuda sobre _Helper en el objeto del sitio del módulo:

clase _Helper (objeto incorporado)
 | Defina la 'ayuda' incorporada.
 | Este es un envoltorio sobre pydoc.help (con un giro).
 |  
 | Métodos definidos aquí:
 |  
 | __call __ (self, * args, ** kwds)
 | Llamarse a sí mismo como una función.
 |  
 | __repr __ (yo)
 | Devuelve repr (self).
 |  
 | -------------------------------------------------- --------------------
 | Descriptores de datos definidos aquí:
 |  
 | __dict__
 | diccionario por ejemplo variables (si está definido)
 |  
 | __weakref__
 | lista de referencias débiles al objeto (si está definido)

Existen tres funciones fantásticas para ayudarlo a navegar a través del código Python al compilar y depurar. Estos son type()id()dir()¿Qué hacen? Veamos qué help()dice.

Ayuda sobre el tipo de clase en los módulos incorporados:

tipo de clase (objeto)
 | type (object_or_name, bases, dict)
 | tipo (objeto) -> el tipo del objeto
 | tipo (nombre, bases, dict) -> un nuevo tipo
 |  
 | Métodos definidos aquí:
 |  
 | __call __ (self, /, * argumentos, ** kwargs)
 | Llamarse a sí mismo como una función.
 |  
 | __delattr __ (yo, nombre, /)
 | Implementar delattr (self, name).
 |  
 | __dir __ (yo, /)
 | Implementación especializada de __dir__ para tipos.
 |  
 | __getattribute __ (yo, nombre, /)
 | Devuelve getattr (self, name).
 |  
 | __init __ (self, /, * argumentos, ** kwargs)
 | Inicializar uno mismo. Consulte la ayuda (escriba (auto)) para obtener una firma precisa.
 |  
 | __instancecheck __ (self, instancia, /)
 | Compruebe si un objeto es una instancia.
 |  
 | __repr __ (yo, /)
 | Devuelve repr (self).
 |  
 | __setattr __ (yo, nombre, valor, /)
 | Implementar setattr (self, name, value).
 |  
 | __tamaño de __ (yo, /)
 | Devuelve el consumo de memoria del objeto de tipo.
 |  
 | __subclasscheck __ (self, subclass, /)
 | Comprueba si una clase es una subclase.
 |  
 | __subclasses __ (self, /)
 | Devuelve una lista de subclases inmediatas.
 |  
 | mro (yo, /)
 | Devuelve el orden de resolución del método de un tipo.
 |  
 | -------------------------------------------------- --------------------
 | Métodos de clase definidos aquí:
 |  
 | __preparar__(...)
 | __prepare __ () -> dictar
 | utilizado para crear el espacio de nombres para la declaración de clase
 |  
 | -------------------------------------------------- --------------------
 | Métodos estáticos definidos aquí:
 |  
 | __nuevo __ (* argumentos, ** kwargs)
 | Crea y devuelve un nuevo objeto. Consulte la ayuda (escriba) para obtener una firma precisa.
 |  
 | -------------------------------------------------- --------------------
 | Descriptores de datos definidos aquí:
 |  
 | __abstractmethods__
 |  
 | __dict__
 |  
 | __text_signature__
 |  
 | -------------------------------------------------- --------------------
 | Datos y otros atributos definidos aquí:
 |  
 | __base__ = <clase 'objeto'>
 | La clase base de la jerarquía de clases.
 |      
 | Cuando se llama, no acepta argumentos y devuelve un nuevo sin características
 | instancia que no tiene atributos de instancia y no se le puede dar ninguno.
 |  
 | __bases__ = (<clase 'objeto'>,)
 |  
 | __basicsize__ = 440
 |  
 | __dictoffset__ = 132
 |  
 | __flags__ = 2148291584
 |  
 | __itemsize__ = 20
 |  
 | __mro__ = (<clase 'tipo'>, <clase 'objeto'>)
 |  
 | __weakrefoffset__ = 184

Ayuda sobre la identificación de la función incorporada en los módulos incorporados:

id (obj, /)
    Devuelve la identidad de un objeto.
    
    Se garantiza que esto es único entre los objetos que existen simultáneamente.
    (CPython usa la dirección de memoria del objeto).

Ayuda en la función incorporada dir en módulos incorporados:

dir (...)
    dir ([objeto]) -> lista de cadenas
    
    Si se llama sin un argumento, devuelve los nombres en el ámbito actual.
    De lo contrario, devuelve una lista alfabética de nombres que comprenden (algunos de) los atributos
    del objeto dado, y de los atributos accesibles desde él.
    Si el objeto proporciona un método llamado __dir__, se utilizará; de otra manera
    se utiliza la lógica predeterminada dir () y devuelve:
      para un objeto de módulo: los atributos del módulo.
      para un objeto de clase: sus atributos, y recursivamente los atributos
        de sus bases.
      para cualquier otro objeto: sus atributos, los atributos de su clase y
        recursivamente los atributos de las clases base de su clase.

Usando pase

Es posible que haya visto algún código Python donde hay una función o clase definida, pero lo único que tiene es un pass¿Qué diablos es esto? En Python, la palabra clave pass se puede usar para indicar que no sucede nada. Se usa en una función, clase o bucle en el que solo desea eliminar el código. Pass se usa para agregar rápidamente cosas que se implementan. A continuación se muestra una clase Veggie () que no hace absolutamente nada.


Obtener / establecer atributos de objeto

El objeto de clase Python es interesante porque puede agregar atributos y valores dinámicamente a un objeto. Veamos cómo funciona esto.

El brócoli es verde

¡Interesante! Los atributos de color y nombre no están definidos de ninguna manera dentro de la clase, simplemente los crearemos usándolos.

Podemos establecer otro atributo usando el valor de otra variable si queremos. Esto se hace usando setattr () así.

Primavera

Para obtener el atributo por el valor de una variable, podemos usar getattr () .

Primavera

Estas dos funciones son útiles cuando recorre algunos valores donde son atributos a los que desea acceder desde un objeto. Veamos qué significa eso en el código. Considere este diccionario que tiene algunas claves y valores.

Digamos que quiero recorrer los elementos de este diccionario y agregarlos como atributos al objeto veggie. Con el siguiente código, recorremos el diccionario y cada clave se convierte en un atributo y cada valor se asigna a ese atributo en el objeto. Esto sería difícil de hacer sin la función setattr () .

La calabaza butternut es naranja

Podemos ir en la otra dirección usando getattr () .

naranja
Calabaza

Comprobación de subcadenas

Verificar la existencia de una cadena dentro de otra cadena es una de las cosas más comunes que hará en sus programas. Esto es fácil de hacer en Python usando innot in.

¡En la cuerda!

Esto distingue entre mayúsculas y minúsculas, como puede ver.

No en la cuerda ...

El operador not in funciona así:

Los huevos no están en la cuerda

Entrada segura

La mayoría de los tutoriales en Python le permitirán utilizar algún tipo de entrada para obtener datos del usuario. Estoy seguro de que ha visto un código similar a este.

contraseña en texto claro
El problema con esto es que su compañero de trabajo entrometido podría estar mirando por encima del hombro y acaba de compartir la contraseña que usa para la red de la empresa, Facebook, Twitter, su correo electrónico personal, Tik Tok y su perfil de citas. No está bien. ¡La solución es usar getpass () !

punta de Python use getpass

¡Ahora su contraseña está ofuscada y nadie, especialmente su compañero de trabajo entrometido, puede verla!


Utilice Pycharm

Tener un buen IDE o un entorno de desarrollo integrado te ayudará a escribir mejor Python. Pycharm es una de las herramientas más poderosas para escribir Python y lo ayudará con sugerencias de código, formateo de código, depuración, refactorización y mucho más. La versión profesional es una herramienta de pago, sin embargo, la edición comunitaria es gratuita y es casi tan poderosa.


Usar código de Visual Studio

Pycharm no es lo tuyo? No se preocupe, puede usar Visual Studio Code y hacer uso de las muchas extensiones que brindan una excelente compatibilidad con Python. Visual Studio Code es 100% gratuito y una gran herramienta para Python.


Usar Jupyter Notebook

Jupyter Notebook es otro gran entorno para mojarse los pies con Python. Puede usarlo para probar fragmentos simples de código Python o hacer presentaciones científicas usando algo como matplotlibSiga nuestra guía sobre cómo instalar Jupyter para obtener más información.


Verifique si una lista está vacía en Python

Puede comprobar si una lista está vacía de varias formas en Python. Aquí hay unos ejemplos.

Esa lista esta vacia

¡Lista vacía!

¡Lista vacía!

Ordenar un diccionario por valor

Para ordenar un diccionario por valor, puede usar una función lambda en Python. Tenga en cuenta que este enfoque deja intacto el diccionario original. Podemos asignar el resultado ordenado a una nueva variable e inspeccionarlo sin embargo.

{'the': 1, 'dictionary': 2, 'in': 3, 'so': 4, 'key': 5, 'fun': 6, 'random': 7}
{'aleatorio': 7, 'clave': 5, 'en': 3, 'el': 1, 'diccionario': 2, 'entonces': 4, 'diversión': 6}

Aplanar una lista de listas

Si tiene varias listas almacenadas en una variable, puede aplanarlas en una lista así.

[[1, 2, 'tres'], ['cuatro', 5, 6], [7, 'ocho', 9]]
[1, 2, 'tres', 'cuatro', 5, 6, 7, 'ocho', 9]

¿Qué es si __name__ == “__main__”: for?

Ves esta línea de código todo el tiempo en Python. Entonces ¿Qué es lo que hace? Bueno, aquí hay un archivo de Python de ejemplo que copia un archivo de texto a otro archivo de texto. Tenga en cuenta el uso de if __name__ == '__main__':

Siempre que el intérprete de Python lee un archivo fuente, establece algunas variables especiales como __name__, y luego ejecuta todo el código que se encuentra en el archivo. Cada módulo en Python tiene un atributo especial llamado __name__El valor del __name__ atributo se establece en '__main__' cuando el módulo se ejecuta como programa principal.
De lo contrario, el valor de __name__ se establece para contener el nombre del módulo.

Este comportamiento afecta la ejecución del código de los módulos en Python. Si ejecuta un archivo Python directamente, la variable __name__ se establece en __main__. Sin embargo, si importa un archivo de Python en lugar de ejecutarlo directamente, la variable __name__ de ese archivo se establece en el nombre del archivo. Este es el nombre de su módulo en ese momento. Ejecuta la función main () si el archivo no fue importado.


Invertir una cuerda

Este pequeño truco de Python toma una cuerda y la invierte perfectamente.

dlrow eht elur ot stnaw ydobyrevE

Hacer una cadena de una lista

La función join () en Python puede tomar una lista y hacer una cadena con los elementos como tal.

Bienvenido a tu vida

Imprimir la ruta de un módulo

Para imprimir la ruta de un módulo importado, simplemente pase el nombre del módulo a la función print ().

<módulo 'solicitudes' de 'C: \ python \ vrequests \ lib \ site-packages \ solicitudes \ __ init __. py'>

Uso de memoria de impresión de una variable

La función .getsizeof () generará el uso de memoria de una variable u objeto en particular. Tenga en cuenta que la cadena pequeña usa menos memoria y la cadena más grande usa más memoria en este ejemplo.

40
170

Asignación de variable encadenada

Puede crear varias variables que hagan referencia al mismo objeto mediante una asignación encadenada en Python.

Python Python Python Python

Las comparaciones se pueden encadenar

Puede encadenar comparaciones para crear una sola expresión de Python.

Comparación encadenada en acción

Puede hacer esto con más de una variable a la vez, pero las cosas comienzan a ser un poco confusas, así que tenga cuidado con esta.

Comparación encadenada en acción

Obtener un valor de un diccionario

Este truco de Python trata de obtener un valor de un diccionario. Si tenemos un diccionario de precios y solo queremos el precio de un objeto, pero no estamos seguros de si ese objeto está en el diccionario, ¿cómo lo contabilizamos? Debe verificar antes de usar ese valor de esa manera.

Una mejor forma de hacer esto es usar el método .get () .