Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 13564|Resposta: 1

[Comunicação] 17 erros comuns em tempo de execução em Python para iniciantes

[Copiar link]
Publicado em 05/12/2015 13:08:56 | | |

Ao aprender Python, pode ser um pouco complicado entender o significado das mensagens de erro do Python. Aqui está uma lista de alguns erros comuns em tempo de execução que causam seu programa travar.


1) Esqueci de adicionar :( no final de se, elif, else, por, while, class, definitivamente def.

        O erro ocorrerá em códigos assim:

if spam == 42
    print("Olá!")

2) Use = em vez de == (resultando em "SyntaxError: sintaxe inválida")

        = é o operador de atribuição e == é igual à operação de comparação.O erro ocorre em códigos assim:

se spam = 42:
    print("Olá!")

3) Uso incorreto da indentação. (Resultando em "IndentationError:inseguro indentado", "IndentationError:undentent não corresponde a nenhum nível externo de indentação" e "IndentationError:esperado um bloco indentado")

        Lembre-se de que a indentação só é usada após instruções terminadas com: após o que o formato da indentação deve ser revertido para o formato anterior de indentação. O erro ocorre em códigos assim:

print("Olá!")
    print ("Oi!")
Ou:
if spam == 42:
    print("Olá!")
  print ("Oi!")
Ou:
if spam == 42:
print("Olá!")

4) Esquecer de chamar len() na instrução for loop (resultando em "TypeError: o objeto "list" não pode ser interpretado como um inteiro")

Normalmente, você quer iterar sobre uma lista ou elemento de string através de um índice, o que requer chamar a função range(). Lembre-se de devolver o valor do len em vez de devolver esta lista.

        O erro ocorre em códigos assim:

spam = ["gato", "cachorro", "rato"]
Para I no alcance (spam):
    Imprimir (spam)

5) Tente modificar o valor da string (resultando em "TypeError: o objeto "str" não suporta atribuição de items")

        string é um tipo de dado imutável, e o erro ocorre em códigos como este:

spam = "Eu tenho um gato de estimação."
spam[13] = "r"
Imprimir (spam)

E você realmente quer fazer isso:

spam = "Eu tenho um gato de estimação."
spam = spam[:13] + "r" + spam[14:]
Imprimir (spam)

6) Tentar concatenar valores que não são string com strings (resultando em "TypeError: Con"t Can"t convert "int" object to str implicitamente")

        O erro ocorre em códigos assim:

numEggs = 12
print("Eu tenho " + numOvos + " ovos.")

E você realmente quer fazer isso:

numEggs = 12
print("Eu tenho " + str(numOvos) + " ovos.")
Ou:
numEggs = 12
print("Eu tenho %s ovos." % (numEggs))

7) Esquecer de colocar aspas no início e no fim da string (resultando em "SyntaxError: EOL ao escanear a string literal")

        O erro ocorre em códigos assim:

imprimir(Olá!")
Ou:
print("Olá!)
Ou:
meuNome = "Al"
print ("Meu nome é " + meuNome + . Como vai?")

8) Erros ortográficos de nomes de variáveis ou funções (resultando em "NameError: nome "fooba" não está definido")

        O erro ocorre em códigos assim:

foobar = "Al"
print ("Meu nome é " + fooba)
Ou:
spam = ruond(4.2)
Ou:
spam = Rodada(4.2)

9) Erros ortográficos nos nomes dos métodos (resultando em "AttributeError: "str" object without attribut "lowerr")

        O erro ocorre em códigos assim:

spam = "ISSO ESTÁ EM MINÚSCULA."
spam = spam.lowerr()

10) Referências excedem o índice máximo de lista (resultando em "IndexError: índice de lista fora de intervalo")

        O erro ocorre em códigos assim:

spam = ["gato", "cachorro", "rato"]
imprimir(spam[6])

11) Usar um valor de chave de dicionário que não existe (resultando em "KeyError: 'spam'")

        O erro ocorre em códigos assim:

spam = {"gato": "Zophie", "cachorro": "Basil", "rato": "Bigodes"}
print ("O nome da minha zebra de estimação é " + spam["zebra"])

12) Tentar usar a palavra-chave Python como nome de variável (resultando em "SyntaxError: sintaxe inválida")

        A chave Python não pode ser usada como nome de variável, o erro ocorre em códigos como este:

Classe = "Álgebra"

As palavras-chave de Python3 são: and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, Nenhum, nãolocal, não, ou, passar, aumentar, retornar, Verdade, tente, enquanto, com, ceda


13) Usar operadores de valor agregado em uma nova variável definida (resultando em "NameError: nome "foobar" não está definido")

        Não use 0 ou nulo como valores iniciais ao declarar variáveis, de modo que um spam de frase += 1 usando o operador auto-incrementante seja igual a spam = spam + 1, o que significa que spam precisa especificar um valor inicial válido.

        O erro ocorre em códigos assim:

spam = 0
spam += 42
ovos += 42

14) Use variáveis locais em funções antes de definir variáveis locais (neste caso, existe uma variável global com o mesmo nome da variável local) (resultando em "UnboundLocalError: variável local "foobar" referenciada antes da atribuição")

        É complicado usar uma variável local em uma função com o mesmo nome de uma variável global, e as regras de uso são: se algo está definido em uma função, se for usado apenas na função, é local, e vice-versa.

        Isso significa que você não pode usá-lo em uma função como uma variável global antes de defini-la.

        O erro ocorre em códigos assim:

someVar = 42
def myFunction():
    print(someVar)
    someVar = 100
myFunction()

15) Tentar criar uma lista de inteiros com range() (resultando em "TypeError: o objeto "range" não suporta atribuição de itens")

        Às vezes você quer obter uma lista ordenada de inteiros, então range() parece uma boa forma de gerar essa lista. No entanto, você precisa lembrar que range() retorna um "objeto range", não o valor real da lista.

        O erro ocorre em códigos assim:

spam = alcance(10)
spam[4] = -1

Talvez seja isso que você queira fazer:

spam = lista(alcance(10))
spam[4] = -1
(Nota: spam = range(10) funciona em Python 2, porque em Python 2 range() retorna um valor de lista, mas em Python 3 o erro acima é gerado)

16) Nice em ++ ou -- operador de auto-incremento. (Resultando em "SyntaxError: sintaxe inválida")

        Se você está acostumado com outras linguagens como C++, Java, PHP, etc., talvez queira tentar usar ++ ou -- incrementar e subtrair uma variável. Não existe tal operador em Python.

        O erro ocorre em códigos assim:

spam = 1
spam++

Talvez seja isso que você queira fazer:

spam = 1
spam += 1

17) Esqueci de adicionar o parâmetro self ao primeiro argumento do método (resultando em "TypeError: myMethod() takes no arguments (1 given)")

        O erro ocorre em códigos assim:

classe Foo():
    def myMethod():
        print("Olá!")
a = Foo()
a.meuMétodo()





Anterior:Software de Quebra Sem Fio WiFi + Tutorial (Gota de Água)
Próximo:【Tutorial da Série de Desenvolvimento iOS Lançado no Verão】código-fonte do projeto iOS
Publicado em 05/12/2015 13:34:16 |
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com