Dicas, truques e hacks de Python - Parte 1 -
PorDavid Isaacson em	23/04/2012
A versão original enviada pelo autor David Isaacson é em inglês, traduzida pela redação iMasters. A versão em inglês pode ser lida em http://www.siafoo.net/article/52
Tentei fazer com que todos os trechos do código se executassem sozinhos. Se você quiser, cole-os na sua Python Shell e os teste. Você vai notar muitos exemplos contendo 'true example' e 'false example', com um comentário. Sinta-se à vontade para trocar o comentário e ver o que acontece.
Uma rápida distinção entre true vs True neste artigo: quando eu disser que um objeto é 'true', quero dizer que o objeto, se convertido a um boolean em uma instrução if ou em qualquer outro lugar, seria convertido a True, e não a False. Isso não significa que o objeto é necessariamente idêntico ou equivalente a True. Da mesma maneira, se eu disser que um objeto é 'false', quero dizer que o objeto seria convertido a False, não que ele seja necessariamente idêntico ou equivalente a False.
1 – Truques rápidos
1.1 – Quatro tipos de quotes
Vamos começar com algo rápido que você provavelmente já conhece. Se você está vindo de uma linguagem diferente, provavelmente está acostumado a usar quotes únicos para uma coisa, e quotes duplos para outra. O Phyton te permite usar os dois, apesar de eles não serem intercambiáveis (se você começar com um, você tem que terminar com o mesmo). O Phyton também tem mais dois tipos de quotes. Um quote triplo, "', é criado ao digitar três quotes únicos. Um quote duplo-triplo, """, é criado ao se digitar três quotes duplos. Portanto, você pode ter várias camadas de quoting antes de começar a se preocupar em deixar seus quotes escaparem. Por exemplo, isto é valido no Python:
1.2 – A verdade de vários objetos
Por exemplo, as expressões a seguir são equivalentes. Aqui, 'my_object' é um string, mas poderia facilmente ser outro Python type (com as devidas modificações para o teste de igualdade).
1.3 – Checando se uma string contém uma substring
Você provavelmente sabe que pode testar se uma lista, tupla, ou dicionário contém um item ao testar a expressão 'item in list' ou 'item not in list'. Eu nunca imaginei que isso funcionaria para strings também. Eu sempre escrevia o código assim:
Esse é um código feio. É completamente equivalente a fazer 'if substring in string':
1.4 – Imprimindo uma lista de forma bonita
Listas não imprimem bem. É claro que fica óbvio o que é a lista, mas um usuário razoável não quer ver colchetes em volta de tudo. Existe uma solução trivial para isso, usando o método 'join' na sequência.
O método 'join' transforma a lista em string ao moldar cada item dentro da string, e então os conectando com a string em que o join foi chamado. Inclusive é inteligente não colocar um depois do último elemento.
Uma outra vantagem é que isso é muito rápido, executado em tempo linear. Nunca crie uma string utilizando '+' itens juntos para gerar um for loop: não é somente feio como também é bem mais demorado.
1.5 – Integer vs. Float Division
Existem duas maneiras de consertar isso. A primeira e mais simples delas é simplesmente transformar um dos integers em um float. Se os valores são estáticos, você pode apenas adicionar um .0 a ele para o transformar em float. 5.0/2 devolve 2.5. Alternativamente, você pode apenas moldar um dos valores: float(5) / 2 devolve 2.5.
1.6 – Funções lambda
Sem o lambda, você teria que definir a função separadamente. Você apenas salvou uma linha de código e um nome variável (para a função).
variável(eis) Uma lista, variável ou variáveis, separadas por uma vírgula, que uma função pode receber. Você não pode usar palavras-chave, e você não quer que elas estejam em parênteses (um erro que eu cometi por alguns meses e me perguntava por que meus lambdas nunca funcionavam).
(expressão) Uma expressão inline python. O escopo inclui escopos locais e variáveis. Isso é o que a função retorna.
21 de maio de 2011 às 23:42
26 de junho de 2011 às 1:16
Que incrível isto! ótimo post
7 de julho de 2011 às 21:40
21 de setembro de 2014 às 22:30
Conhecia todas, exceto a das substrings, que foi uma dica muito boa! Valeu por compartilhar!
Todo codigo que coloco no da erro veja isso
>>> print """I wish that I'd never heard him say, "'She said, "He said, 'Give me five dollars"""
SyntaxError: Missing parentheses in call to 'print' uso o windows 8.1 pro
4 Artigos	0 Curtidas	12 Shares
Faz parte do time de desenvolvimento do Siafoo, trabalhando principalmente na interface do usuário do site. É também geólogo e físico.