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 :

Assigner l'heure à une variable [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut Assigner l'heure à une variable
    Bonjour,

    Je démarre en python donc merci par avance de votre patience.

    Je cherche a faire un module qui stocke l'heure en mode HH:MM.SS dans une liste (c60) et à incrémenter cette liste avec la nouvelle heure (c60val) à chaque fois qu'on tape sur entrée.

    Donc j'ai fait une boucle avec X comme condition de sortie, mais j'ai une erreur de syntaxe (bien sur) qui me dit que time n'est pas défini alors que mon import time et srfttime fonctionne dans IDLE....

    File "D:/Bureautique/Python/Scripts/c60.py", line 4, in <module>
        c60val=(strftime("%H:%M:%S", time.localtime()))
    NameError: name 'time' is not defined
    je ne vois pas ou je me trompe, merci de votre aide..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from time import strftime
    c60=input("Tapez entree pour le code 60, X pour sortir : ")
    while c60 != "X":
        c60val=(strftime("%H:%M:%S", time.localtime()))
        c60.append(c60val)
        print (c60)
        c60="X"
    print("Sortie")

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Dans le bout de code que tu as posté je ne vois pas l'importation du module "time" donc c'est normal...

    Sinon dans ce code il y a d'autres soucis...

    Par exemple : c60.append(c60val) n'est pas correcte car c60 est une string et non une liste...

  3. #3
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    Bonsoir,

    merci de la réponse.

    En ligne 1 je fais un from time import strftime, ca ne convient pas ?

    Comment je dois faire pour définir C60 en liste, je croyais (naivement) que dès qu'on faisait un append on passait de string a liste ?

    Je comprends la simplification, mais la logique pas encore

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    En ligne 1 je fais un from time import strftime, ca ne convient pas ?
    Cela convient pour importer strftime mais pas pour importer time, pour ce dernier il faut ajouter: import time



    Citation Envoyé par jchuillier2 Voir le message
    Comment je dois faire pour définir C60 en liste, je croyais (naivement) que dès qu'on faisait un append on passait de string a liste ?
    Il te faut deux variables distinctes une pour la string et une autre pour la liste.

    Pour une liste vide tu peux faire c60_lst = []

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    ... à chaque fois qu'on tape sur entrée.

    Donc j'ai fait une boucle avec X comme condition de sortie, ...
    Cela ne peut pas fonctionner comme ça car à l'intérieur de la boucle tu ne redemandes pas à l'utilisateur de taper "entrer" ou "X"...

  6. #6
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    Si je tape X j'ai bien la condition de sortie (affichage de sortie), mais de toute façon je suis coincé sur cette syntaxe de time qui n'est pas défini alors que je l'importe en ligne 1.

    J'ai essayé de faire juste un affichage du temps mais pas mieux, j'ai la meme erreur.

    Traceback (most recent call last):
      File "D:/Bureautique/Python/Scripts/c60.py", line 6, in <module>
        c60.append(c60val)
    AttributeError: 'str' object has no attribute 'append'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from time import localtime, strftime
    c60=input("Tapez entree pour le code 60, X pour sortir : ")
    while c60 != "X":
        #c60val=(time.strftime("%H:%M:%S", time.localtime()))
        print (strftime("%H:%M:%S", time.localtime()))
        c60.append(c60val)
        print (c60)
        c60="X"
    print("Sortie")
    Merci car je tourne en rond sans comprendre

    UPDATE, on avance

    Avec le dernier code du dessus que je viens de modifier ca m'affiche l'haure donc jusqu'a print (strftime......c'est bon, c'est sur append que ca plante, j'ai mis le message d'erreur à jour.

    UPDATE 2 : finalement non, ca à marché une fois et depuis ca ne marche plus, je n'y comprends rien.

    J'ai modifié le code comme suit pour essayer de lui dire que c60 est une liste mais je me retrouve bloqué sur l'erreur suivante

    File "D:/Bureautique/Python/Scripts/c60.py", line 6, in <module>
        print (strftime("%H:%M:%S", time.localtime()))
    NameError: name 'time' is not defined
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from time import localtime, strftime
    c60=0
    while c60 != "X":
        c60=input("Tapez entree pour le code 60, X pour sortir : ")
        #c60val=(time.strftime("%H:%M:%S", time.localtime()))
        print (strftime("%H:%M:%S", time.localtime()))
        [c60].append(c60val)
        print [c60]
        #c60="X"
    print("Sortie")

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message

    Merci car je tourne en rond sans comprendre

    Pour time regarde mon message précédent...

  8. #8
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    OK, vu ton message pour time, donc je l'ai rajouté à la ligne d'importation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from time import time, localtime, strftime
    c60=0
    while c60 != "X":
        c60=input("Tapez entree pour le code 60, X pour sortir : ")
        #c60val=(time.strftime("%H:%M:%S", time.localtime()))
        print (strftime("%H:%M:%S", time.localtime()))
        [c60].append(c60val)
        print [c60]
        #c60="X"
    print("Sortie")
    Meme résultat, je ne comprend pas du tout le principe d'importation de time, je dois importer time, localtime et strftime, j'ai mis time en premier dans ma liste d'import mais ca ne donne rien, toujours la meme erreur mais le texte n'est pas en rouge mais en couleurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "D:/Bureautique/Python/Scripts/c60.py", line 6, in <module>
    	    print (strftime("%H:%M:%S", time.localtime()))
    	NameError: name 'time' is not defined
    On ne peut pas importer toutes les fonctions une bonne fois pour toutes ? Si c'est la meme galère à chaque fois ca me fait un peu (beaucoup) peur.

    Encore merci

  9. #9
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    La on avance vraiment.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import time
    from time import strftime, localtime
    c60=0
    while c60 != "X":
        c60=input("Tapez entree pour le code 60, X pour sortir : ")
        c60val=(strftime("%H:%M:%S", time.localtime()))
        print (strftime("%H:%M:%S", time.localtime()))
        [c60].append(c60val)
        print (c60)
        #c60="X"
    print("Sortie")
    Avec ca je rentre mon temps, tout fonctionne sauf que ben sur il ne fait pas un append mais plutot un replace (parce que c'est un str et pas une liste ?)

    Donc je me penche sur la création de la liste et je reviens dire ce qui se passe.

    Merci

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    OK, vu ton message pour time, donc je l'ai rajouté à la ligne d'importation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from time import time, localtime, strftime
    Meme résultat, je ne comprend pas du tout le principe d'importation de time, je dois importer time, localtime et strftime, j'ai mis time en premier dans ma liste d'import mais ca ne donne rien, toujours la meme erreur mais le texte n'est pas en rouge mais en couleurs
    Ce n'est pas comme ça...

    Tu peux faire par exemple :
    Et alors tu écris toujours time avant la fonction : time.strftime() et time.localtime()

    Il y a d'autres possibilités...

  11. #11
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    J'ai modifié le code comme suit pour essayer de lui dire que c60 est une liste mais je me retrouve bloqué sur l'erreur suivante

    File "D:/Bureautique/Python/Scripts/c60.py", line 6, in <module>
    print (strftime("%H:%M:%S", time.localtime()))
    NameError: name 'time' is not defined
    Encore une fois lis mon message #5... Dans ton code tu n'importes pas le module time contrairement à ce que tu crois...

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message

    J'ai essayé de faire juste un affichage du temps mais pas mieux, j'ai la meme erreur.

    Traceback (most recent call last):
    File "D:/Bureautique/Python/Scripts/c60.py", line 6, in <module>
    c60.append(c60val)
    AttributeError: 'str' object has no attribute 'append'
    Ça c'est une autre erreur, comme déjà dit, ce n'est pas correcte car c60 est une string et non une liste ---> les string n'ont pas de méthode 'append'...

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

Discussions similaires

  1. Assigner le resultat d'une requète à une variable
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/08/2009, 11h26
  2. [VB6] Comment formatter une variable heure avec MS
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/10/2006, 13h20
  3. Réponses: 13
    Dernier message: 30/05/2006, 16h00
  4. [MFC] initialiser une variable a l'heure courante
    Par jiraya43 dans le forum MFC
    Réponses: 4
    Dernier message: 09/05/2006, 16h13
  5. Réponses: 2
    Dernier message: 13/03/2006, 11h47

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