1. Definir uma função e depois nada fazer, esperando que ela por milagre se lembre do que queremos resolver em concreto. É a dualidade definir/usar que nos escapa.
2. Importar um módulo com a instrução "import [nome do módulo]" para usar uma operação [nome da operação] e não qualificar a operação com o nome do módulo no momento do seu uso.
1.
>>>
import
math
2.
>>> sin(
5
)
3.
Traceback (most recent call last):
4.
File
"<string>"
, line
1
,
in
<fragment>
5.
NameError: name
'sin'
is
not
defined
6.
>>> math.sin(
5
)
7.
-
0.95892427466313845
8.
>>>
3. Não ter em atenção as consequência da mutabilidade de alguns objectos. Alguns dos métodos modificam o objecto mas não devolvem nenhum valor.
01.
>>> a
=
[
1
,
2
,
3
]
02.
>>> b
=
a.append(
4
)
03.
>>> b
# -----> b = None!!
04.
>>> a
05.
[
1
,
2
,
3
,
4
]
06.
>>> b
=
a
# ----> assim pode-se fazer!
07.
>>> b
08.
[
1
,
2
,
3
,
4
]
09.
>>>
4. Não ter em atenção que o código deve estar correctamente alinhado.
01.
# caso 1
02.
def
dobros(n):
03.
for
i
in
range(n):
04.
d
=
2
*
i
05.
print
d,
06.
07.
dobros(
4
)
08.
>>>
0
2
4
6
09.
10.
# caso 2
11.
def
dobros(n):
12.
for
i
in
range(n):
13.
d
=
2
*
i
14.
print
d,
# <----- Aqui
15.
16.
dobros(
4
)
17.
>>>
6
5. Referir o nome de um objecto que não foi ainda criado.
1.
Python
2.6
.
2
(r262:
71600
, Apr
16
2009
,
09
:
17
:
39
)
2.
[GCC
4.0
.
1
(Apple Computer, Inc. build
5250
)]
3.
Type
"help"
,
"copyright"
,
"credits"
or
"license"
for
more information.
4.
>>> a
5.
Traceback (most recent call last):
6.
File
"<string>"
, line
1
,
in
<fragment>
7.
NameError: name
'a'
is
not
defined
8.
>>>
6. Tentar fazer operações impossíveis.
01.
>>>
5
+
'a'
02.
Traceback (most recent call last):
03.
File
"<string>"
, line
1
,
in
<fragment>
04.
TypeError: unsupported operand type(s)
for
+
:
'int'
and
'str'
05.
>>>
5
/
0
06.
Traceback (most recent call last):
07.
File
"<string>"
, line
1
,
in
<fragment>
08.
ZeroDivisionError: integer division
or
modulo by zero
09.
>>>
Nalgumas situações o Python avisa-nos do erro. Nestes casos deve ler com atenção a mensagem de erro. E por hoje é tudo.
Há muitos mais erros! Quer contribuir com o seu erro preferido?? É só mandar para o blogue!
Sem comentários:
Enviar um comentário