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 :

un souci avec des listes (python3)


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Par défaut un souci avec des listes (python3)
    bonjour à tous et toutes,
    en suivant un tuto je tombe sur un exercice me demandant d'utiliser 3 listes et de ce fait obtenir un pseudo calendrier. alors j'arrive à peu près a obtenir le calendrier mais le souci c'est que le 30 de chaque mois disparaît. bien sûr je ne vois pas l'erreur qui se situe face à moi aussi j'aurai besoin de vos lumières pour m'aiguiller.
    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
    b=['jeudi','vendredi','samedi','dimanche','lundi','mardi','mercredi']
    c=['janvier','fevrier','mars','avril','mai','juin','juillet','aout','septembre','octobre','novembre','decembre']
     
    ia=0	#indice liste a
    ib=0	#indice liste b
    ic=0	#indice liste c
     
    while ia< len(a):
     
    	if ia == len(a)-1 and ic == len(c)-1:
    		break
    	elif ib == len(b)-1:
    		ib = 0
    	elif ia == len(a)-1:
    		ia = 0
    		ic +=1
     
    	else:
    		print(b[ib],a[ia],c[ic])
    		ib+=1
    		ia+=1
    cdt

  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
    Salut,

    Python c'est beaucoup plus simple que ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    days = range(1, 31)
    names = ['jeudi','vendredi','samedi','dimanche','lundi','mardi','mercredi']
    months = ['janvier','fevrier','mars','avril','mai','juin','juillet',
        'aout','septembre','octobre','novembre','decembre']
     
    i = 0	#indice liste b
     
    for m in months:
        for d in days:
            print(names[i % 7], d, m)
            i += 1

  3. #3
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Bonjour

    ton code n'est vraiment pas pythonique mais, en phase d'apprentissage, on est parfois amené à utiliser des façons de faire qu'on nous demande, ensuite, d'oublier très vite. Là, dans ton exo, c'est vraiment les indices des listes qu'on t'incite à utiliser ?

    Sinon, faire un boucle while avec comme condition "tant qu'on n'est pas le 31" (dans l'exo, les mois ont 30 jours) et, à l'intérieur, faire un break quand on est le 31 du 13ieme mois, c'est un peu le bordel. Autant faire un while True:

    ** : je viens de voir la réponse de VinsS. Je poste quand même pour le problème de la condition du while et celle qui provoque le break

  4. #4
    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
    C'est vrai que l'OP aurait voulu savoir ce qui n'allait pas dans son code.

    Tu remet à zéro ou tu break lorsque ia == len(a)-1 soit 29 or le print est après ces lignes de code, donc 30 n'est jamais printé.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Par défaut
    bonjour et merci à tous
    alors non je ne suis pas obligé d'utiliser les indices, le fait est qu'en testant avec les boucles, for et while pour mon cas je n'arrivais pas a obtenir le resultat désiré. je me suis donc rabattu sur cette solution. la il se fait un peu tard je regarderai ca tout à lheure.

    cdt

Discussions similaires

  1. [Python 3.X] Encore des soucis avec les listes.
    Par marco056 dans le forum Général Python
    Réponses: 7
    Dernier message: 25/04/2015, 11h31
  2. Problème avec des listes et des variables
    Par Knuckles dans le forum Général Python
    Réponses: 3
    Dernier message: 09/05/2006, 18h24
  3. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 20h13
  4. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  5. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45

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