Eu já andei escrevendo algumas coisas sobre python aqui no blog, já faz um tempinho, tudo bem, mas ainda são uma boa fonte de consulta para quem não sabe nada a respeito e quer começar a aprender. Depois que parei de escrever sobre python no blog parei também de estudá-lo, infelizmente. Há alguns dias encontrei meu livro Learning Python e resolvi ler mais uma vez pra refrescar a memória, já que aqui no trabalho tem alguns fanáticos por Ruby (não que eu não goste de Ruby, eu gosto também) que detestam python.
Logo nos primeiros quinze capítulos do livro encontrei e relembrei da famosa instrução pass do python, não sei como pude me esquecer de uma instrução tão importante. Basicamente, para quem não conhece, o pass no python está para as instruções assim como o None está para as atribuições, ou seja, ela simplesmente não faz nada, é uma função null/None/nil, como preferir e existe apenas para fins de utilização onde a sintaxe obrigue a existir uma instrução, como num while infinito, por exemplo.
Voltando aos pontos comuns de erros:
- Dois pontos
Em instruções compostas (if, while, for, etc) não use mais os parênteses (brackets), em python você deve usar dois pontos – : - Endentação e espaços em branco
Siga um modelo de tabulação consistente e único no seu script. Se você começou usando dois espaços, ou tabulação de 4 espaços ou seja o que for, mantenha-a. O interpretador, geralmente, não saberá o que fazer se você misturar vários de tipos de tabulação e espaçamento. - Comece sempre na coluna 1
Certifique-se sempre de começar a primeira linha do seu código na primeira coluna disponível, principalmente se estiver usando o prompt interativo. É muito comum que um espaço ali tire o seu sono. - Atribuições com tipos mutáveis e imutáveis
Estude e tenha certeza de que realmente aprendeu o comportamento dos tipos de dados em python – listas, dicionários, strings e números. Não pense que se você sabe a linguagem XPTO que os concentois serão os mesmos, principalmente, não pense que isso será uma perda de tempo. É muito comum, por exemplo, fazer uma atribuição como: lista = lista.append(alguma_coisa). Com esta atribuição a única operação será atribuir None a lista e com isso perder completamente a referência para a sua lista de verdade.
Esses são os erros que sempre me incomodam e são os que eu sempre acabo fazendo, certamente que existem outros detalhes pontuais que muita gente deve passar ou ter passado. De qualquer forma, em tempos de desenvolvedores poliglotas, estes tipos de detalhes aparecerão e se tornarão cada vez mais importantes.