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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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?

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