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 :

Python 2.6 - Formattage Texte


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Géomaticien
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Par défaut Python 2.6 - Formattage Texte
    Bonjour,

    J'essaie de formatter un champs texte qui contient un temps de trajet en minutes secondes donc 00:00. Je voulais éviter le module "Time" si possible.


    Sur l'image ci-dessous, vous constaterez que les lignes en cyan sont problématiques.La première colonne est la valeur brute du temps, la deuxième est la conversion de la valeur brute en minute seconde (Résultat que j'essaie d'obtenir dans la troisième colonne). La troisième colonne est le résultat de ma formule en python.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def Resultat(x):
     Temps = x
     Heures1 = int(Temps)/ 60
     Heures2 =  int(Temps)/ 60.0
     Minutes = round((((Temps / 60) - Heures2) * 60.0), 0) * -1
     Resultat = str(Heures1) + ":" + str(int(Minutes))[-2:]
     return Resultat
    Je croyais qu'en effectuant quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat = str(Heures1) + ":" + str(00 + int(Minutes))[-2:]


    Merci beaucoup de votre aide

    Pierre-Luc
    Images attachées Images attachées  

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Je suppose que dans ton exemple de code l'argument x de la fonction est le contenu de la colonne GA4

    Donc:
    >>> x = 421
    >>> h, m = divmod(x, 60)
    >>> h
    7
    >>> m
    1

  3. #3
    Membre confirmé
    Homme Profil pro
    Géomaticien
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Par défaut
    Merci pour le raccourci de la formule,


    mais je n'ai toujours pas solutionner mon problème qui consiste à retourner le résultat sous la forme 0:00 ou 00:00 pour l'exemple ci-dessous :
    Citation:
    >>> x = 421
    >>> h, m = divmod(x, 60)
    >>> h
    7
    >>> m
    1
    à obtenir le résultat suivant ---->> 7:01

  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,

    Tout cela me semble fort compliqué.
    Si les 412, 308, et 185 de votre exemple sont des minutes, vous pouvez construite le nombre de minutes / secodes avec la fonction divmod:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> h, m = divmod(412, 60)
    >>> h
    6
    >>> m
    52
    Pour ce qui est de "formatter":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> print ('%d:%02d' % (h, m))
    6:52
    L'un dans l'autre la fonction résultat pourrait se réduire à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def resultat(x):
         return '%d:%02d' % divmod(x, 60)
    mais désolé si je n'ai pas tout compris.
    Cordialement,
    - W
    PS: Grilled by VinsS? Oui mais il ne répond qu'à la moitié de la question: tricheur
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Géomaticien
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Par défaut
    Merci beaucoup a vous deux

    PS: Grilled by VinsS? Oui mais il ne répond qu'à la moitié de la question: tricheur

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

Discussions similaires

  1. Formattage texte c++
    Par n2engineer5 dans le forum C++
    Réponses: 2
    Dernier message: 17/05/2012, 16h24
  2. [plugin] formattage texte
    Par Invité dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 06/07/2007, 10h10
  3. Formattage texte XML dans Flash
    Par delavega dans le forum Flash
    Réponses: 8
    Dernier message: 09/11/2006, 16h50
  4. Formattage de texte
    Par Le Serval dans le forum Access
    Réponses: 15
    Dernier message: 28/06/2006, 11h14
  5. [SWING]icone pour action de formattage sur du text
    Par david06600 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/02/2006, 17h09

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