Tag: Python


  • Otimização de performance é uma preocupação comum para quem está começando em programação, e muitas vezes mesmo programadores experientes tem dúvidas sobre esse assunto, o que é normal uma vez que o assunto é mesmo complexo. Não vou explicar nesse post tudo o que você precisa saber sobre performance, mas pretendo dizer o mais importante:…

  • Às vezes a gente tem a tendência de complicar as coisas. Semana passada, um amigo me perguntou se há alguma forma de calcular a média de uma lista em Python. Assim como há funções para calcular a soma dos elementos ou o maior elemento, ele esperava que houvesse uma para calcular a média. Afinal, calcular…

  • Resposta que eu dei à pergunta: Quais são alguns dos recursos ocultos do Python? no Quora. 1. Atribuição múltipla (com tuple unpacking) a, b, c = 1, 2, 3 2. Com isso dá para trocar o valor de variáveis a, b = b, a 3. Encadeamento de comparadores x = 3 print(1 < x < 5)…

  • Resposta que eu dei à pergunta: É possível escrever um script executável em Python? no Quora. Sim! No Windows, basta associar arquivos .py ao Python. Acredito que o instalador do Python para windows já faz isso. Feito isso, duplo clique no arquivo .py vai executá-lo. No Linux, Mac, FreeBSD e assemelhados, basta colocar, na primeira…

  • Não seja escravo das suas ferramentas

    Padrões de código não são os dez mandamentos. Você pode quebrar as regras, se tiver um bom motivo.

  • É sobre manter as coisas simples. Às vezes, menos código é mais simples. Às vezes não.

  • Quanto mais óbvio, melhor

    Padrões e convenções de código são uma excelente ideia. Livram do esforço de pensar no que deveria ser óbvio, para que você se concentre no problema real.

  • Fiz para um amigo um script de conversão de charset simplezinho e, como pode ser útil para mais alguém, resolvi abrir o código: Era mais fácil fazer com shell script, é verdade, mas eu precisava que fosse multiplataforma.

  • Módulo Python: requests

    Esqueça urllib e httplib: Requests resolve do jeito certo. Você pode instalar via pip com: pip install requests Depois, veja como é fácil: >>> import requests >>> r=requests.get(‘http://visie.com.br’) >>> for k,v in r.headers.iteritems():print k,’=>’,v … content-length => 7669 content-encoding => gzip accept-ranges => bytes expires => Mon, 20 Jan 2014 13:18:30 GMT vary => Accept-Encoding,Cookie server…

  • Há um tempo eu li “The Pragmatic Programmer“, uma espécie de livro de auto-ajuda para programadores. Não é um livro técnico, não vai te ensinar técnicas ou tecnologias, mas fala de um jeito de pensar e traz uma coleção de conselhos daquele tipo que parece óbvio mas ninguém nunca faz. Um desses conselhos era aprender…

  • O módulo webbrowser permite abrir uma URL no navegador do usuário. Só isso, simples assim. Por exemplo: import webbrowser webbrowser.open(“http://visie.com.br”) E o site da Visie será aberto no navegador do usuário. Muito útil se você está fazendo um programa para desktop ou mesmo um script para o terminal. No caso de scripts para terminal, se…

  • Python from Humans

    O Arthur me indicou e eu quase chorei ao ver:  

  • https://github.com/elcio/visualdal Críticas, sugestões e, claro, pull requests são muito bem-vindos!

  • Veja: >>> class Class: … def um(self): … return 1 … >>> c=Class() >>> c.um() 1 >>> def dois(self): … return 2 … >>> Class.dois=dois >>> c.dois() 2 >>> Class.tres=lambda self:3 >>> c.tres() 3 >>> Class.um=lambda self:’Um modificado.’ >>> c.um() ‘Um modificado.’ As classes em Python são completamente dinâmicas. Você pode acrescentar métodos quando quiser…

  • Python é uma linguagem open-source, com uma extensa biblioteca. E os módulos da biblioteca são escritos em Python. Alguns módulos, como pickle e StringIO, tem versões em C mais rápidas (cPickle e cStringIO) mas as versões em Python são mantidas para que você possa ler os fontes. Veja como descobrir onde estão os fontes de…

  • Há muitas situações em que uma função faz cálculos e operações para obter valores e, ao final, deve montar uma string com esses valores. Nesta situação, muita gente monta um dicionário com os valores e usa string formatting para gerar a string a ser retornada. Por exemplo: # -*- encoding: utf-8 -*- import string,random template=”’Sugestões…

  • Pequena dica de Python: rot-13

    A dica de hoje não é muito útil. Pelo menos eu nunca usei para nada realmente sério. Mas é bem divertida: >>> t=’All your base are belong to us.’ >>> t.encode(‘rot-13’) ‘Nyy lbhe onfr ner orybat gb hf.’ Rot-13 é um encoding comum do Python. Você pode escrever código em rot-13 também, se indicar o…

  • Essa é bem legal. Temos três listas: >>> a=[1,2,3] >>> b=[4,5,6] >>> c=[‘a’,’b’,’c’] Veja: >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’), (3, 6, ‘c’)] Simples e útil, não? E se as listas tiverem tamanhos diferentes? >>> c=[‘a’,’b’] >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’)] O resultado será truncado para o tamanho da menor…

  • Python tem duas funções muito interessantes: any e all. A função any recebe uma lista (ou outro objeto interável) e retorna True se algum dos elementos for avaliado como True. Já all só retorna True se todos os elementos forem avaliados como True. Veja: >>> everybody=[1,2,3,4] >>> anybody=[0,1,0,2] >>> nobody=[0,0,0,0] >>> any(everybody) True >>> any(nobody)…

  • Módulo Python: gzip

    O módulo gzip nos permite ler e escrever em arquivos .gz sem nenhum trabalho. Veja: >>> import gzip >>> f=gzip.open(‘teste.txt.gz’,’w’) >>> f.write(‘Hello!\n’) 7 >>> f.close() >>> $ gunzip teste.txt.gz $ cat teste.txt Hello! $ gzip teste.txt $ python Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type “help”, “copyright”, “credits” or “license”…