Python 2.x vs Python 3.x

Avec l’arrivée d’ArcGIS Pro, vient aussi l’arrivée de Python 3. Évidemment votre question est de savoir si mes scripts fonctionnant en version 2 fonctionneront avec la version3 ? Quelles sont les différences entre les 2 versions ?

Python 2.7 (sortie en 2010) est la dernière version majeure de la série 2.x et sera maintenue jusqu’en 2020 (voir ici). Donc pour les utilisateurs de la version 2.7, fourni avec ArcGIS Desktop, vous n’avez aucune urgence à passer à Python 3.

Cependant, si vous utilisez ArcGIS Pro ou si vous pensez l’utiliser bientôt, il faudra vous conformer à la version 3. Soyez sans crainte, les différences sont assez facilement transférables d’une version à l’autre.

Voici quelques différences :

La première différence notable est la fonction print. Voici l’erreur obtenue avec la syntaxe de la version 2 dans la version 3.

Pas de panique, maintenant il faut mettre l’information du print entre parenthèses comme ceci.

Print est désormais une fonction, c’est ce qui explique le changement de syntaxe.

 

Une autre différence est la division. Avec la version 2, une division 7/2 donne ceci

Avec la version 3, on a ceci.

Inutile de vous dire que vous devrez passer vos calcules en revues pour éviter de vous retrouver avec des petites surprises.

Si vous utilisiez la fonction Input pour interagir avec votre utilisateur. À la version 3, cette fonction renvoi que le type texte. Autrement dit, si vous demandez à l’utilisateur d’entrer un nombre, celui-ci sera en format texte dans la variable associée.

Exemple en version 3.

Une autre différence majeure est le passage de l’encodage texte de ASCII (7bits) à UNICODE (8bits). Donc inutile d’utiliser le "u" au début d’une variable contenant des caractères non ASCII.

En version 2 on a ceci :

En version 3 on a ceci :

Oui, oui vous avez bien vu, très intéressant n’est-ce pas.

 

Bref il y a beaucoup de subtilités, mais à mon avis, rien compromettant le changement de version. Je vous laisse sur la documentation complète des modifications.

What’s new in Python 3 : https://docs.python.org/release/3.1.2/whatsnew/3.0.html

Miscellaneous Python 3.0 Plans: https://www.python.org/dev/peps/pep-3100/

Martin

 

Tags: 
Vous avez du contenu à publier sur SigQuébec?

Communiquez avec le Webmestre.