[PageD'Accueil] [IndexDesTitres] [IndexDesTermes

Bien installer son environnement Python

Et de façon générale vous pourrez remplacez l'intepréteur python disponible par défaut par une version améliorée: ipython http://ipython.scipy.org/

Tutoriaux en français

Voici une liste de site mettant en ligne des tutoriaux sur Python:

Problèmes ?

Il me parle d'encoding

Python me dit: {{{"sys:1: DeprecationWarning: Non-ASCII character '\xe9' in file a.py on line 4, bu t no encoding declared; see http://www.python.org/peps/pep-0263.html for details"}}} Pourquoi ?

Les caractères accentués (comme é à ou ô) ne font pas partie du code ASCII. Or depuis Python 2.3, il est obligatoire de déclarer quel charset vous utilisez pour représenter ces caractères.

Il vous suffit d'ajouter ceci en première ou seconde ligne de votre programme Python: {{{# -*- coding: iso-8859-1 -*- }}}

Et vous n'aurez plus ce message.

Pour ne pas avoir à spécifier l'encoding, vous pouvez également travailler en UTF-8, un format de fichier que Python sait parfaitement reconnaître (Vous trouverez quelques éditeurs de texte gratuits supportant l'UTF-8, comme PSPad sous Windows).

Il me dit UnicodeEncodeError: 'ascii' codec can't encode...

Même si vous avez spécifié l'encoding pour votre document, le codage par défaut des chaînes reste 'ascii'. Vous pouvez le vérifier en faisant

>>> import sys
>>> sys.getdefaultencoding()

Lorsque vous effectuer certaines opérations (sur les string le plus souvent), c'est ce codage par défaut qui est utilisé. D'où ce message d'erreur. Pour pouvoir toujours utiliser des caractères accentués, deux solutions:

créer un fichier sitecustomize.py qui contient les lignes :

   1 import sys
   2 sys.setdefaultencoding('latin-1')

et effectuer les encodages lorsque c'est nécessaire (voir JouerAvecUnicode).

Il me parle de 'FutureWarning'

Python me dit: {{{a.py:8: FutureWarning: hex/oct constants > sys.maxint will return positive value s in Python 2.4 and up

Pourquoi ?

Vous utilisez une fonctionnalité de Python dont le comportement changera en Python 2.4. Vos programmes risquent de ne plus fonctionner en Python 2.4. Vous devez les modifier.

Dans notre problème particulier (hex/oct constants), nous devons préciser le type de notre variable:

valeur = 0xBF553C88L

(Nous avons ajouté L pour indiquer à Python que c'est un entier long.)


2016-06-05 21:42