| Debuter |
UserPreferences |
| Wiki Python Fr | FrontPage | RecentChanges | TitleIndex | WordIndex | SiteNavigation | HelpContents | moin.sf.net |
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/
"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).
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 2 | import sys
sys.setdefaultencoding('latin-1') |
Cela a le fort inconvénient de modifier l'encodage pour l'ensemble des modules Python.
et effectuer les encodages lorsque c'est nécessaire (voir JouerAvecUnicode).
Python me dit:
a.py:8: FutureWarning: hex/oct constants > sys.maxint will return positive value s in Python 2.4 and up valeur = 0xBF553C88Pourquoi ?
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.)