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 :

Python, fonction python


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut Python, fonction python
    Salut, alors j'ai un petit probleme, je n'arrive pas a lancer mon programme par des fonction.En fait j'ai un programme a faire pour un projet mais je dois faire passer les différente étape du programme par des fonctions,le probleme c'est que en lancant mes fonctions succesivement pour arriver a la fin du programme, je n'arrive pas a utiliser le liste de la première fonction comme paramètre de la fonction suivante.
    voila mon 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
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    N=452
    def pixelisation(f):   
        import matplotlib.pyplot as plt
        N=452
        C=open(f,'r') 
     
        matrice=[]
        ligne=C.readline()
        for a in range(N):
            piligne=[]
            s=ligne.split()
            for element in s:
                element=int(element)
                piligne.append(element)
               #ici on a la liste de la premiere ligne
     
            m=[]
            c=0
            for i in range(N):        
                m.append([])
                for j in range(3):
                    m[i].append(piligne[c])
                    c=c+1
            ligne=C.readline()
            matrice.append(m)
     
        plt.imshow(matrice,cmap = plt.get_cmap('gray'),interpolation='none')
        plt.show()
        return matrice
     
     
        #ici on a recuperer la matrice de pixel de limage par rapport au fichier txt
     
     
    def pointbleu(M):    
        P=[]
     
        for x in range(N):
            for y in range(N):
                for z in range(3):
                    a=M[x][y][z]
                    if 200<a:
                        P.append((x,y))
     
     
     
     
     
    def pinoyaux(l):
        listeN=[]
        for x in range(N):
            for y in range(N):
                if (x,y) in l:
                    trouve = False
                    for noy in listeN:
                        if (x+1,y) in noy or (x-1,y) in noy or (x,y+1) in noy or (x,y-1) in noy or (x+1,y+1) in noy or (x-1,y+1) in noy or (x+1,y-1) in noy or (x-1,y-1) in noy:
                            noy.append((x,y))
                            trouve = True
                    if trouve == False:
                       listeN.append([(x,y)])
     
     
     
     
    def positionN(l):
        moycoor=[]
        for x in range(30):
            moycoor.append([])
        posx=0
        posy=1
        for x in range(30):
            sommex=0
            sommey=0
            a=len(l[x])
            for y in range(a):
                sommex=l[x][y][posx]+sommex
                sommey=l[x][y][posy]+sommey
            moyx=sommex/len(l[x])
            moyy=sommey/len(l[x])
            moycoor[x].append((round(moyx),round(moyy)))
        print(moycoor)    
     
     
     
     
     
    pixelisation('SerieC.txt')
    pointbleu(matrice) #matrice est laliste crée a la fin de la fonction pixelisation
    Jai dautre fonction par la suite mais sa bloque ici et je pense que la maniere de resoudre ce probleme sera le meme pour les fonction suivante.
    Merci de votre aide!!

  2. #2
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    bonjour,

    Ici le code ne connait pas la variable matrice:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pixelisation('SerieC.txt')
    pointbleu(matrice)
    tu as bien un return matrice dans la fonction pixelisation mais tu ne récupères pas ce retour.

    pour que cela fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    matrice = pixelisation('SerieC.txt')
    pointbleu(matrice)

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

    Ta fonction pixelisation retourne cette matrice, donc il faut que tu récupères ce retour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    matrice = pixelisation('SerieC.txt')

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    mdr merci a tous je viens exactement de trouver ce que vous venez de mindiquer!! mais merci bcp sa confirme bien ce que jai fais.
    Mais du coup je suis encore "bloqué" on va dire, vous auriez une piste a me donner? J'ai mes liste moycoor qui se crée et j'aimerai les inclure dans un dictionnaire au fur et a mesure de leur création pour avoir un dico de liste en gros.
    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
    import matplotlib.pyplot as plt
    C=open('SerieC.txt','r')
    dicpt={}
    ligne=C.readline()
    for x in range(60):
     
        matrice=[]
     
        for a in range(452):
            piligne=[]
            s=ligne.split()
            for element in s:
                element=int(element)
                piligne.append(element)
               #ici on a la liste de la premiere ligne
     
            m=[]
            c=0
            for i in range(452):        
                m.append([])
                for j in range(3):
                    m[i].append(piligne[c])
                    c=c+1
            ligne=C.readline()
            matrice.append(m)
     
     
     
        P=pointbleu(matrice)
        listeN=pinoyaux(P)
        moycoor=positionN(listeN)
        dicpt[(moycoor)]=x
     
        print(dicpt)
    masi jai ce msg qui apparait : unhashable type: 'list'

  5. #5
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Si je comprends bien la tu essaies de mettre tes listes en clé du dictionnaire, ce qui n'est pas permis car la clé d'un dictionnaire doit être un type non mutable par exemple : str(), tuple
    il faut plutôt écrire mon_dico[key] = ma_liste ou key est un objet non mutable et ma_liste est la liste que tu veux mettre dans le dico.

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Alors en fait le projet cest que je travail sur des deplacement de cellule, si tu veux jai un dossier txt avec plein de chiffre presenter de cette facon : 0 0 0 0 1 15 255...
    et je dois reperer les centre des noyaux en gros, jai donc une liste des coordonnées des 30 noyauxs pour une image(il ya 60 image en tout. Et je dois calculer la vitesse de deplacement des cellules, je dois dont comparer la position du noyaux 1 de la premiere image (donc de la premiere liste générer) avec sa position sur limage d'apres et ainsi de suite, je me suis dis que a laide dun dico qui me permettrai davoir le numero de limage correspondant avec la liste des position de ces point pour ensuite pouvoir calculer les vitesses. Je vois pas si tu vois ce que je veux dire

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    ou tu aurais une idée qui me permetrai quye a chaque liste que je crées grace au programme, chaque liste prendrai le numero de son image correspondant. C'est a dire créer de sliste grace a une boucle qui crée genre: listeimage0 puis listeimage1 puis listeimage2 etc?

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par Momo77230 Voir le message
    ou tu aurais une idée qui me permetrai quye a chaque liste que je crées grace au programme, chaque liste prendrai le numero de son image correspondant. C'est a dire créer de sliste grace a une boucle qui crée genre: listeimage0 puis listeimage1 puis listeimage2 etc?
    Ca s’appelle une liste de listes L[0] contenant les position des 60 noyaux de la 1ère image, L[1] les 60 positions dans la 2ème image,...
    Et la position du noyau i dans l'image j s'écrira L[j][i].

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

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Ouai je me doutais de sa masi le truc cest que regarde comment le sujet est ecris:
    Chacun des 30 noyaux se déplace relativement peu d’une image à l’autre. Pour relier entre elles
    les positions des noyaux sur les 30 images, nous considérons que le noyau Nt (un noyau sur l’image
    au temps t) est le même que le noyau N’t-1 (sur l’image à t-1) si les coordonnées de N’t-1 sont les plus
    proches de celles de Nt parmi toutes celles des noyaux de l’image à t-1. On peut ainsi reconstituer,
    pour chacun des 30 noyaux, une liste de ses 60 positions
    Je veux arriver a ce resultat quoi... sa me prend la tete mdr

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par Momo77230 Voir le message
    Je veux arriver a ce resultat quoi... sa me prend la tete mdr
    Certes mais pour arriver à faire çà, il faut d'abord définir une méthode/algorithme pour passer de la première image et ses 30 positions de noyaux à comparer aux positions des 30 noyaux trouvés dans la 2nd image et les classer de sorte que le i-ème noyau de la première image soit bien le i-ème noyau de la seconde.

    On peut faire çà "bourrin" en calculant toutes les "distances" mais à priori, vous êtes en train de faire un exo. de traitement d'image donc utiliser les algos qui vous ont été présenté à un cours dont on ignore le contenu.

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

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Oui je vois, je suis entrain dessayer de le faire, et nan on a pas vraiment vu dalgo 'utile' les prof prefere dabord quon arrive a bien comprendre en codant dans le lalgo pur on va dire.
    Merci de ta reponse je vais essayer de faire un truc je reviendrai si je suis vraiment bloqué

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. [Python Web] Cherche des fonctions ...
    Par kedare dans le forum Réseau/Web
    Réponses: 25
    Dernier message: 05/10/2006, 14h07
  3. nom de fonction python
    Par deb75 dans le forum Général Python
    Réponses: 4
    Dernier message: 31/03/2006, 21h54
  4. Fonction addslashes sous Python ?
    Par ecocentric dans le forum Général Python
    Réponses: 2
    Dernier message: 28/01/2006, 18h27
  5. fonction python similaire à find en bash
    Par deb75 dans le forum Général Python
    Réponses: 1
    Dernier message: 21/12/2005, 11h48

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