Notions avancées
En construction. Les liens sont juste donnés. Une introduction et un exemple devrait être proposé pour chaque rubrique, et le nombre de ces rubriques augmenté.
Itérateurs
Itertools, zip,...
- itertools.cycle() est une méthode utile pour répéter ou parcourir sans fin les éléments d'une liste ou d'une table itérativitertools.accumulate()
- itertools.accumulate prend un itérable et une fonction d'accumulation, puis renvoie un itérateur.
Générateurs et "yield"
- Return VS Yield in Python — A Short Comic Liu Zuo Lin, 04/2023, Medium
Liste en compréhension
- http://fgallaire.flext.net/comprehension-de-liste-en-python-map-filter/, remplacement de map() et filter()
- http://www.python-course.eu/list_comprehension.php, yc suppression de lambda er reduce()
- A Beginner’s Guide to Python List Comprehensions (Jonathan Hsu, Medium, 23/04/2020)
- Python one-liner superb tricks Akshay Jain, Medium, 16/04/2022
- 15 Powerful Python One-Liners for Daily Use Anup Das, Medium, 22/11/2022
One-line if - then - else (ternary operator)
u = 10 v = 100 reponse = "u plus grand que v" if u > v else "v plus grand ou égal à u" print(reponse)
map, filter, reduce, lambda, pipe
- Write Clean Python Code Using Pipes - A Short and Clean Approach to Processing Iterables Khuyen Tran, medium, october 2021
- Comparing List Comprehensions vs. Built-In Functions in Python: Which Is Better? An in-depth analysis of syntax, readability, and performance Thomas A Dorfer, Medium, 21/03/2023
- …
Walrus operator
Le rôle du caractère underscore en Python
- Role of Underscore(_) in Python Tutorial - In this tutorial, you're going to learn about the uses of underscore(_) in python Hafeezul Kareem Shaik, Medium (DataCmap) October 26th, 2018
Transformations et manipulations de chaînes (string)
- translate() : transformation sur base de correspondances entre des caractères (y compris des caractères spéciaux (\n, \t, \r,…)
- string.punctuation peut être utilisé pour enlever la ponctuation
- replace() : remplacement d'une sous-chaîne
- split() : découpe en une liste de sous-chaînes. Le caractère utilisé par défaut est l'espacement. Le nombre de découpe peut être précisé. rsplit() permet de commencer par la droite.
- partition() : découpe particulière → myString.partition(“search string”) renvoie un tuple de trois sous-chaînes : ( texte précédent, première occurence de la sous-chaîne cherchée, texte à la suite)
- strip(), lstrip(), rstrip() : élimine des caractères en début et/ou fin, par défaut les espacements
- zfill(n) : ajoute des zéros devant pour arriver à une longueur donnée
- ' '.join() : joint des sous-chaînes en liste pour créer une chaîne en ajoutant ' ' (dans cet exemple) comme sous-chaîne additionnelle
- upper() : capitalise
- lower()
- title() : capitalise les premières lettres des mots
- swapcase() : inverse capitales et bas de casse
- startswith('fizz'), endswith('buzz'), 'fizz buzz' in test_string : renvoie True ou False
Manipulations de fichiers
- module os
- 8 Must-Know File System Operations In Python - The essential for Python in tasks automation apps Christopher Tao, Medium, 08/02/2021
- Python Directory and Files Management (tutorial)
- official documentation : https://docs.python.org/3/library/os.html
- 10 Python File System Methods You Should Know - Manipulate Files and Folders With os and shutil Jeff Hale, Medium, Feb 15, 2019 (pathlib, OS, shutil)
Expressions rationnelles (régulières)
import re
- Python Regular Expressions — cheat sheet - Many code examples + useful tips Valeria Aynbinder, Medium, 17/03/2022
- …
Décorateurs
Context managers
Programmation orienté objet
Page dédiée : Programmation Python Orientée Objet
- Exemples simples :
Divers
- Définir ses propres types : stack, queue, tree + algorithms : Data Structures & Algorithms in Python by Papa Moryba Kouate, Aug, 2020, Towards Data Science
Closures
Programmation fonctionnelle
- Map, filter, reduce :
Débogage, debugging
Sous le capot (bytecode,...)
- Efficiently Checking for an Empty List in Python Frank Scholl, Medium, Nov 22, 2019 → comparaison des bytecodes Python/C générés pour 3 solutions proposées
Performances, temps d'exécution, ...
- Making Python Programs Blazingly Fast, 01/01/2020
Tests unitaires
Python Scripting
Interface utilisateur graphique (GUI)
- How to build your first Desktop Application in Python Ampofo Amoh - Gyebi, Medium, 12/12/2020
emails
smtplib et poplib :
import smtplib HOST = "smtp.mydomain.com" SUBJECT = "Test email from Python" TO = "mike@mydomain.com" FROM = "python@mydomain.com" text = "blah blah blah" BODY = "\r\n".join(( f"From: {FROM}", f"To: {TO}", f"Subject: {SUBJECT}", "", text) ) server = smtplib.SMTP(HOST) server.sendmail(FROM, [TO], BODY) server.quit()
import poplib mailbox = poplib.POP3('pop3.host.com') mailbox.user("USERNAME") mailbox.pass_("PASSWORD") numMessages = len(mailbox.list()[1]) for i in range(numMessages): for j in mailbox.retr(i+1)[1]: print(j)
Création et gestion de packages
- How to create the first python package ChenChih, Medium, Dec 18, 2021
Références
- Top 12 most important Python concepts Dacus Augustus, Medium, Feb 23 2021
- 10 Advanced Python Tricks To Write Faster, Cleaner Code - From slotted classes to replacing lists with tuples Erik van Baaren, Medium, 30/06/2021