Ma programme affiche : Process finished with exit code 0 lors de l'exécution sans lire mes instructions

Salut à tous, je viens vers vous demander de l’aide.

En effet,
Je suis un jeune développeur et je suis actuellement en train d’apprendre python et je m’inspire du livre Apprendre à programmer avec python de Gérard Swinnen car j’aimes lire des livres.

Je suis actuellement sur le chapitre sur la programmation orientée objet, plus particulièrement sur la création des classes, objets et attributs et voici mon problème :

J’ai écrit un code pour calculer la distance entre deux points en utilisant une fonction, une classe et deux objets. Mon code n’affiche pas d’erreur mais aussi exécutes pas les instructions souhaitées !


Comment exécutes-tu ton programme ?

(Aussi, évite les captures d’écran, ce n’est pas pratique pour les aveugles, ni pratique si on veut tester, tu peux mettre ton code entre une ligne qui contient : ```python et une ligne qui contient ```, de cette manière l’indentation sera conservée et de la jolie coloration syntaxique sera utilisée (comme avec une capture d’écran :D)

1 « J'aime »

Bonjour,

Clairement, la définition de ta classe pose problème. Tu ouvres la classe (la ligne avec “:” à la fin) sans jamais la fermer.

Ok merci, je n’étais pas au courant.

Je vais créer un dépôt

Bonsoir @Mindiell sincèrement, je n’ai pas bien compris le sens de votre remarque

Lien du dépôt

Hello,

Est ce que ton programme t’invite au moins à rentrer les valeurs des points ?

Sinon au passage (c’est pas très grave) tu n’as pas besoin d’utiliser la fonction ‘abs’ vu que c’est un carré. C’est quoi les sorties du programmes il n’affiche rien du tout ?

Non, justement je ne suis pas invité à rentrer des valeurs.
et ils n’affichent rien juste que le programme a été bien exécuté sans erreur

ça passe nickel chez moi:

$ python t.py 
Entrez l'abscisse de A: 2
Entrez l'ordonnée de A: 3
Entrez l'abscisse de B: 1
Entrez l'ordonnée de B: 5
2.23606797749979
1 « J'aime »

D’accord, le problème est donc à mon niveau !
Au moins, c’est bon de savoir que ça passe bien. Merci encore

vu qu’il y a un espace dans le nom du fichier vérifie si tu l’échappe bien comme ici:

$ python Exercice\ 11.1.py 
Entrez l'abscisse de A: 0
Entrez l'ordonnée de A: 0
Entrez l'abscisse de B: 3
Entrez l'ordonnée de B: 4
5.0

En général c’est à éviter les espace dans les noms de fichiers surtout les exécutables. ça facilite la vie.

1 « J'aime »

Je ne comprends pas trop la remarque : en Python il n’y a pas de marqueur de fin, c’est l’indentation qui ferme la classe.

La classe est donc fermée à la ligne 10 (puisque la ligne 11 n’est plus indentée) et ne contient qu’une documentation.


Ah et au fait en Python 3 il n’est plus nécessaire d’hériter explicitement d’object en créant une classe.

1 « J'aime »

En voilà une précision à la fin très intéressante mais dont je n’ai pas bien saisi le sens grand @entwanne

@entwanne répondait à @Mindiell qui disait :

Clairement, la définition de ta classe pose problème. Tu ouvres la classe (la ligne avec “:” à la fin) sans jamais la fermer.

Et, en effet :

class Point(object):

seul n’est pas valide, après un : il faut quelque chose (d’indenté).

Tu peux le tester avec un fichier contenant :

class Point(object):

a = Point()

tu obtiendras l’erreur suivante :

IndentationError: expected an indented block after class definition on line 1

Mais en réalité ton code est bon car ta classe n’est pas vide : elle contient une docstring (la chaîne de caractère) :

class Point(object):
    """Classe d'objets de point permettant de créer des objets point similaire"""

est donc valide. Minimaliste, mais valide.

1 « J'aime »

Oui, je m’étais mal exprimé, désolé.
Je constatais donc que la définition de la classe était plus que sommaire et que ça me semblait plus à même de rendre les choses indigestes et incompréhensibles.

a minima, un truc comme ça :

class Point:
    def __init__(self):
        self.x = 0
        self.y = 0

me semble déjà plus clair pour comprendre qu’un point est formé d’une paire de valeurs.

Sinon, peux-tu nous dire ce que tu as à l’écran lorsque tu exécutes le programme ? Depuis la ligne où tu lances le programme (qu’on comprenne ce que tu lances comme commande) jusqu’à la fin du programme ?

Merci,

PS: ton dépôt de départ n’existe déjà plus et tes autres dépôts ne semblent pas contenir ce qu’on en attend. Le mieux étant d’éviter d’y mettre ce qui est lié à ton environnement virtuel, mais c’est un autre sujet :slight_smile:

Bonjour @Mindiell et désolé pour le retard.

En effet le problème d’affichage était de mon côté et j’ai pu le régler.
Merci encore