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 classe et listes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 31
    Par défaut Problème classe et listes
    Bonsoir ,

    J'aurai besoin d'aide
    Je souhaite créer une classe "etudiant" avec nom , prenom , date de naissance .. et une liste de notes que l'utilisateur doit saisir lui même et ensuite tout afficher y compris la liste de notes .

    Mon problème est pour afficher la liste .
    Si quelqu'un à une idée .. je vous mets ou j'en suis

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    class etudiant:
            def __init__(self,nom="kj",prenom="jj",j=1,m=2,a=1998,note=[]):
                    self.nom=nom
                    self.prenom=prenom
                    self.j=j
                    self.m=m
                    self.a=a
                    self.note=[]
     
            def saisie(self):
                    self.nom=str(input("entrez nom "))
                    self.prenom=str(input("entrez prenom"))
                    self.j=int(input("entrez jour"))
                    self.m=int(input("entrez mois"))
                    self.a=int(input("entrez annee"))
     
     
            def note(self):   
                    x=int(input("entrez le nombres de valeurs"))
                    notee=[]
                    for i in range (1,x+1):
                            n=int(input("entrez une valeur"))
                            notee.append(n)
     
     
     
            def affiche(self):
                    print(self.nom , self.prenom , self.j,"/",self.m,"/",self.a )
     
     
     
    e=etudiant()
    e.saisie()
    e.note()
    e.affiche()
    Merci

  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,

    Citation Envoyé par Lyly321 Voir le message
    Mon problème est pour afficher la liste .
    Si vous avez une liste de nombres L = [ 1, 2, 3, 4, 5 ] comment feriez vous pour en afficher une valeur par ligne?

    ligne 34: çà doit planter avec un message du genre TypeError: 'list' object is not callable car vous "surchargez" ligne 8 l'attribut "note" par la liste vide plutôt que de laisser appeler la méthode "note" définie ligne 18...
    Donc vous avez déjà un problème pour saisir cette liste...

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

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 31
    Par défaut
    bonsoir ,

    Quand j'essaye d'enlever les "[]" a self.note=[] j'ai AttributeError: 'etudiant' object has no attribute 'note'
    Puis si j'ajoute print(self.note) sa m'affiche seulement "[]" et pas la liste avec les valeurs que j'ai saisie manuellement lors de l'exécution du programme

    Merci

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

    Ce que l'on veut te dire est que les méthodes (fonctions des classes) sont vues aussi comme des attributs de cette classe et dans ce cas ci de l'instance.

    Dans __init__ remplace self.note=[] par self.note() et observe le résultat.

    Dans la méthode note() le nom notee sera supprimé aussitôt que la fonction aura été exécutée. Tu dois en garder une référence avec self

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    J'ajoute quelques petites informations,


    1. Les classes doivent être nommées avec une majuscule donc Etudiant.
    2. Les variables doivent être des mots, qui représentent ce que vous faîtes, et non une simple lettre non représentative.
    3. Une fonction dans 95% des cas doit retourner quelque chose (utilisation du mot clé return)


    Bonne continuation...

  6. #6
    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
    4. le nom d'une fonction devrait contenir un verbe

Discussions similaires

  1. [Débutant] Problème suppression élément List(of classe)
    Par GuillaumeNcy dans le forum VB.NET
    Réponses: 7
    Dernier message: 17/04/2014, 14h03
  2. STL Problème avec une liste d'instances de class
    Par BruceBoc dans le forum SL & STL
    Réponses: 12
    Dernier message: 16/02/2007, 14h12
  3. problème classe et fonction
    Par zmatz dans le forum C++
    Réponses: 14
    Dernier message: 19/10/2005, 21h46
  4. [STL]Problème itérateur avec list
    Par Fiquet dans le forum SL & STL
    Réponses: 7
    Dernier message: 03/10/2005, 17h54

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