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 :

[DEB] Passage de paramètres entre fonctions Graphe [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
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut [DEB] Passage de paramètres entre fonctions Graphe
    Bonjour,
    Je poursuis mon étude de graphe de relation avec le livre Data science from scratch.(voir un post un peu plus bas mais avec un sujet différent)
    Le livre est en PYTHON 2 mais je suis en python 3
    Le problème se situe à la dernière ligne du programme.Une fonction qui fait appel à deux autres fonctions
    Voici le message erreur très simplifié

    NameError: name 'other_use' is not defined
    Ce sont les deux lignes

    if not_the_same(user,foaf)\
    and not_friends(user,foaf))

    qui créent le pb car si on les enlève ,la fonction counter produit bien un résultat.
    Apparement le passage de paramètres ne se fait pas

    Merci d'avance à ceux qui pourront m'aiguiller dans le passage de paramètres

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
     
    from collections import Counter
     
    def number_of_friends(user):
        global a
        """how many friends does_user_have?"""
        a= len(user["friends"])
        print("afonction",a)
        return len(user["friends"])
     
     
     
    def friends_of_friends_ids_bad(user):
    #foaf est un raccourci pour friend of a friend
        return [foaf["id"]for friend in user["friends"]for foaf in friend["friends"]]
     
    def not_the_same(user,other_user):
        #deux users ne sont pas les m^mes s'ils ont des 'id' différents
        return user["id"] != other_user["id"]
     
    def not_friends(user,other_user):
        #other_use is not a friend s'il n'est pas dans user["friends"]
        #c'est le cas s'il n'est pas le même que tous les gens de user["friends"]
        return all(not_the_same(friend,other_user) for friend in user["friends"])
     
    def friends_of_friends_ids(user):
        return Counter(foaf["id"]\
                        for friend in user["friends"]\
                        for foaf in friend["friends"]\
                        if not_the_same(user,foaf)\
                        and not_friends(user,foaf))                  
    #pour chacun de mes amis
    #compte leurs amis                  
    #qui ne sont pas moi                  
    #et qui ne sont pas mes amis
     
    #Programme                     
    ##########################################################################
    users=[{"id":0,"name":"Hero"},
           {"id": 1,"name":"Dunn"},
           {"id":2,"name":"Sue"},
           {"id":3,"name":"Chi"},
           {"id":4,"name":"Thor"},
           {"id":5,"name":"Clive"},
           {"id":6,"name":"Hicks"},
           {"id":7,"name":"Devin"},
           {"id":8,"name":"Kate"},
           {"id":9,"name":"Klein"}
     
     
           ]
     
    friendships=[(0,1),(0,2),(1,2),(1,3),(2,3),(3,4),
                 (4,5),(5,6),(5,7),(6,8),(7,8),(8,9)]
     
    #creation d'une liste d'amis à partir de users
    for user in users:
     
     
        user["friends"]=[]
     
    #les amis sont créés à partir de fiendships
     
    for i,j in friendships:
     
        #on lit les tuples
        users[i]["friends"].append(users[j])#add i as a friend of j
        users[j]["friends"].append(users[i])#add j as a friend of i
     
    #test des fonctions
     
    print("foaf=",friends_of_friends_ids_bad(users[0]))
     
     
    #fonction qui pose des problèmes de passage de paramètres
    print("fonct",friends_of_friends_ids(users[3]))

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Bonjour,

    il semble que tu aies fait une faute de typo à la ligne 19. Ta variable s'appelle other_user et non pas other_use.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut
    Bonjour
    Merci et désolé pour cette faute de typo, mais celà ne marche tjrs pas.
    J'ai rectifié dans le code la faute de typo
    Voici la dernière ligne du message d'erreur

    TypeError: list indices must be integers or slices, not str

    Merci de m'avoir accordé de votre temps

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Ligne 25: je pense que c'est user["friend"] au lieu de users["friend"]

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut

    ça marche
    merci
    PS pour ceux que cela peut intéresser , en principe j'ai corrigé le code du premier message

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

Discussions similaires

  1. Passage de paramètres entre page
    Par philou8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 18h54
  2. Passage de pointeurs entre fonctions
    Par mickael.be dans le forum Langage
    Réponses: 3
    Dernier message: 02/01/2006, 21h01
  3. passage de paramètre entre formulaire et état
    Par thufir hawat dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 22h32
  4. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 11h14
  5. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 13h58

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