DEV Community

loading...
Cover image for La Cheat Sheet complète de Python

La Cheat Sheet complète de Python

Eric Le Codeur
Javascript, Python et PHP
Updated on ・7 min read

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')

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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'

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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 

Enter fullscreen mode Exit fullscreen mode

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]

Enter fullscreen mode Exit fullscreen mode

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']

Enter fullscreen mode Exit fullscreen mode

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])
Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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!")

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

Si vous aimez ce genre de post et vous aimeriez en lire d'autre, suivez-moi sur dev.to ou suivez-moi sur Twitter

Discussion (0)