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 !

Python, de zéro - Un cours complet pour apprendre la programmation Python,
Par Frédéric Lang

Le , par Sve@r

0PARTAGES

62  0 
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel :

Python, de zéro
Un cours qui se veut complet sur l'apprentissage de la programmation Python
Cet article est un cours qui se veut complet sur l'apprentissage de la programmation Python.

Il présentera comment faire ses premiers pas en Python et comprendre sa syntaxe, comment créer (et exécuter) ses premiers scripts, son typage allant du plus simple au plus complexe.

Il détaillera les chaînes, leur encodage et les différentes façons de les afficher. Il décrira aussi les fonctions et leurs paramètres dans différentes configurations, les itérables, les générateurs et la syntaxe des fameuses listes de compréhension. Puis il abordera l'objet en Python avec les classes et les métaclasses et enfin le gestionnaire de contexte et les décorateurs.

Et il terminera avec quelques petits exemples variés.

Il se veut complet, mais Python est vaste, donc toutes les notions présentées seront expliquées le plus clairement possible et généralement accompagnées d'un exemple ou deux, mais sans s'y attarder plus que cela, laissant le lecteur désireux de les approfondir devoir chercher ailleurs les détails ou exercices qui lui manqueront, comme sur cette page dédiée à différents exercices Python.

Bonne lecture

Retrouvez Les meilleurs cours et tutoriels pour apprendre Python.

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

Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 19/09/2022 à 12:42
Merci merci, ça fait plaisir
Mais en fait j'attends avec inquiétude l'avis de Wiztricks...

Pour les métaclasses moi non plus je ne les utilise jamais et c'est pour ça que ce chapitre a été l'un des plus difficiles à écrire. En fait, le plus difficile, c'est surtout de trouver des exemples le plus clairs possibles qui illustrent une notion peu utilisée.
3  0 
Avatar de zancrows
Membre averti https://www.developpez.com
Le 19/09/2022 à 11:32
Super tuto, je le trouve très clair et synthétique !

J'ai noté une petite erreur dans la section "IV-8. True, False, None" (je ne sais pas si c'est le bon endroit pour remonter ça)
Il manque une double quote ici:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
>>> "" == False
False
>>> "" == True
False
>>> bool("") == False
True
>>> print(ok" if not "" else "bad") # <- ici
ok
Je poursuis la lecture
2  0 
Avatar de Pyramidev
Expert éminent https://www.developpez.com
Le 23/09/2022 à 2:32
Citation Envoyé par Sve@r  Voir le message
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel :


Bravo pour l'effort. Je n'aurais pas eu la motivation d'écrire un tuto aussi long.

Citation Envoyé par papajoker  Voir le message
- Générateurs, je trouve très réducteur de ne voir que le "temporel" comme argument pour l'utiliser… Pour moi, ne consommer en mémoire qu'un élément et non une liste entière est le premier argument

Citation Envoyé par Sve@r  Voir le message
Ben pour tout dire, la mémoire était mon argument au début, celui que je présentais en cours quand j'expliquais les générateurs. Et puis un élève a dit "oui, effectivement on gagne de la mémoire mais en contrepartie on appelle plusieurs fois la fonction et chaque appel engendre un coût", argument sur lequel je n'ai pas su quoi répondre (probablement parce qu'il est exact ).
Donc ensuite j'ai réfléchi pour trouver dans quel cas le générateur répondrait à un vrai besoin, besoin tellement nécessaire que l'inconvénient des appels multiples n'aurait plus de pertinence => et j'ai trouvé le temporel.

Du coup, je viens de lire le chapitre du tuto sur les générateurs.

Le problème de consommation de mémoire peut s'illustrer ainsi : par exemple, admettons que l'on écrive un code Python qui, pour un dossier donné, parcourt tous les fichiers qu'il contient récursivement et, pour chaque fichier, lit toutes les lignes, par exemple pour chercher des occurrences d'une chaîne (comme grep). Il y a plusieurs manières différentes de coder cela. Mais, si on code une fonction qui retourne un itérable de lignes et si le dossier est très gros, il vaut mieux que la fonction retourne un générateur au lieu de charger d'un coup en mémoire le contenu récursif de tout le dossier.

Ce qui est bien avec cet exemple, c'est qu'on peut enchaîner sur le temporel ainsi : comme avec grep, on peut commencer à afficher des résultats de recherche au fur et à mesure sans avoir fini de parcourir tous les fichiers.
2  0 
Avatar de Malick
Community Manager https://www.developpez.com
Le 29/09/2022 à 12:29
Salut,

Citation Envoyé par Hominidé Voir le message
Bonjour,
Je constate que le cours n'est pas référencé sur la page bouton 'TUTORIELS PYTHON' : https://python.developpez.com/cours/
...
Effectivement, mais son intégration était en cours. On était en train d'en profiter également pour faire une mise à jour globale de la page, raison pour laquelle cela prend un peu de temps.
2  0 
Avatar de
https://www.developpez.com
Le 18/09/2022 à 22:16
C'est nuuuul, enlevez lui ses trophées !!!

Sacré boulot ! Je t'en offre un de plus

1  0 
Avatar de Diablo76
Membre habitué https://www.developpez.com
Le 19/09/2022 à 11:04
Super boulot, très complet, clair et ludique

Il convient aussi bien aux débutants qu'a un publique expérimenté.

J'ai adoré le chapitre sur les métaclasses, bien que je ne les utilise jamais, mais ça m'a rappelé les métatables en Lua pour faire du pseudo OO.

Encore bravo pour cet énorme travail.
1  0 
Avatar de disedorgue
Expert éminent sénior https://www.developpez.com
Le 19/09/2022 à 11:12
je ne dirais que:

1  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 19/09/2022 à 18:51
Un tuto de 20 pages aurait suffi, mais non il a fallu qu'il nous ponde un opus en 27 chapitres et 160 pages

Merci Sve@r pour ce cours de référence, et respect !
1  0 
Avatar de papajoker
Expert confirmé https://www.developpez.com
Le 20/09/2022 à 13:57
Bravo pour le travail herculéen

pas encore bien lu car il me faudrait au moins une semaine. Au premier regard :
- match vraiment très restrictif : c'est comme présenter f-string mais sans une allusion au formatage
- Générateurs, je trouve très réducteur de ne voir que le "temporel" comme argument pour l'utiliser… Pour moi, ne consommer en mémoire qu'un élément et non une liste entière est le premier argument
- context manager
préambule et utilisation est en fait un seul cas particulier : les fichiers, puisque pas indiqué, on pense que c'est la généralité. Alors que le troisième chapitre est justement un peu plus global.
1  0 
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 20/09/2022 à 14:49
Citation Envoyé par papajoker Voir le message
- match vraiment très restrictif : c'est comme présenter f-string mais sans une allusion au formatage
Hé oui, ça a fait partie des trucs rajoutés à la va comme je te pousse, style "oh zut l'instruction match vient d'arriver, il faut que j'en parle"...

Citation Envoyé par papajoker Voir le message
- Générateurs, je trouve très réducteur de ne voir que le "temporel" comme argument pour l'utiliser… Pour moi, ne consommer en mémoire qu'un élément et non une liste entière est le premier argument
Ben pour tout dire, la mémoire était mon argument au début, celui que je présentais en cours quand j'expliquais les générateurs. Et puis un élève a dit "oui, effectivement on gagne de la mémoire mais en contrepartie on appelle plusieurs fois la fonction et chaque appel engendre un coût", argument sur lequel je n'ai pas su quoi répondre (probablement parce qu'il est exact ).
Donc ensuite j'ai réfléchi pour trouver dans quel cas le générateur répondrait à un vrai besoin, besoin tellement nécessaire que l'inconvénient des appels multiples n'aurait plus de pertinence => et j'ai trouvé le temporel.

Citation Envoyé par papajoker Voir le message
- context manager
préambule et utilisation est en fait un seul cas particulier : les fichiers, puisque pas indiqué, on pense que c'est la généralité.
Oui je comprends. Le souci c'est "comment expliquer une notion nouvelle". Je n'ai pas trouvé d'autre moyen que prendre un exemple en montrant comment peu à peu la notion finit par devenir nécessaire, en montrant que telle autre façon de faire est possible mais pas forcément pratique etc. Et puis bon, le préambule commence par une phrase expliquant le but du truc, puis la phrase suivante commence par "prenons un exemple" donc on voit bien que c'est un exemple ; je fais confiance au lecteur pour qu'une fois les chapitres 1 et 2 terminés, il se dise tout seul "ah oui, et si ça marche pour un fichier, ça doit pouvoir marcher pour tout le reste"...

Citation Envoyé par papajoker Voir le message
Alors que le troisième chapitre est justement un peu plus global.
C'était le but: chapitres 1 et 2: explications détaillées, avec un exemple détaillé, et chapitre 3: élargissement à d'autres possibilités
1  0