Articles

GeeksforGeeks

Posted on
  • Operatore di divisione
  • funzione print
  • Unicode
  • xrange
  • Gestione degli errori
  • modulo_future_

Operatore di divisione

Se stiamo facendo il porting del nostro codice o eseguendo codice python 3.x in python 2.x, può essere pericoloso se i cambiamenti di divisione degli interi passano inosservati (dato che non solleva alcun errore). È preferibile usare il valore fluttuante (come 7.0/5 o 7/5.0) per ottenere il risultato atteso quando portiamo il nostro codice.

Python

print7/5
print-7/5



funzione stampa

Questa è la modifica piùnoto cambiamento. In questo, la parola chiave print in Python 2.x è sostituita dalla funzione print() in Python 3.x. Tuttavia, le parentesi funzionano in Python 2 se viene aggiunto uno spazio dopo la parola chiave print perché l’interprete la valuta come un’espressione.

Python

print'Hello, Geeks'
print('Hope You like these facts')



Come possiamo vedere, se usiamo le parentesi in python 2.x allora non c’è nessun problema ma se non usiamo le parentesi in python 3.x, otteniamo SyntaxError.

Unicode:

In Python 2, un tipo str implicito è ASCII. Ma in Python 3.x il tipo str implicito è Unicode.

Python

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



Python 2..x supporta anche Unicode

Python

print

(type('default string '))

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



xrange:

xrange() di Python 2.x non esiste in Python 3.x. In Python 2.x, range restituisce una lista, cioè range(3), mentre xrange restituisce un oggetto xrange, cioè, xrange(3) restituisce un oggetto iteratore che funziona in modo simile all’iteratore Java e genera un numero quando necessario.
Se abbiamo bisogno di iterare la stessa sequenza più volte, preferiamo range() perché range fornisce una lista statica. xrange() ricostruisce la sequenza ogni volta. xrange() non supporta slices e altri metodi di lista. Il vantaggio di xrange() è che risparmia memoria quando il compito è quello di iterare su un grande intervallo.
In Python 3.x, la funzione range ora fa quello che fa xrange in Python 2.x, quindi per mantenere il nostro codice portabile, potremmo voler usare un range. Quindi la funzione range di Python 3.x è xrange di Python 2.x.

Python

forx inxrange(1, 5):
print(x),

forx inrange(1, 5):
print(x),



Gestione degli errori:

C’è un piccolo cambiamento nella gestione degli errori in entrambe le versioni. In python 3.x, la parola chiave ‘as’ è richiesta.

Python

try:
trying_to_check_error
exceptNameError, err:

printerr, 'Error Caused'



Python

try

:

trying_to_check_error
exceptNameError as err:

print(err, 'Error Caused')



__future__ module:

Questa non è fondamentalmente una differenza tra le due versioni, ma una cosa utile da menzionare qui. L’idea del modulo __future__ è di aiutare la migrazione a Python 3.x.
Se abbiamo intenzione di avere il supporto di Python 3.x nel nostro codice 2.x, possiamo usare le importazioni _future_ nel nostro codice.
Per esempio, nel codice Python 2.x qui sotto, usiamo il comportamento della divisione di interi di Python 3.x usando il modulo __future__.

Python

from__future__ importdivision

print7/5
print-7/5



Output :

1.4 -1.4 

Un altro esempio in cui usiamo le parentesi in Python 2.x usando il modulo __future__:

Python

from__future__ importprint_function
print('GeeksforGeeks')



Output:

GeeksforGeeks 

Riferimento a questo per maggiori dettagli sul modulo __future__.

Questo articolo è stato contribuito da Arpit Agarwal. Se ti piace GeeksforGeeks e vuoi contribuire, puoi anche scrivere un articolo e inviarlo a [email protected]. Vedrai il tuo articolo apparire sulla pagina principale di GeeksforGeeks e aiuterai altri Geek.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *