5 Dicas de Python que você DEVE saber para escrever um código melhor e mais curto.

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

Introdução

Você sempre quis escrever um código Python melhor e mais curto? Como replicar casos de switch tradicionais em Python? Eu tenho você coberto. Neste artigo, discutiremos 5 adendo / Truques do Python para escrever códigos melhores e mais curtos. Então vamos começar!

Observação: Mais curto nem sempre significa melhor. Seu código deve ser Fácil de ler e compreender.

Vamos nos concentrar em escrever mais curtos e Mais legível código neste artigo. Especificamente, nós aprenderemos:

  • Como tornar grandes números mais legíveis no código e na saída (10000000 uma 10,000,000)?
  • Como obter uma senha como entrada de um usuário sem realmente exibi-la?
  • Como usar dicionários para implementar casos de troca?
  • Como economizar memória usando geradores?

Tabela de conteúdo

  1. Condicionais ternários
  2. Trabalhe com grandes números
  3. Insira informações secretas
  4. Use o dicionário para replicar casos de troca
  5. Use geradores para economizar memória
  6. Dica bônus
  7. Resumo
  8. Notas finais

Condicionais ternários

Tomemos una situación en la que está asignando un valor a la variável en función de alguna condición. Você provavelmente escreveria algo como o seguinte:

condição = Falsa
se condição:
    x = 1
outro:
    x = 0
imprimir(x)

O código acima funciona corretamente, mas você acha que é pitônico? Não é. Então, para tornar seu código pitônico, você pode encontrar algo como o seguinte:

condição = Falsa
x = 1 se a condição mais 0
imprimir(x)

x = 1 se a outra condição 0 está em inglês simples e autoexplicativo. Portanto, torna nosso código mais curto e fácil de entender.

Obteríamos o mesmo resultado de ambas as maneiras.

Vamos passar para outro truque.

Trabalhe com grandes números

Agora vamos falar sobre meu truque favorito. Você já trabalhou com grandes números? 1000000000 o 1.000.000.000; O que é mais legível? O segundo, verdade? Mas se tentarmos fazer isso em Python como num1 = 1,000,000,000, nós obteríamos um erro.

Mas existe outro método para fazer o mesmo. Podemos usar _ para separar os dígitos que não afetam nosso programa. E podemos usar :, dentro da string f para separar os dígitos de saída com uma vírgula. O código a seguir demonstra o mesmo.

num1 = 1_000_000_000     # 1 bilhão
num2 = 10_000_000        # 10 milhão
total = num1 + num2
imprimir(f'{total:,}')      # Para separar os dígitos de saída com vírgula
# Saída
# 1,010,000,000

Não é incrível? De fato, isto é.

Insira informações secretas

Digamos que você esteja usando nome de usuário e senha como entrada do usuário. Eu certamente escolheria a seguinte abordagem.

uname = input('Enter Username: ')
pwd = entrada('Enter password: ')
imprimir('Logging In...')

Produção:

99360secret-1-2083180

Imagem do Autor

Mas qualquer um pode ver essa senha e isso viola a segurança. Então, para torná-lo mais seguro, estaríamos usando o Obter passagem módulo.

from getpass import getpass
uname = input('Enter Username: ')
pwd = getpass('Enter password: ')
imprimir('Logging In...')

Produção:

74888secret-2-5784553

Imagem do Autor

Você notou a diferença? OK, isso parece ótimo. Vamos passar para outro truque.

Use o dicionário para replicar casos de troca

A maioria de nós aprende a linguagem C como nossa primeira linguagem de programação. Eu descobri que as caixas de comutação são o conceito mais simples, mas o mais importante na linguagem C. Esse foi o primeiro conceito que aprendi em programação que tem algumas aplicações do mundo real. Podemos pensar sobre sua aplicação nas ligações do Atendimento ao Cliente.

Muitas vezes, Programadores iniciantes em Python têm dúvidas sobre a aplicação de casos de switch usando Python. Podemos usar o dicionário Python para fazer isso, no qual definimos o nome da função como uma chave e a expressão da função como um valor. O programa a seguir demonstra o mesmo.

calc = {
    'add': lambda x, e: x + e,
    'subtract': lambda x, e: x - e,
    'mul': lambda x, e: x * e,
    'div': lambda x, e: x / e 
}
# Maneira inteligente de chamar uma função que é definida em um dicionário.
imprimir(calc['add'](5, 4))
imprimir(calc['subtract'](5, 2))
imprimir(calc['mul'](5, 4))
imprimir(calc['div'](10, 2))

Produção:

75697dicionário-7961332

Imagem do Autor

Use geradores para economizar memória

Digamos que temos uma lista muito grande. Então, aqui temos 10,000 elementos na lista e queremos calcular o quadrado de cada elemento. Podemos fazer isso com a lista de compreensões com o código que se parece com o seguinte.

import sys
lista_de_quadrados = [i * i para i no intervalo(10_000)]
# Para imprimir o tamanho de uma variável
imprimir(sys.getsizeof(square_list, "bytes"))
# Saída
# 87632

Então, este é um exemplo perfeito onde podemos usar geradores. Semelhante a listas de compreensão, podemos usar entendimentos de gerador onde temos parênteses em vez de colchetes. Um gerador calcula nossos elementos preguiçosamente. Portanto, produz apenas um item de cada vez e apenas quando solicitado. Você pode ler mais sobre geradores aqui. O programa a seguir calcula o quadrado de cada número até 10000 usando entendimentos de gerador.

square_gen = (i * i para i no intervalo(10_000))
# Para imprimir o tamanho de uma variável
imprimir(sys.getsizeof(square_gen, "bytes"))
# Saída
# 128

Essa é uma diferença notável no uso de memória.. Agora, tente obter os números maiores sozinho. Eu veria uma grande diferença!

Dica bônus

Use operador interativo “_”

Vamos discutir nossa última dica. É um recurso útil que muitos de nós não conhecemos.. Sempre que testamos uma expressão ou chamamos uma função, o resultado é enviado para um nome temporário, _ (um sublinhado). Então, vamos provar isso.

2 + 3
# Saída
# 5

Agora, execute o seguinte código.

imprimir(_)
# Saída
# 5

Surpreso com isso? Você pode encontrar todos os truques discutidos em um artigo no meu Notebook Python no Github.

Resumo

Isso conclui a discussão de hoje.. Neste artigo, nós aprendemos:

  • Como tornar grandes números mais legíveis no código e na saída (10000000 uma 10,000,000)?
  • Como obter uma senha como entrada de um usuário sem realmente exibi-la?
  • Como usar dicionários para implementar casos de troca?
  • Como economizar memória usando geradores?

Notas finais

Obrigado por ler este artigo!

Espero que tenha gostado de ler este artigo e vale a pena dedicar sua 10 minutos.

Perdi algo importante ou quero compartilhar seus pensamentos? Comente abaixo e eu te responderei.

Sobre o autor

Eu sou Harsh Dhamecha, um aspirante a cientista de dados. Sou estudante do último ano do curso de Ciência da Computação com especialização em Inteligência Artificial. Um aluno motivado que está ansioso para ajudar a comunidade de ciência de dados o máximo que puder. Acredito que o conhecimento é a moeda do século 21 e adoro compartilhá-lo.

Se você tiver alguma dúvida, pode diretamente O email eu ou conecte-se comigo no LinkedIn o Twitter para colaboração do projeto.

Se você achar este artigo instruído e envolvente, você também pode ler meus outros artigos.

Continuar lendo! Um agradecimento especial a você 🙌

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker