Começando a Programar em Python Para Leigos a Folh la o de C Python é uma linguagem de programação incrível e flexível que tem um significante apoio de terceiros e é usada em uma farta área de aplicações. As aplicações que você construir rodarão em qualquer plataforma que dê suporte ao Python sem qualquer modificação desde que você crie uma solução usando somente o Python. É claro que você gostaria de garantir que as suas aplicações tivessem a melhor chance possível de funcionar exatamente como você esperaria onde quer que elas rodem e é por isso que você precisa destas informações nesta Folha de Cola. 8 Erros de Programação Comuns no Python Todo desenvolvedor no planeta comete algum erro. Entretanto, conhecer alguns erros comuns poderá economizar seu tempo e esforço posteriormente. A lista seguinte apresenta os erros mais comuns que os desenvolvedores vivenciam ao trabalhar com o Python. • Usando a indentação incorreta: Muitas funcionalidades do Python baseiam-se em indentação. Por exemplo, quando você cria uma nova classe, tudo naquela classe é indentado em baixo da declaração da classe. O mesmo ocorre para a decisão, o loop e outras declarações de estruturas. Se você achar que seu código está executando uma tarefa quando não deveria, comece a rever a indentação que você está usando. • Baseando-se no operador de atribuição, em vez do operador de igualdade: Ao executar uma comparação entre dois objetos ou valores, você somente deve usar o operador de igualdade (==), não o operador de atribuição (=). O operador de atribuição coloca um objeto ou um valor em uma variável e não compara com nada. • Colocando a função chamadora na ordem errada ao criar declarações complexas: o Python sempre executa funções da esquerda para a direita. Então, a declaração MyString.strip().center(21, “*”), produz um resultado diferente do que MyString.center(21, “*”). strip(). Quando você encontrar uma situação em que a saída da série de funções concatenadas é diferente daquela que estava esperando, você precisa verificar a ordem das funções para garantir que cada função esteja no lugar certo. • Pontuação posicionada incorretamente: É possível colocar a pontuação no local errado e criar um resultado completamente diferente. Lembre-se de que você deve incluir dois pontos no final de cada declaração de estrutura. Além disso, a colocação dos parênteses é crítica. Por exemplo, (1 + 2) * (3 + 4), 1 + ((2 * 3) + 4), e 1 + (2 * (3 + 4)) produzem resultados diferentes. Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos a Folh la o de C • Usando o operador lógico incorreto: A maioria dos operadores não apresenta problemas, mas os operadores lógicos podem apresentar. Lembre-se de usar and para determinar quando ambos os operandos devem ser True e or quando um dos operandos pode ser True. • Criando erros, com incremento de um, em loops: Lembre-se de que um loop não conta o último número que você especificou em uma faixa de números. Então, se você especificar a faixa [1:11], na verdade, você obtém saída com valores entre 1 e 10. • Usando a capitalização errada: Python distingue entre caixas alta e baixa, então MyVar é diferente de myvar e de MYVAR. Sempre verifique a capitalização quando você perceber que não consegue acessar um valor que você esperava acessar. • Cometendo um erro de ortografia: Mesmo os desenvolvedores experientes sofrem com erros de ortografia algumas vezes. Garantir que você use uma mesma abordagem para nomear as variáveis, classes e funções ajuda bastante. No entanto, mesmo um esquema de nomenclatura bem consistente nem sempre vai prevenir que você digite MyVer quando você gostaria de ter digitado MyVar. Operadores utilizados regularmente com o Python É importante saber quais operadores o Python suporta, e lembrar de todos eles não é sempre fácil. A tabela seguinte fornece um rápido resumo dos operadores regularmente usados com o Python. Operador Tipo Descrição Exemplo − Aritmético Subtrai o operando da direita do operando da esquerda. 5−2=3 − Unário Nega o valor original, de modo que positivo se torna negativo e vice-versa. −(−4) resulta em 4 enquanto −4 resulta em −4 −= Atribuição != Relacional Subtrai o valor encontrado no operando da MyVar -= 2 resulta em direita do valor encontrado no operando da MyVar contendo 3 esquerda e coloca o resultado no operando da esquerda. Determina se dois valores não são iguais. 1 != 2 é verdadeiro Algumas versões mais antigas do Python permitiriam que você usasse o operador <> no lugar do operador !=. Usar o operador <> resulta em um erro nas versões atuais do Python. Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos % Aritmético %= Atribuição & (E) Bitwise * Aritmético ** Aritmético **= Atribuição *= Atribuição / Aritmético // Aritmético //= Atribuição Divide o operando da esquerda pelo operando da direita e retorna o resto. Divide o valor encontrado no operando da esquerda pelo valor encontrado no operando da direita e coloca o resto no operando da esquerda. Determina se dois bits individuais dentro de dois operadores são verdadeiros e definem o bit resultante para verdadeiro quando eles são. Multiplica o operando da direita pelo operando da esquerda. Calcula o valor exponencial do operando da direita pelo operando da esquerda. Determina o valor exponencial encontrado no operando da esquerda quando elevado à potência do valor encontrado no operando da direita e coloca o resultado no operando da esquerda. Multiplica o valor encontrado no operando da direita pelo valor encontrado no operando da esquerda e coloca o resultado no operando da esquerda. Divide o operando da esquerda pelo operando da direita. Executa divisão inteira, na qual o operando da esquerda é dividido pelo operando da direita e apenas o número inteiro é devolvido (também chamado de floor division). Divide o valor encontrado no operando da esquerda pelo valor encontrado no operando da direita e coloca o resultado inteiro (número inteiro) no operando da esquerda. a Folh la o de C 5%2=1 MyVar %= 2 resulta em MyVar contendo 1 0b1100 & 0b0110 = 0b0100 5 * 2 = 10 5 ** 2 = 25 MyVar ** 2 resulta em MyVar contendo 25 MyVar *= 2 resulta em MyVar contendo 10 5 / 2 = 2,5 5 // 2 = 2 MyVar //= 2 resulta em MyVar contendo 2 Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos /= Atribuição ^ (Ou exclusivo) Bitwise | (Ou) Bitwise ~ Unário ~ Bitwise + + Aritmético Unário += Atribuição < Relacional << Bitwise (deslocamento para a esquerda) <= Relacional Divide o valor encontrado no operando da esquerda pelo valor encontrado no operando da direita e coloca o resultado no operando da esquerda. Determina se apenas um dos bits individuais dentro de dois operadores são verdadeiros e definem o bit resultante para verdadeiro quando eles são. Quando ambos os bits são verdadeiros, ou ambos os bits são falsos, o resultado é falso. Determina se um dos bits individuais dentro de dois operadores são verdadeiros e define o bit resultante para verdadeiro quando eles são. Inverte os bits de um número de modo que todos os bits 0 se tornam bits 1 e vice-versa. Calcula o valor do complemento de um número. Adiciona dois valores. Fornecido somente para que fique completo. Este operador retorna o mesmo valor que você fornecer como entrada. Adiciona o valor encontrado no operando da direita ao valor encontrado no operando da esquerda e coloca o resultado no operando da esquerda. Verifica se o valor do operando da esquerda é menor que o valor do operando da direita. Alterna os bits do operando da esquerda pelo valor do operando da direita. Todos os novos bits são definidos para 0 e todos os bits que fluem para fora da extremidade são perdidos. Verifica se o valor operando da esquerda é menor ou igual ao valor do operando da direita. a Folh la o de C MyVar /= 2 resulta em MyVar contendo 2,5 0b1100 ^ 0b0110 = 0b1010 0b1100 | 0b0110 = 0b1110 ~4 resulta em um valor de −5 ~0b1100 = −0b1101 ~0b0110 = −0b0111 5+2=7 +4 resulta em um valor de 4 MyVar += 2 resulta em MyVar contendo 7 1 < 2 é True 0b00110011 << 2 = 0b11001100 1 <= 2 é True Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos = Atribuição == Relacional > Relacional >= Relacional >> (deslocamento para a direita) Bitwise and Lógico Atribui o valor encontrado no operando da direita ao operando da esquerda. Determina se os dois valores são iguais. Observe que o operador relacional usa dois sinais de igual. Um erro que muitos desenvolvedores cometem é usar apenas um sinal de igual, o que resulta em um valor que está sendo atribuído a outro. Verifica se o valor do operando da esquerda é maior que o valor do operando da direita. Verifica se o valor do operando da esquerda é maior ou igual ao valor do operando da direita. Desloca os bits no operando da esquerda para a direita pelo valor do operando da direita. Todos os novos bits são definidos para 0 e todos os bits que fluem para fora da extremidade são perdidos. Determina se os dois operandos são verdadeiros. a Folh la o de C MyVar = 2 resulta em MyVar contendo 2 1 == 2 é False 1 > 2 é False 1 >= 2 é False 0b00110011 >> 2 = 0b00001100 True and True is True True and False is False False and True is False in Membro is Identidade is not Identidade Determina se o valor do operando da esquerda aparece na sequência encontrada no operando da direita. Avalia em verdadeiro quando o tipo de valor ou expressão no operando da direita aponta, ao mesmo tempo, ao operando da esquerda. Avalia em falso quando o tipo de valor ou expressão no operando da direita aponta para um tipo diferente do que o valor ou expressão no operando da esquerda. False and False is False “Hello” in “Hello Goodbye” is True type(2) is int is True type(2) is not int is False Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos not Lógico not in Membro or Lógico Nega o valor verdadeiro de um único operando. Um valor verdadeiro se torna falso, e um valor falso se torna verdadeiro. Determina se o valor do operando da esquerda está faltando na sequência encontrada no operando da direita. Determina quando um dos dois operandos são verdadeiros. a Folh la o de C not True is False not False is True “Hello”, not in “Hello Goodbye” is False True or True is True True or False is True False or True is True False or False is False Precedência do Operador Python Quando você cria simples declarações que contenham apenas um operador, a sequência de determinação da saída daquele operador também é simples. No entanto, quando você começa a trabalhar com múltiplos operadores, é necessário determinar qual operador vai avaliar primeiro. Por exemplo, é importante saber se 1 + 2 * 3 dá como resultado 7 (em que a multiplicação é feita primeiro) ou 9 (quando a adição é feita em primeiro lugar). Uma ordem de precedência de operador diz que a resposta correta é 7, a menos que você use parênteses para substituir a ordem padrão. Neste caso, (1 + 2) * 3 vai ter como resultado 9, porque os parênteses têm uma ordem de precedência maior do que a multiplicação. A tabela a seguir define a ordem de precedência de operadores para o Python. Operador () ** ~+* /% // Descrição Parênteses são usados para agrupar expressões e para substituir a precedência padrão para que você possa forçar uma operação de baixa precedência (como adição), a ter precedência sobre uma operação de maior precedência (como multiplicação). A exponenciação eleva o valor do operando da esquerda à potência do operando da direita. Os operadores unários interagem com uma única variável ou expressão. Multiplicação, divisão, módulo e floor division. Para Leigos: A série de livros para iniciantes que mais vende no mundo. Começando a Programar em Python Para Leigos +>> << Adição e subtração. Alteração de bit direito e esquerdo. & ^| <= < >> = == != = %= /= //= -= += *= **= is is not in not in not or and Bitwise AND Bitwise exclusive OR e standard OR. Operadores de comparação. Operadores de igualdade. Operadores de atribuição. a Folh la o de C Operadores de identidade. Operadores de membro. Operadores lógicos. Para Leigos: A série de livros para iniciantes que mais vende no mundo.