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 sur python 3.3


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 54
    Points : 98
    Points
    98
    Par défaut problème sur python 3.3


    voici 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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    import random
    import numpy
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    import matplotlib.colors as color
     
    Taille =  100
    ProportionArbre = 0.70
    Clairiere = int(0)
    Flamme = int(1)
    Cendre = int(2)
    Arbre = int(3)
     
    random.seed(5)
     
    #question 1 Fonction à prouver
    def ArbreAuHasard (p):
        if random.random() < p:
            return Arbre
        else:
            return Clairiere
     
    # question 2 Fonction à écrire
    def InitialiserForetAuHasard( taille , p):
        foret=numpy.zeros(shape=(taille,taille),dtype=int)
        for i in range(taille):
            for j in range(taille):
                foret[i,j]=ArbreAuHasard(p)
        return(foret)
     
    # questions 3 et 4 fonction à écrire    
    def Propagation( foret ):
        foret2=numpy.zeros((Taille+2,Taille+2),dtype=int)
        for i in range(1,Taille+1):
            for j in range(1,Taille+1):
                foret2[i,j]=foret[i-1,j-1]
        for i in range(1,Taille+1):
            for j in range(1,Taille+1):
                if foret2[i,j]==Flamme:
                    foret2[i,j]=Cendre
        for i in range(1,Taille+1):
            for j in range(1,Taille+1):
                if foret2[i,j]==Cendre and foret2[i,j-1]==Arbre:
                    foret2[i,j-1]=Flamme
                elif foret2[i,j]==Cendre and foret2[i,j+1]==Arbre:
                    foret2[i,j+1]=Flamme
                elif foret2[i,j]==Cendre and foret2[i+1,j]==Arbre:
                    foret2[i+1,j]=Flamme
                elif foret2[i,j]==Cendre and foret2[i-1,j]==Arbre:
                    foret2[i-1,j]=Flamme
        for i in range(1,Taille+1):
            for j in range(1,Taille+1):
                foret[i-1,j-1]=foret2[i,j]
        return(foret)
     
     
     
    # question 5 Code à executer    
    def code(taille,p):
        foret=InitialiserForetAuHasard( taille , p)
        print(foret)
        foret[int(Taille/2) , int(Taille/2)] = Flamme
        fig = plt.figure()
        im = []
        listeCouleurs = [[0,0,0]] * 4
        listeCouleurs[Clairiere] = [1,1,1] # Les clairières sont representées en blanc
        listeCouleurs[Flamme] = [1,0,0] # Les Flammes sont en rouge
        listeCouleurs[Arbre] = [0,1,0] # Les arbres sont de couleur verte
        listeCouleurs[Cendre] = [0.5,0.5,0.5] # Les cendres sont grises
        couleurs = color.ListedColormap(listeCouleurs)
        for n in range(2*Taille):
            im.append([plt.imshow(foret,interpolation='none',cmap=couleurs)])
            foret = Propagation(foret)
        ani = animation.ArtistAnimation(fig,im,interval=50,blit=True,repeat_delay=100)
        #plt.show()
        c=0
        a=0
        for i in range(taille):
            for j in range(taille):
                if foret[i,j]==Cendre:
                    c=c+1
                elif foret[i,j]==Arbre:
                    a=a+1
        print("Sur {} arbres, {} ont ete brules et il n'en reste plus que {}, ce qui fait {}% d'arbres brules".format(a+c,c,a,c/(a+c)*100))
        return(ani)
    #    
    #    
    #    
    #    
    # question 6 remplacer pass
    def PropagationRapide(foret, positionFlamme):
        foret2=numpy.zeros((Taille+2,Taille+2),dtype=int)
        for i in range(Taille):
            for j in range(Taille):
                foret2[i+1,j+1]=foret[i,j]
        for i in positionFlamme:
            foret[i]=Flamme
        for i in range(1,Taille+1):
            for j in range(1,Taille+1):
                foret[i-1,j-1]=foret2[i,j]
        return(foret)
     
     
    # question 7
    def comptageArbre(foret):
        a=0
        for i in range(Taille):
            for j in range(Taille):
                if foret[i,j]==Arbre:
                    a=a+1
        return a
     
    #
    # question 8 
    def comptageArbresRestants( tailleForet , probabiliteArbre):
        foret = InitialiserForetAuHasard(taille = tailleForet , probabiliteArbre = probabiliteArbre)
        positionFlammes = [[Taille//2 , Taille//2]]
        foret[Taille//2 , Taille//2] = Flamme
        compteur = 0
        while (compteur < tailleForet) and (len(positionFlammes) > 0):
            compteur += 1
            foret , positionFlammes = PropagationRapide(foret , positionFlammes)
        return comptageArbre(foret)
     
    def moyenneArbreRestants( tailleForet , probabiliteArbre , tailleEchantillon):
        s = 0
        for i in range(1,tailleEchantillon+1):
            s += comptageArbresRestants(tailleForet , probabiliteArbre)
        return s/float(i)
    j'essaye d'exécuter ce code pour x=[0;0.01;...;0.99;1] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> for i in x:
    ...     y[100*i]=moyenneArbreRestants(100,i,10)
    python me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
      File "C:/Users/KEVIN/Desktop/cours/info/TD01FichierReponse.py", line 137, in moyenneArbreRestants
        s += comptageArbresRestants(tailleForet , probabiliteArbre)
      File "C:/Users/KEVIN/Desktop/cours/info/TD01FichierReponse.py", line 125, in comptageArbresRestants
        foret = InitialiserForetAuHasard(taille = tailleForet , probabiliteArbre = probabiliteArbre)
    TypeError: InitialiserForetAuHasard() got an unexpected keyword argument 'probabiliteArbre'
    pourriez-vous m'expliquer mon erreur, je ne comprend pas SVP ?

    d'avance

  2. #2
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour

    la fonction InitialiserForetAuHasard est définie de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def InitialiserForetAuHasard( taille , p):
        ...
    Dans comptageArbresRestants, il y a l'instruction

    foret = InitialiserForetAuHasard(taille = tailleForet , probabiliteArbre = probabiliteArbre).

    D'où sort propbabiliteArbre (le premier, celui en gras) ???

    Revois l'appel des fonctions avec le nom des arguments et les arguments avec des valeurs par défaut !
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

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

Discussions similaires

  1. Problème avec fonction tuple sur Python 3.4.1
    Par inconnito2 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/12/2014, 12h57
  2. Problème de Serpent sur Python
    Par NovaVI dans le forum Programmation multimédia/Jeux
    Réponses: 6
    Dernier message: 28/12/2013, 17h21
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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