Introdução ao Python "dez pecados" (caso clássico de erro)

prefácio

O seguinte é um novato erros e soluções Python quando muito fácil de fazer.

A, SyntaxError Erro de sintaxe

(1) sem aspas em pares

mensagem de erro:

SyntaxError:EOL while scanning string literal

Exemplos de erros:

string = 'hello world

Solução:
Cordas lembre-se de colocar aspas, aspas simples, aspas duplas não importa. Quando uma cadeia compreendendo um único ou duplo de cotação, cotação situação não pareado propenso.

(2) ausência de parêntesis em pares

mensagem de erro:

SyntaxError:unexpected EOF while parsing

Erro Exemplo 1:

result = (1024+(512*2)/128

Erro Exemplo 2:

print('hello world'

Solução:
o parêntese em pares. Ao escrever uma chamada de expressão ou função complexa muitas vezes você vai encontrar esse problema.

(3) a partir do operador, utilizando o erro do operador ou ++ - como

mensagem de erro:

SyntaxError:invalid syntax

Exemplos de erros:

v = 64
v++

Solução:
linguagem Em Python, nenhuma linguagem C ++ semelhante, ou - como do operador operacional. Do mesmo modo funcionar ou uso é = + - = operador. Por exemplo, o seguinte código de modo a que a variável de v é incrementado por um para a operação.

v += 1

(4) tenta utilizar o sinal de igual (=) é determinado duas computação são iguais

mensagem de erro:

SyntaxError:invalid syntax

Exemplos de erros:

if v=64:
    print('hello world')

Solução:
Use dois sinal de igual (==) é determinado como o valor da operação é igual a dois operadores relacionais, o sinal de igual (=) é o operador de atribuição em linguagem Python.

(6) o erro usando as palavras-chave da linguagem Python como nomes de variáveis

mensagem de erro:

SyntaxError: can`t assign to keyword

Exemplos de erros:

False= 1

Solução:
Não use as palavras-chave da linguagem Python como nomes de variáveis, nomes de funções ou nomes de classe. Na janela Python Shell, utilize a ajuda ( 'palavras-chave') instruções pode ver uma lista de palavras-chave linguagem Python.

(7) se esqueça de adicionar uma vírgula no final if / elif / else / while / por declarações / def / classe, tais como (:)

mensagem de erro:

SyntaxError:invalid syntax

Erro Exemplo 1:

a = '12345'
for i  in a
    print(i)

Erro Exemplo 2:

def sayhi()
    print('Hi')

Solução:
Adicione dois pontos (:) ao if / elif / else / while / for / def / classe declarações e outra extremidade. Tenha em mente as regras da gramática, praticar muito para bater um monte de código.

(8) o uso incorreto da pontuação chinês

mensagem de erro:

SyntaxError: invalid character in identifier

Erro Exemplo 1:

print('hello''world')
# 错误原因:逗号是中文标点符号

Erro Exemplo 2:

for i in range(10)# 错误原因:冒号是中文标点符号

Solução:
Além da corda pode ser chinês, há outros casos estão em estado de Inglês para edição.

Dois, erros de recuo IndentationError

mensagem de erro:

IndentationError:unindent does not match any outer indentation level
IndentationError:expected an indented block

Exemplos de erros:

a = 2
while a < 0:
      print('hello')
    a -= 1
else:
    print('0.0')

Solução:
O código acima no corpo de recuo código enquanto declaração não estão alinhados. O uso adequado de código recuo. Quando o código é copiado e colado de outras partes dos erros mais comuns.

Três, nome NameError errado

Quando o caso de nomes de variáveis, nomes de funções ou nomes de classe, tais como erro material, ou uma função é chamada antes da definição, etc., que pode levar a denominação errônea.
mensagem de erro:

NameError: name 'pirnt' is not defined
NameError: name 'sayhi' is not defined
NameError: name 'pd' is not defined

Erro Exemplo 1:

pirnt('hello world')
# 错误原因:print拼写错误。

Erro Exemplo 2:

sayhi()

def sayhi():
    pass
# 错误原因:在函数定义之前对函数进行调用。

Erro Exemplo 3:

pd.read_excel(r'file.xlsx')
# 错误原因:在调用pandas方法前并未导入pandas库或者并未起别名为pd。

Solução:
nomes de escrita correta de variáveis, nomes de funções ou nomes de classe, como primeira tarefa antes de variáveis de uso, chamadas de função será colocado antes, antes de usar bibliotecas de terceiros para importação, pacote de transferência e funções assim definidas. Que é garantir um nome (identificador) de existir, a fim de ser usado.

Quatro, tipo TypeError erro

(1) não é uma operação inteiro e ligação cadeia

mensagem de erro:

TypeError: Can`t convert 'int' object to str implicitly
TypeError: unsupported operand type(s) for + : 'float' and 'str'

Erro Exemplo 1:

print('score:'+100)

Erro Exemplo 2:

print(9.8 + 'seconds')

Solução:
Antes de ligar inteiro operação, ponto flutuante, texto ou valores booleanos, utilizados para a função str () para convertê-lo em um tipo de cadeia.

função (2) é chamado o número de parâmetros não é correcta, ou não parâmetros transmitidos

mensagem de erro:

TypeError: input expected at most 1 arguments,got 2
TypeError: say() missing 1 required positional argument:'words'

Erro Exemplo 1:

input('输入姓名','年龄')
# 错误原因:试图给input()函数提供第2个参数。

Erro Exemplo 2:

def say(words):
    print(words)

say()
# 错误原因:调用函数时未传递参数。

Solução:
Lembre-se uso da função, entender os parâmetros função definida, use o método correto para chamar a função.

Cinco, erro de chave KeyError

nome da chave para acessar o dicionário que não existe nos elementos, este erro ocorrerá.
mensagem de erro:

KeyError: 'c'

Exemplos de erros:

d = {'a':1,'b':2}
print(d['c'])

Solução:
Ao acessar elementos do dicionário, detectada pela primeira vez em uma palavra-chave que você deseja acessar o nome da chave existe, ou usar um dicionário e obter () para acessar com segurança os elementos do dicionário.

Seis, erro de índice IndexError

Quando o índice ultrapassa lista gama lista de acesso, o índice será erros.
mensagem de erro:

IndexError: list index out of range

Exemplos de erros:

a = [1,2,3]
print(a[3])
# 错误原因:列表a中不存在第4个索引。列表的索引从0开始编号。

Solução:
por função len () para obter o comprimento da lista, então o índice é determinada para ser acedida está fora do âmbito da lista.

Sete, erro variável local não inicializada UnboundLocalError

Na função, se você fizer alterações em uma variável global não for declarado, vai encontrar este erro.
mensagem de erro:

UnboundLocalError: local variable 's' referenced before assignment

Exemplos de erros:

s = 1

def test():
    s += 1
    print(s)

test()
# 错误原因:在函数内对未声明的全局变量s进行了自增操作。
# Python将变量s视为一个本地的局部变量,但该变量未初始化。

Solução:
Ao usar variáveis globais dentro de uma função, use a palavra-chave global pode ser declarado.

Oito, AttributeError erro propriedade

mensagem de erro:

AttributeError: 'tuple' object has no attribute 'append'
AttributeError: 'DataFrame' object has no attribute 'col'

Erro Exemplo 1:

t = (1,2,3)
t.append(4)
# 错误原因:元组不可变。

Erro Exemplo 2:

df = pd.read_excel(r'data.xlsx')
df.col
# 错误原因:DataFrame没有col属性,应该为columns。

Solução:
nome do atributo é de classe escrita correta, erros de escrita não ocorrem. Uma compreensão profunda de tuplas, a diferença da lista, pode ser convertido para um tuplo é adicionado à lista de elementos.

módulo de Nine, ModuleNotFoundError não existe

mensagem de erro:

ModuleNotFoundError: No module named 'pandas'

Erro Exemplo 1:

import pandas as pd
# 没有导入成功,报上面错误。

Solução:
Este erro é comum em ambos os cenários, o primeiro, não é para download, instalar o módulo, em segundo lugar, o chamado módulo com o caminho do módulo é chamado o caminho e inconsistente. O primeiro caso pode baixar e instalar diretamente no cmd, pip instalar xxx, pode haver várias versões do computador Python no segundo caso, recomenda-se manter uma comumente usado.

arquivo de dez, FileNotFoundError não existe

mensagem de erro:

FileNotFoundError: File b'E:\test\test_data.csv' does not exist

Exemplos de erros:

pd.read_csv('E:\test\test_data.csv')
# 错误原因:路径中包含'\t',系统错误地认为是制表符。

Solução:
a existência de arquivos escritos para garantir que o caminho em frente do caminho de arquivo de leitura plus 'r', para somente leitura, lido como um caminho de arquivo, ou barra dupla '\' para escapar à forma tais como: 'E: \ \ test \ \ test_data.csv'. ocorre ocasionalmente nome do arquivo, caminho fez de errado, fazer algum erro estúpido.

Autor | Yan pequenos para a idade gestacional
Fonte | Estatística e Análise de Dados de combate

Publicado 29 artigos originais · ganhou elogios 19 · vista 1307

Acho que você gosta

Origin blog.csdn.net/s1156605343/article/details/104958720
Recomendado
Clasificación