Articles

GeeksforGeeks

Posted on
  • 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.

Python
div>

>/p>

>br>

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.

Python
div>

>br>

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.

Python
div>>div>

>/p>

>/p>

>br>

print(type('default string '))
print(type(b'string with b '))

br>



Python 2.x também suporta Unicode

Python
div>>div>>div>

>/p>

/p>

>br>

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.

Python
div>

>/p>

>/p>

>br>

forx inxrange(1, 5):
print(x),
forx inrange(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.

Python

>/p>

>/p>

>br>

try:
trying_to_check_error
exceptNameError, err:
printerr, 'Error Caused'

br>



Python
div>>div>

>/p>

>>div>>>div>

try:
trying_to_check_error
exceptNameError 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__.

Python
div>>div>

>/p>

>/p>

>br>

from __future__ importdivision
print7/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__:

Python

>/p>

>/p>

>br>

from__future__ importprint_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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *