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 :

Définitions d'objets et de méthode


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Définitions d'objets et de méthode
    Bonjour tout le monde.
    Alors déjà je me présente, je débute en programmation. Je viens de m'inscrire sur votre site afin de compter sur votre aide qui pourrait m'être précieuse.

    Pour vous situer mon niveau actuel en programmation, je regarde des vidéos sur youtube par le biais de la chaîne "Graven-développement", je suis actuellement au 7e épisode de sa série sur le python, qui traite des objets.
    Jusque là je n'avais jamais eu de gros problème d'incompréhension mais j'avoue que dorénavant, cela commence à être difficile à suivre.

    Pour contextualiser, Graven nous fait créer des personnages avec différents attribut. On voit ensuite comment utiliser les fonctions afin de faire des textes avec les possibles actions que pourraient faire les personnages.
    Je dois avouer que je suis complètement perdu sur ce côté là.

    De plus, alors, que j'ai suivi à la lettre ce qu'il a fait (enfin je croyais), la console m'indique une erreur là où lui n'en a pas...

    Je vous met donc le code ci-joint ainsi que la réponse à la console juste après.
    Je tiens à rajouter que toute précision par rapport aux commentaires que j'ai fait dans mon développement et qui paraissent flous sont vivement acceptées ^^

    voici le 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
    #on créer une nouvelle classe : le joueur / on peut représenter ça comme un moule
    class Player:
       #on défini une fonction qui attribut les différentes caratcéristiqie du joueur
       def __init__(self, pseudo, health, attack):
     
           #on introduit ensuite les caractéristique dans le self
           self.pseudo = pseudo
           self.health = health
           self.attack = attack
           #on peut ensuite faire un message de bienvenue
           print("Bienvenue à toi", pseudo, "tu as" , health,"points de vie et", attack, " points d'attaque:")
     
       #méthode appelée guetteur ou ascesseur
       def get_pseudo(self):
           return self.pseudo
     
       def get_health(self):
           return self.health
     
       def get_attack(self):
           return self.attack
     
       #méthode de setteur
       #modifier/changer des valeurs
       def damage(self, damage):
     
           self.health -= damage
           print("Aie...vous venez de subir", damage, "dégâts !")
     
        def attack_player(self, target_player):
            target_player.damage(self.attack)
     
    #création d'une nouvelle instance = on fait un nouveau gâteau grâce au moule créé au préalable
    #Dans ce cas : ça crée un nouveau joueur
    #on met ensuite dans les paramètres (dans les parenthèse) les différentes options qu'il y a dans le moule
     
    player1 = Player("aXiy", 20, 3)
    player2 = Player("Alban", 30, 2)
     
    player1.attack_player(player2)
    print(player1.get_pseudo(), "attaque", player2.get_pseudo())
    print(player2.get_pseudo()"a désormais", player2.get_health(), "points de vie")
    Je pense qu'il y a une certaine manière pour faire paraître le code dans le message mais malheureusement je ne le connait pas...


    voici la réponse de la console :
    C:\Users\qoyl6\AppData\Local\Programs\Python\Python37\python.exe D:/Programmation/myfirstproject/Ep7/Objets.py
      File "D:/Programmation/myfirstproject/Ep7/Objets.py", line 30
        def attack_player(self, target_player):
                                              ^
    IndentationError: unindent does not match any outer indentation level
    
    Process finished with exit code 1
    Merci beaucoup pour votre attention et votre aide .
    Cordialement

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Même si vous n'êtes pas sûrs de ce que vous pensez être mon erreur, s'il-vous-plaît, signalez-le moi histoire que j'essaie votre proposition.

  3. #3
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    et bien une fois vous indentez avec espace, puis ligne 30 avec 4...
    Je vous conseil d'utiliser les tabulations

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par flapili Voir le message
    et bien une fois vous indentez avec espace, puis ligne 30 avec 4...
    Je vous conseil d'utiliser les tabulations
    Merci pour votre conseil, j'ai modifié cela dans mon éditeur de code, mais malheureusement cela ne corrige pas mon problème....

  5. #5
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 513
    Points : 700
    Points
    700
    Par défaut
    et bien il faut reprendre votre indentation depuis le début, et convertissez les indentations en tabulations.

    sur sublime text view -> indentation -> convert ..., sur notepadd++ edition -> traitement des espaces ... si vous utilisez un autre éditeur je ne connais que ces 2 là (à moins que vous utilisez qt creator pour du python )

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Flapili... Je vous remercie beaucoup, c'était en effet un problème de tabulation, et je pense avoir compris d'où venait mon problème. Mon programme a pu ainsi se lancer directement dans la console.
    J'avoue qu'au début la notion d'indentation n'était pas encore très claire pour moi car je ne savais même pas ce que cela voulait dire... ^^'

    Enfin, je clôture ce sujet. Merci beaucoup.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/01/2008, 16h24
  2. Réponses: 3
    Dernier message: 08/02/2007, 13h20
  3. [POO] Objet Date et méthode setYear()
    Par NikoBe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/12/2006, 18h37
  4. [objet] appeler une méthode d'objets contenus dans un tableau (iterator ?)
    Par psychomatt dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/09/2006, 16h28

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