Si vous désirez plus de contenu francophone comme celui-ci, cliquer Follow ou suivez-moi sur Twitter
Voici ma CheatSheet complète de Python. Si vous avez des questions ou recommendations n'hésitez pas.
Convention d'appellation
# Le nom des variables s'écrivent en minuscule_snake
first_name = 'Mike'
# Les classes et modules s'écrivent en CamelCase
class InvoiceDetail:
# Les constantes s'écrivent en majuscule
MAX_USER = 100
# Indentation : 4 espaces
if num > 9:
print('hello')
Type de variable
name = 'Mike' # Chaîne
age = 42 # Numérique entier
price = 199.99 # Numérique avec décimal
is_active = True # Boolean
colors = ['red', 'green', 'blue'] # Liste
products = { 'name': 'iPad Pro', 'price': 199.99 } # Dictionnaire
MAX_USER = 100 # Constante
Conversion entre les types
# Le typage en Python est strict
number = 50 + "50" # Retourne un erreur
# Convertir une chaîne en nombre entier
number = 50 + int("50") # 100
# Convertir un nombre en chaîne de caractères
my_text = str(199.99) # "199.99"
# Convertir une chaîne en nombre décimal
my_number = float('21.99') # 21.99
# Obtenir le type de variable
type(my_text) # <class 'str'>
type(my_number) # <class 'float'>
# Vérifier si la chaîne est un nombre
isdigit('8') # True
# Vérifier le type de variable
isinstance(my_number, int) # True
Chaînes de caractères
# Declaration
name = 'Mike'
# ou
name = "Mike"
# ou
message = """Ceci est une chaîne
de caractère
multi-lignes"""
# Caractères spéciaux. Ex: \n = Saut de ligne
message = "Hello \nWorld"
# Les chaîne 'raw' ignore les caractères spéciaux
message = r"https:\\example.com\index.html"
# Convertir en minuscule
name.lower() # mike
# Convertir en majuscule
name.upper() # MIKE
# Convertir la première lettre en majuscule
name.capitalize() # Mike
# Convertir la première lettre de chaque mots en majuscule
name = 'mike taylor'
name.title() # Mike Taylor
# Utilisation des méthodes à la chaîne (Une après l'autre)
name = 'MIKE'
name.lower().capitalize() # Mike
name = 'Mike'
# Vérifier si commence par une chaîne spécifique ?
name.startswith('M') # true
# Vérifier si se termine par une chaîne spécifique ?
name.endswith('ke') # true
# Renvois le nombre de caractère
len(name) # 4
# Concaténation de chaine de caractère
full_name = first_name + ' ' + last_name
# Les chaînes formatés, remplacent le contenu des expressions entre les {} par leur valeur.
full_name = f"{first_name} {last_name}"
# Enlève les espaces blanc au début et à la fin
text = ' this is a text with white space '
text.strip()
name = 'Mike'
# Retourne le premier caractère
name[0] # M
# Retourne le dernier caractère
name[-1] # e
# Retourne une chaîne partiel
name[1:3] # ik
# Remplace une partie de la chaîne par une autre chaîne
name.replace('M', 'P') # Pike
# Trouve une chaîne dans la chaîne (retourne la # de la position ou -1 si pas trouvé)
name.find('k') # 2
# Convertir une liste en chaîne de caractères
colors = ['red', 'green', 'blue']
', '.join(colors) # 'red, green, blue'
Fonctions communes
# Imprimer dans la console
print('Hello World')
# Impression multiple
print('Hello', 'World') # Hello World
# Impression multiple
print(10 * '-') # ----------
# Imprimer le contenu de la variable formaté
from pprint import pprint
pprint(products)
# Saisir un entrée fait par le clavier
name = input('What is your name? ')
# Aléatoire (entre 0 et 1)
from random import random
print(random()) # 0.26230234411558273
# Aléatoire entre x et y
from random import randint
print(randint(3, 9)) # 5
# Arrondir
number = 4.5
print(round(number)) # 5
# Arrondir avec précision décimal
solution = round(12.9582, 2) # 12.96
Exécution conditionnel
if x == 4:
print('x is 4')
elif x != 5 and x < 11:
print('x is between 6 and 10')
else:
print('x is 5 or greater than 10')
# Retourne True si contenu dans la liste
colors = ['red', 'green', 'blue', 'yellow']
if 'blue' in colors:
# Retourne False si PAS contenu dans la liste
if 'white' not in colors:
# Opérateur Ternary
print('y = 10') if y == 10 else print('y != 10')
# Opérateur Ternary (version courte)
is_valid = 'Valid'
msg = is_valid or "Not valid"
# Expression Falsy, retourne toujours False
False, None, 0, empty string "", empty list [], (), {}
# Expression Truthy, retourne toujours True
True, not zero and not empty value
Execution des boucles
# Boucle sur une liste
for item in items:
print(item)
# Boucle avec un index
for index, item in enumerate(items):
print(index, item)
# Intervalle
for i in range(10): #0..9
print(i)
for i in range(5, 10): #5..9
print(i)
# Boucle: While loop
while x > 10:
print(x)
# exit loop
if x == 5:
break
# Jump to next while
if x == 3:
continue
x += 1
# Boucle: For loop (dictionnaire)
for key, value in my_dict.items():
print(key, value)
# List comprehension:
# values = [(expression) for (value) in (collection)]
items = [value*2 for value in items]
# List comprehension avec conditionnel
# values = [expression for value in collection if condition]
even_squares = [x * x for x in range(10) if x % 2 == 0]
List et Tuple
# Créer une liste
fruits = ['orange', 'apple', 'melon']
# Ajouter à une Liste
fruits.append('banana')
# Retourne le nombre d'élément dans une liste
nb_items = len(fruits)
# Supprimer l'élément no x
del fruits[1] # supprime 'apple'
# Accès directe à partir d'une position x
fruits[0] # premier item
fruits[-1] # desnier item
# Retoune une partie d'une liste: my_list[start:finish:step]
fruits = fruits[1:3]
fruits[:3] # premier 3 items
fruits[2:] # dernier 2 items
copy_fruits = fruits[:] # copie la liste
# Retourne une list inversé
revserve_fruits = fruits[::-1]
#Créer une list à partir d'une chaîne de caractères
colors = 'red, green, blue'.split(', ')
# Concatenation de deux listes
color1 = ['red', 'blue']
color2 = ['green', 'yellow']
color3 = color1 + color2
# Concatenation de deux listes en utilisant la technique 'unpacking'
color3 = [*color1, *color2]
# Assignation multiple
name, price = ['iPhone', 599]
#Créer une liste de type TUPLE (lecture seul)
colors = ('red', 'green', 'blue')
# Trier une liste
colors.sort() # ['blue', 'green', 'red']
colors.sort(reverse=True) # ['red', 'green', 'blue']
colors.sort(key=lambda color: len(color)) # ['red', 'blue', 'green']
Dictionnaire
# Créer une dictionnaire (vide)
product = {}
# Créer une dictionnaire avec clé et valeur
product = {'id': 100, 'name': 'iPadPro'}
# Accès au dictionnaire par une clé
print(product['name']) # iPadPro
# Accès au dictionnaire avec fonction 'get'
product.get('name') # Si clé existe pas alors retourne 'None'
product.get('name', 'default value') # Si clé existe pas alors retourne une valeur par défaut
# Adding a new key/value
product['description'] = "Modern mobile device"
# Obtenir une liste des clés d'un dictionnaire
product.keys() # ['id', 'name', 'description']
# Obtenir une liste des valeurs d'un dictionnaire
product.values() # ['100', 'iPadPro', 'Modern mobile device']
# Créer une liste de dictionnaire
products = [
{'id': 100, 'name': 'iPadPro'},
{'id': 200, 'name': 'iPhone 12'},
{'id': 300, 'name': 'Charger'},
]
# Accès à une liste de dictionnaire
print(products[2]['name']) # Charger
# Recherche dans une liste de dictionnaire
items_match = [item for product in products if product['id'] == 300]
# [{'id': 300, 'name': 'Charger'}]
# Somme dans une liste de dictionnaire
total = sum([product['price'] for product in products])
Fonctions
# Créer une fonction
def say_hello():
print('Hello World')
# Fonction avec arguments (et valeur par défaut)
def say_hello(name = 'no name'):
print(f"Hello {name}")
# Fonction avec arguments (et valeur optionnel)
def say_hello(name = None):
if name:
print(f"Hello {name}")
else:
print('Hello World')
# Appel d'une fonction
say_hello('Mike') # Hello Mike
# Appel d'une fonction avec un argument nommé
say_hello(name = 'Mike')
# Fonction retournant une valeur
def add(num1, num2):
return num1 + num2
num = add(10, 20) # 30
# Fonction avec un nombres indéterminé d'arguments (*args)
def say_hello(*names):
for name in names:
print(f"Hello {name}")
# Fonction avec un nombres indéterminé d'arguments de type keyword (**kwargs)
def say_hello(**kwargs):
print(kwargs['name'])
print(kwargs['age'])
say_hello(name = 'Mike', age = 45)
# Fonction Lambda (syntax abbrégé)
x = lambda num : num + 10
print(x(20)) # 30
Date et heure
from datetime import datetime, timedelta
# Retourne la date et l'heure courante
datetime.now()
# Créer un object date et time courant
date = datetime(2020,12,31) # Dec 31 2020
# Addition de date et d'heure (weeks, days, hours, minutes, seconds)
new_year = date + timedelta(days=1) # Jan 1 2021
# Convertir une date en chaîne de caractère
new_year.strftime('%Y/%m/%d %H %M %S') # 2021/01/01 00 00 00
new_year.strftime('%A, %b %d') # Friday, Jan 01
# Extraire l'année et le mois d'une date
year = new_year.year # 2021
month = new_year.month # 01
Gestion des fichiers
# Lecture d'un fichier
filename = 'demo.txt'
with open(filename) as file:
lines = file.readlines()
for line in lines:
print(line)
# Écriture d'un fichier
filename = 'settings.txt'
with open(filename, 'w') as file:
file.write("MAX_USER = 100")
# Est-ce que le fichier existe?
from os import path
path.exists('templates/index.html') # True/False
# Exportation en CSV
import csv
csv_file = 'export.csv'
csv_columns = products[0].keys() # ['id', 'name']
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
for item in products:
writer.writerow(item)
Gestion des exceptions et erreurs
age_string = input('Your age? ')
try:
age = int(age_string)
except ValueError:
print("Please enter a numeric value")
else:
print("Your age is saved!")
Programmation orienté objet
# Créer une classe
class Product:
pass
# Créer un attribue
class Product:
nb_products = 0
print(Product.nb_products) # 0
# Créer un nouvel instance
product_1 = Product()
# Créer un attribue d'instance
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
# Créer un instance avec des attribues
product_1 = Product('iPadPro', 699.99)
product_2 = Product('iPhone12', 799.99)
print(product_1.name) # iPadPro
# Créer un méthode sur l'instance
class Product()
def display_price(self):
return f"Price : {self.price}"
print(product_1.display_price())
# Méthode de classe
class Product:
# ...
@classmethod
def create_default(cls):
# Créer une instance
return cls('Product', 0) # nom par défaut, prix par défaux
product_3 = Product.create_default()
# Méthode statique
class Product:
# ...
@staticmethod
def trunc_text(word, nb_char):
return word[:nb_char] + '...'
product_3 = Product.trunc_text('This is a blog', 5) # This i...
# Héritage
class WebProduct(Product):
def __init__(self, name, price, web_code):
super().__init__(name, price)
self.web_code = web_code
# Convention de nom pour variable d'instance
def __init__(self, price):
self.__price = price
# Getter et setter
class Product:
def __init__(self):
self.__price = 0
@property
def price(self):
return self.__price
@price.setter
def price(self, value):
self.__price = value
# Mixins
class Mixin1(object):
def test(self):
print "Mixin1"
class Mixin2(object):
def test(self):
print "Mixin2"
class MyClass(Mixin2, Mixin1, BaseClass):
pass
obj = MyClass()
obj.test() # Mixin2
Si vous aimez ce genre de post et vous aimeriez en lire d'autre, suivez-moi sur dev.to ou suivez-moi sur Twitter
Top comments (0)