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

Calcul scientifique Python Discussion :

module de polyèdres [pb de docstring]


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut module de polyèdres [pb de docstring]
    Salut les pythons scientifique,
    J'ai développer un module de de calcule de polyèdre régulier qui renvoie l'aire, le volume, etc... d'un polyèdre régulier:
    -Icosaèdre
    -Dodécaèdre
    -Octaèdre
    -Hexaèdre
    -Tétraèdre
    Mais le module souffre d'un sérieux problème de docstring quand on s'en sert sous Windows car cet OS a du mal avec les caractères que j'utilise dans les docstring comme:
    - le signe multiplier: × ( je peut utiliser un x à la place mais ca ne me plais pas)
    - le signe au carré: ² ( je peut utiliser une formule à la place mais ca ne me plait pas non plus)
    - j'ai confectionner un sign sqrt tenant sur trois lignes:
    Dont Windows mets des caractères illisible à la place de ces caractères.
    J'ai préciser l'encodage du fichier mais je ne sais si Windows prend en compte la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-
    Mais je désire que mes docstrings soit le plus concises possible car ceux-ci affichent la formule utiliser par les méthodes pour renvoyer les valeurs.
    Par ailleurs je n'ai uniquement tester le module qu'avec le IDLE fournis avec l'installation standart de python 2.7.3 et celui-ci n'affiche que la première ligne parfois amputer de la fin des docstrings... et il faut faire appel a la fonction help pour voir le gribouillage que ca donne.

    Si vous ne pouvez m'aider je serai obliger de faire une version pour Windows et pour Linux avec lequel j'ai développer le module et qui affiche correctement les doctrings...

    J'attends vos réponses avec impatience.

    PS: je ne suis pas un anti-Windows mais je ne m'y connais pas avec cet OS (heureusement que python est vraiment bien portable).

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Par défaut, l'encoding de Windows sera plutôt "cp437" et non "utf-8".

    Comme vous ne montrez pas de code et que Python2 est plutôt laxiste sur la représentation des bytes/unicode: ce qui pourrait "fonctionner" avec de l'Unicode marchera moyen avec des bytes.

    Si vous voulez écrire un code portable, pourquoi ne pas créer une petite IHM avec Tk? Il devrait se débrouiller pour afficher l'Unicode qu'on lui envoie et gérer le paramétrage des "consoles" sous les différents OS.

    A vous de voir.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Merci pour la précision concernant l'encodage par défaut sous-windows, je le savais mais je n'y pas penser tout de suite car j'écris mes codes sous Linux et comme GUI j'utilise tkinter.
    Et comme python et Tkinter sont bien portables je n'ai jamais eu de problèmes pour faire une version Windows d'un programme ou module écrit sous Linux.
    Je vais essayer de mettre cp437 comme encodage, merci.
    De toute façon je vais devoir faire une version pour chaque OS.

    Si vous voulez écrire un code portable, pourquoi ne pas créer une petite IHM avec Tk? Il devrait se débrouiller pour afficher l'Unicode qu'on lui envoie et gérer le paramétrage des "consoles" sous les différents OS.
    c'est quoi une IHM ?
    Et mon module n'est qu'un modeste module de calcule géometrique de polyèdres régulier, je vous ferai un liens quand j'aurai ,terminer.

    Comme vous ne montrez pas de code...
    Le problème peut se représenter comme le code démonstratif du problème suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # -*- coding: utf-8 -*-
    # Est ce que Windows prend en charge la ligne du dessus ?
     
    def dummy(side_length)
      '''return the area from an square
         area= side_length²
         area= side_length × side_length'''
     
      return side_length * side_length
    Copier simplement la fonction dans l'IDLE pour voir comment les signes:
    - carrée ²
    - multiplier × ( × != * )
    sont représenter en tapant
    help(dummy)
    Et que l'IDLE n'affiche que le première ligne de docstring en appelant la fonction dummy dans l'interpréteur.

    Merci pour vos réponses.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Sous IDLE 3.2, çà fonctionne normalement.
    Si vous êtes sous 2.x, le doctring devrait être écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def dummy(side_length)
      u"""return the area from an square
         area= side_length²
         area= side_length × side_length"""
    c'est quoi une IHM ?
    Demande a ton ami Google!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Par défaut
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: utf-8 -*-
    est bien comprise par Windows mais ne peut-être pas ce que tu attends : elle sert à spécifier l'encodage de ton fichier source mais ne spécifie pas l'encodage de ton flux de sortie.

  6. #6
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Merci pour ces précisions,
    je ne connaissait pas cette technique de docstring unicode merci du tuyau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def dummy(side_length)
      u"""return the area from an square
         area= side_length²
         area= side_length × side_length"""
    Et merci aussi pour la réponse concernant la ligne spécifiant l'encodage.

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

Discussions similaires

  1. Module FTP.pm ?
    Par MSP dans le forum Modules
    Réponses: 4
    Dernier message: 04/08/2003, 15h49
  2. module Find
    Par martijan dans le forum Modules
    Réponses: 8
    Dernier message: 09/07/2003, 11h07
  3. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44
  4. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 20h50

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