IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre à programmer avec Python 3
De Gérard Swinnen, un livre à lire et à télécharger gratuitement sur Développez

Le , par Lana.Bauer

0PARTAGES

6  0 
Bonjour,

Nous avons le plaisir de vous présenter le livre Apprendre à programmer avec Python 3, de Gérard Swinnen à consulter ou à télécharger gratuitement.

Conçu à l'origine pour les élèves de l'enseignement secondaire belge, ce cours expérimental s'efforce de présenter l'apprentissage de la programmation sous une forme attrayante, avec de nombreux exemples et exercices graphiques.

La version papier de ce livre est disponible sur Amazon à cette adresse


Voir aussi : Les tutoriels et cours de formation pour apprendre la programmation Python.

Bonne lecture
Vous avez lu gratuitement 9 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Laine
Membre confirmé https://www.developpez.com
Le 10/11/2013 à 22:46
Livre magnifique pour apprendre Python
Je le lis avec plaisir

Merci beaucoup pour ce partage
2  0 
Avatar de RenaudMarseille
Candidat au Club https://www.developpez.com
Le 06/08/2021 à 21:46
Merci à Monsieur Gérard Swinnen pour ce travail énorme et de très grande qualité.
Je vais acheter le livre.
1  0 
Avatar de Pierrot92320
Membre régulier https://www.developpez.com
Le 06/01/2014 à 12:09
Bonjour

Il me semble que l'exercice 12.5 comporte une erreur : la surface d'un cylindre de rayon 5 et de hauteur 7 ne vaut pas 78.54.

Je pense qu'il aurait fallu surcharger la méthode Cercle.surface pour l'adapter au cylindre.

On trouve la même erreur dans la version html (voir exrcice 12.5) qui est proposée sur le site.

Pierre
0  0 
Avatar de VinsS
Expert éminent https://www.developpez.com
Le 06/01/2014 à 14:35
Salut,

Dans l'énoncé il est question de surface de section.

surface() (qui aurait mieux été nomée aire) est héritée de Cercle.

Le résultat est donc exact, mais il ne s'agit pas de la surface du cylindre.

Cela dit, je comprend la confusion, donner une méthode surface() à un objet sachant que cette méthode ne retournera pas la surface de l'objet n'est pas judicieux.
0  0 
Avatar de Pierrot92320
Membre régulier https://www.developpez.com
Le 06/01/2014 à 15:05
Citation Envoyé par VinsS Voir le message

Cela dit, je comprend la confusion, donner une méthode surface() à un objet sachant que cette méthode ne retournera pas la surface de l'objet n'est pas judicieux.
Je suis d'accord. J'ai donc fait l'exercice en surchargeant la méthode Cercle.surface() pour l'adapter au cylindre.

Mais j'ai un problème pour le cône car il n'existe pas de formule donnant la surface d'un cône quelconque. Il faudrait donc supprimer la méthode surface pour la classe Cone, ce qui induit une question (probablement assez bête) :

Comment fait-on pour supprimer une méthode héritée de la classe parent ?

Merci de votre aide
0  0 
Avatar de VinsS
Expert éminent https://www.developpez.com
Le 06/01/2014 à 15:26
Toujours en la surchargeant dans la classe Cone()

Code : Sélectionner tout
1
2
3
4
5
6
Class Cone(Cercle):
    ...

    def surface(self):
        raise NotImplementedError('Cone has no method surface')
0  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 06/01/2014 à 17:28
Citation Envoyé par VinsS Voir le message
Cela dit, je comprend la confusion, donner une méthode surface() à un objet sachant que cette méthode ne retournera pas la surface de l'objet n'est pas judicieux.
Au contraire, ça montre que ce qu'on lit dans le code et ce que fait le code sont deux aspects/points de vue différents:
- le service rendu a l'utilisateur,
- la réalisation de ce service.
Si la méthode était nommée "X12345", il aurait fallu ajouter des commentaires pour savoir ce que ça fait et il n'y aurait pas d’ambiguïté sur le nom.
Cela illustre bien hiatus et confusions qu'il peut y avoir entre OO et POO.
- W
0  0 
Avatar de Pierrot92320
Membre régulier https://www.developpez.com
Le 06/01/2014 à 18:52
Citation Envoyé par VinsS Voir le message
Toujours en la surchargeant dans la classe Cone()

Code : Sélectionner tout
1
2
3
4
5
6
Class Cone(Cercle):
    ...

    def surface(self):
        raise NotImplementedError('Cone has no method surface')
J'ai essayé ce code. Il provoque une exception lors de l’exécution :

NotImplementedError: Cone has no method surface

Je pense que c'est cela qui ce est attendu ?

Mais avec ce code la classe Cone() possède toujours une méthode surface(). On ne peut pas l'éliminer complètement ? On obtiendrait aussi une exception je pense mais ce serait plus élégant non ?
0  0 
Avatar de VinsS
Expert éminent https://www.developpez.com
Le 06/01/2014 à 19:53
@ wiztricks, je m'en tenais au nommage de la méthode

Explicit is better than implicit.
@ Pierrot92320,
Oui bien sur, cela lève une erreur, mais tu peux remplacer le raise par un pass ou un return ou un message de logging selon la destination de ton code, librairie, frontend, utilitaire ou autre
0  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 06/01/2014 à 20:12
Citation Envoyé par VinsS Voir le message
@ wiztricks, je m'en tenais au nommage de la méthode
Explicit is better than implicit.
Le nom d'une méthode est toujours explicite.
La confusion vient du concept que vous allez "implicitement" attacher.
Que vous lui donniez le nom de "surface", de "z123" ou de "base" ne donne aucune information "explicite" sur ce qui est calcule.
A temps perdu essayez de lire ceci. en particulier, les paragraphes sur les noms d'oiseaux.
- W
0  0