IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Erreur ascii lors de l'utilisation des quaternions [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 7
    Points : 12
    Points
    12
    Par défaut Erreur ascii lors de l'utilisation des quaternions
    Bonjour,

    J'ai l'erreur classique du "UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)" lors de l'utilisation de quaternions sous Python 2.7.

    Pour situer, je veux utiliser l'algèbre que propose les quaternions afin de créer des images fractales dans les ensembles de Mandelbrot.
    Je suis donc allé sur cette page : https://fr.wikibooks.org/wiki/Math%C...ions_en_Python
    J'ai ENREGISTRÉ le fichier quaternion.py, et ensuite voici le code que je tape dans une nouvelle fenêtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # -*- coding: utf-8 -*-
     
    import quaternion 
     
    p=quaternion(-2+1j,2+3j)
    q=quaternion(3-2j,5+1j)
    print(p*q)
    print(q*p)
    (Pour vérifier l'anticommutativité de la multiplication)

    Quand je lance, je reçois l'erreur.
    J'ai l'habitude de voir l'erreur quand je manie des str ou autres, mais là je ne vois pas pourquoi cela intervient.

    Des idées ?
    Merci d'avance !

  2. #2
    Membre régulier
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 52
    Points : 94
    Points
    94
    Par défaut
    Ce serait beaucoup plus simple de te répondre si tu donnais l'entièreté du Traceback (message d'erreur). A mon avis, ça signifie que l'un des fichiers (quaternion.py ou le fichier que tu nous montres) n'est pas enregistré en UTF-8. Et assures-toi bien d'avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-
    aussi dans quaternions.py.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 7
    Points : 12
    Points
    12
    Par défaut
    Merci d'avoir pris le temps de me répondre.

    J'ai bien vérifié que quaternion.py était codée en utf-8.
    J'ai enregistré le fichier quaternion.py dans Python27/Lib pour information, au cas où cela aurait avoir avec l'erreur en question.

    Voici le traceback complet :
    "runfile('C:/Users/Régis/Desktop/sanstitre2.py', wdir='C:/Users/Régis/Desktop')
    Traceback (most recent call last):

    File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 2894, in run_code
    self.showtraceback()

    File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 1756, in showtraceback
    value, tb, tb_offset=tb_offset)

    File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 1190, in structured_traceback
    self, etype, value, tb, tb_offset, context)

    File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 1107, in structured_traceback
    self, etype, value, elist, tb_offset, context

    File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 501, in structured_traceback
    out_list.extend(self._format_list(elist))

    File "C:\Python27\lib\site-packages\IPython\core\ultratb.py", line 548, in _format_list
    Colors.Normal)

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)"

  4. #4
    Membre régulier
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 52
    Points : 94
    Points
    94
    Par défaut
    Re,

    Ton traceback est en effet très utile. Tu ne nous as pas dit que tu utilisais IPython. Tu as parlé de Python 2.7. Enfin bref, dans un cas comme dans l'autre, ton problème vient du fait que ton path (C:/Users/Régis/Desktop) contient un caractère non-ascii (le é). D'après ce bug report, ça devrait être résolu. Faut-il encore que tu aies la dernières version de IPython (3.2 stable).

    Sinon le plus simple serait de déplacer ton script sanstitre2.py dans un dossier dont le chemin ne contient pas des accents. Tu pourrais te créer un dossier dans le C, appelé C:\PythonScripts. En évitant les accents et les espaces, tu éviteras ce genre d'inconvénients.

    PS: le é en UTF-8 s'encode sur 2 octets qui ont les valeurs 195 et 169. 195 en hexadécimal est 0xc3. IPython tente de décoder l'octet avec la valeur 195 en utilisant le code ascii, et ne comprends pas quel caractère ça doit être, puisque la table ascii s'arrête à 127.
    Dan.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 7
    Points : 12
    Points
    12
    Par défaut
    Normalement, c'est bien Python 2.7 que j'ai installé...
    En effet, je suis en CPGE et le programme officiel d'Informatique Pour Tous exige Python 2.7.. Apparemment ils ne veulent pas passer aux 3.X...

    Tout est bon !
    Excellente explication de votre part, je vous en remercie !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/09/2010, 19h55
  2. [PEAR][HTML_QuickForm] Erreur 404 lors de l'utilisation de PEAR
    Par Hguran dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/04/2008, 15h41
  3. Réponses: 13
    Dernier message: 31/05/2007, 18h33
  4. Erreur lors de l' utilisation des objets ADO
    Par aityahia dans le forum Bases de données
    Réponses: 10
    Dernier message: 24/03/2006, 14h46
  5. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo