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 :

problème avec liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 98
    Par défaut problème avec liste
    bonjour,
    voici le code que j'ai écrit qui consiste a remplir une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import random
     
    def remplissage(t[]):
        for i in range (0,99):
            t[i]=random.randrange()
     
     
    remplissage (tab[])

    j'ai l erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    "C:\Users\Administrateur\PycharmProjects\trier une liste\venv\Scripts\python.exe" "C:/Users/Administrateur/PycharmProjects/trier une liste/tri.py"
      File "C:/Users/Administrateur/PycharmProjects/trier une liste/tri.py", line 3
        def remplissage(t[]):
                         ^
    SyntaxError: invalid syntax
     
    Process finished with exit code 1
    il y a un decalage sur la fleche elle est sur le crochet

    merci

  2. #2
    Membre très actif
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 98
    Par défaut
    j'ai avancé mais je comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import random
     
     
    def remplissage(t=[]):
        for i in range(0, 100):
            t[i] = random.randrange(0,99,1)
     
     
    tab=[]
    remplissage(tab)
    erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    "C:\Users\Administrateur\PycharmProjects\trier une liste\venv\Scripts\python.exe" "C:/Users/Administrateur/PycharmProjects/trier une liste/tri.py"
    Traceback (most recent call last):
      File "C:/Users/Administrateur/PycharmProjects/trier une liste/tri.py", line 10, in <module>
        remplissage(tab)
      File "C:/Users/Administrateur/PycharmProjects/trier une liste/tri.py", line 6, in remplissage
        t[i] = random.randrange(0,99,1)
    IndexError: list assignment index out of range
     
    Process finished with exit code 1
    merci

  3. #3
    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,

    Citation Envoyé par jm41320 Voir le message
    j'ai avancé mais je comprend pas
    Lancez l'interpréteur Python et essayez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> t = []
    >>> t[0]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
    >>>
    une liste vide n'ayant pas d'élément, en essayant d'accéder au premier (t[0]) çà plante.

    Il vous reste à ouvrir votre tuto. préféré au chapitre des listes pour revoir comment elles fonctionnent et en particulier comment ajouter des éléments à une liste (puisqu'il semble que ce soit ce que vous cherchez à faire).

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

  4. #4
    Membre très actif
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 98
    Par défaut
    comme ca?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import random
    from typing import List, Any
     
     
    def remplissage(t= []):
        t.append(0)
        for i in range(1, 100):
            t.append(random.randrange(0 , 100, 1))
     
     
    tab=[0]
     
    remplissage(tab)
    merci

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par jm41320 Voir le message
    comme ca? def remplissage(t= [])
    Attention, une fonction est avant tout un objet qui est créé quand elle est lue par Python. Les valeurs par défaut sont donc créées avec l'objet et non quand elle est appelée.
    Tant que ce sont des valeurs simples (int, str) ça va mais dès que ce sont des éléments complexes (tableaux, dictionnaires) ça ne va plus car ces éléments sont stockés dans l'objet fonction et s'ils sont modifiés, ils le sont définitivement

    Ainsi cette fonction
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def fct(n, tab=[]):
        tab.append(n)
        print(tab)
    produira le résultat suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> fct(1)
    [1]
    >>> fct(2)
    [1, 2]
    >>> fct(3)
    [1, 2, 3]
    Pour avoir le comportement souhaité, il faut définir une valeur par défaut simple (ex None) et tester cette valeur
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def fct(n, tab=None):
        if tab is None: tab=[]
        tab.append(n)
        print(tab)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    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,

    Citation Envoyé par jm41320 Voir le message
    comme ca?
    Ca marche ... mais votre code est tout pourri.

    Dès le départ vous avez un soucis rien que dans la définition de ce que doit faire votre fonction: créer une liste à N éléments choisis aléatoirement dans 0, 100? Où ajouter ce N éléments à une liste existante?
    Et en écrivant: def remplissage(t= []) vous acceptez un peu les deux mais comme votre fonction ne retourne pas la liste créée si elle est appelée sans argument, c'est juste bancale: on bouche des trous au cas où sans en tirer les conséquences.

    A la fin on a un code qui est tombé en marche par chance mais qui n'a pas été pensé, construit.

    Ouvrez un tuto. il y a des explications, des exos corrigés (qui vous montrent comment on écrit raisonnablement un code) qui peuvent vous servir de base.

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

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

Discussions similaires

  1. [SQL] Problème avec liste déroulante et select
    Par cari dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/07/2006, 20h52
  2. Problème avec listes déroulantes
    Par dl_jarod dans le forum Langage
    Réponses: 9
    Dernier message: 07/06/2006, 10h13
  3. Réponses: 20
    Dernier message: 22/03/2006, 14h00
  4. Problème avec liste déroulante
    Par Invité dans le forum IHM
    Réponses: 2
    Dernier message: 14/12/2005, 21h04
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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