Programme Python ne fonctionne pas

Résolu
johnnybill Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai suivi une video pour faire ce programme Python mais il ne marche absolument pas, quelqu'un aurait une solution?




Configuration: Windows / Firefox 96.0

4 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Hormis le fait que l'erreur est claire sur le problème.

Merci d'utiliser la coloration syntaxique : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Bonjour,

Juste en se référant au message d'erreur il est indiqué que def étant un bloc dépendant de class il devrait devrait être indenté, pas au même niveau que class
0
Utilisateur anonyme
 
Bonsoir

on ne le dira jamais assez, les vidéo c'est pas le pied pour apprendre la programmation.
https://forums.commentcamarche.net/forum/affich-36859630-cours-sur-le-c#10 j'avais exposé plus ou moins le fond de ma pensée sur le sujet.
Dans ton cas, on pourrait ajouter que mettre la vidéo en pause pour recopier le code donne généralement une image floue (dès qu'il y'a compression y'a perte mais le cerveau intègre plusieurs images de suite et l'image reste visuellement nickel) donc moins facile à recopier. Sur un site ou un pdf, on peut faire un copier coller...
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bonjour,

Comme le dit fort justement NHenry : merci de ne pas mettre de capture d'écran quand c'est possible et plutôt de copier coller le code et l'éventuel message d'erreur en utilisant les balises de codes.

Comme l'indique for justement ton IDE, NHenry et jeepee, ton code est mal indenté. Si l'indentation est recommandée dans la plupart des langages, elle est obligatoire en python car selon elle, le code n'est pas compris de la même façon par python.

En terme de tutoriel, mettre un print dans le constructeur est discutable car tu n'as pas forcément envie d'écrire un message quand tu crées un joueur. Ensuite je te recommande de systématiquement mettre le shebang en début de fichier et la ligne qui autorise l'utilisation de caractères UTF-8 voir ci-dessous.

Dans ton cas le code devrait donc ressembler à ceci :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Player():
    def __init__(self, pseudo, health, attack):
        self.pseudo = pseudo
        self.health = health
        self.attack = attack
    def __str__(self):
        return f"Joueur {self.pseudo}, attaque {self.attack}, santé {self.health}"

p1 = Player("Joueur 1", 20, 3)
print(p1)
p2 = Player("Joueur 2", 10, 6)
print(p2)

ce qui donne :
Joueur Joueur 1, attaque 3, santé 20
Joueur Joueur 2, attaque 6, santé 10

Bonne chance
0