- Operador de divisão
- Função de impressão
- Unicode
- xrange
- Manuseamento de erros
- _módulo_futuro
p>Operador de divisão
Se estivermos a portar o nosso código ou a executar python 3.x código em python 2.x, pode ser perigoso se as mudanças de divisão inteira passarem despercebidas (uma vez que não levanta qualquer erro). É preferível utilizar o valor flutuante (como 7,0/5 ou 7/5,0) para obter o resultado esperado ao portar o nosso código.
>/p>
print
7
/
5
print
-
7
/
5
>/div>>
função de impressão
Este é o mais bemmudança conhecida. Neste, a palavra-chave de impressão em Python 2.x é substituída pela função print() em Python 3.x. Contudo, os parênteses funcionam em Python 2 se for adicionado espaço após a palavra-chave de impressão porque o intérprete a avalia como uma expressão.
print
'Hello, Geeks'
print
(
'Hope You like these facts'
)
>/div>
Como podemos ver, se usarmos parênteses em python 2.x então não há problema mas se não usarmos parênteses em python 3.x, obtemos SyntaxError.
p>Unicode:
Em Python 2, um tipo de str str implícito é ASCII. Mas em Python 3.x, o tipo de str implícito é Unicode.
>/p>
>/p>
print
(
type
(
'default string '
))
print
(
type
(b
'string with b '
))
br>
Python 2.x também suporta Unicode
>/p>
/p>
print
(
type
(
'default string '
))
print
(
type
'string with b '
))
br>
xrange() de Python 2.x não existe em Python 3.x. Em Python 2.x, o intervalo retorna uma lista, isto é, o intervalo(3) retorna enquanto que xrange retorna um objecto xrange, isto é.., xrange(3) retorna um objecto iterador que funciona semelhante ao iterador Java e gera número quando necessário.
Se precisarmos de iterar sobre a mesma sequência várias vezes, preferimos intervalo() porque o intervalo fornece uma lista estática. xrange() reconstrói sempre a sequência. xrange() não suporta fatias e outros métodos de lista. A vantagem de xrange() é que poupa memória quando a tarefa é iterar sobre um grande intervalo.
Em Python 3.x, a função range agora faz o que xrange faz em Python 2.x, por isso, para manter o nosso código portátil, podemos querer limitar-nos a utilizar um range em vez disso. Assim, a função de intervalo em Python 3.x é o xrange a partir de Python 2.x.
>/p>
>/p>
for
x
in
xrange
(
1
,
5
):
print
(x),
for
x
in
range
(
1
,
5
):
print
(x),
br>>
Manuseamento de erros:
Há uma pequena alteração no tratamento de erros em ambas as versões. Em python 3.x, a palavra-chave “como” é necessária.
>/p>
>/p>
try
:
trying_to_check_error
except
NameError, err:
print
err,
'Error Caused'
br>
>/p>
try
:
trying_to_check_error
except
NameError as err:
print
(err,
'Error Caused'
)
>/div>
__future__ module:
Isto não é basicamente uma diferença entre as duas versões, mas uma coisa útil a mencionar aqui. A ideia do módulo __future__ é ajudar a migrar para Python 3.x.
Se estamos a planear ter suporte Python 3.x no nosso código 2.x, podemos usar _future_ imports no nosso código.
Por exemplo, no código Python 2.x abaixo, utilizamos o comportamento de divisão inteira do Python 3.x usando o módulo __future__.
>/p>
>/p>
from
__future__
import
division
print
7
/
5
print
-
7
/
5
br>
p>Eliminar :
1.4 -1.4
Outro exemplo em que usamos parênteses em Python 2.x utilizando o módulo __futuro__:
>/p>
>/p>
from
__future__
import
print_function
print
(
'GeeksforGeeks'
)
Saída:
GeeksforGeeks
Refer a isto para mais detalhes do módulo __future__.
Este artigo é contribuído por Arpit Agarwal. Se gosta de GeeksforGeeks e gostaria de contribuir, pode também escrever um artigo e enviar o seu artigo por correio para [email protected]. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.