Types de valeurs
Entier (négatifs aussi) |
|
Chaîne de charactères |
|
Réel |
|
Booléen |
|
Expressions + ordre des priorités
|
Exposant |
|
|
Négatif unaire |
|
|
Multiplication, division |
|
|
Négatif binaire |
|
|
Comparaisons |
|
|
NOT logique |
|
|
AND logique |
|
|
OR logique |
|
Casting
|
Transforme la variable en un int
si possible |
|
Transforme la variable en un float
si possible |
|
Transforme la variable en un string
si possible |
Alternatives
if value > 0 :
#do stuff
elif value < 0 :
#do other shit
else :
#do the rest idk
|
Boucle while
i = 0
while i <= 4 : #on répète 5 fois
print(i)
i += 1
|
Faire attention à compter à partir de 0 jusqu'au nombre qu'on a besoin !!
|
|
Procédure vs fonction
Procédure |
Une suite d'instructions |
Fonction |
Une suite d'instructions avec un retour d'expression |
Fonction
def fonction(variable) :
#do stuff
return result
|
Une procédure n'a tout simplement pas de return. Sinon, c'est la même chose.
Documentation
Les comentaires peuvent être utilisés lors de la planification, de la description algorithmique et de l'étiquétage d'un code |
Les docstrings décrivent les fonctions d'une fonction |
Les commentaires ne peuvent être de plus de 72 charactères |
Typehinting
def fonction(var: type) -> type:
|
Le type peut être str, int, float, tuple, list, dict, None
ou bool
Boucle for
lst = ["weed",1,2,3,4]
for l in lst :
print(l) # l = élément de la liste
|
le "for" prend chaque élément dans l'ordre en mémoire. Cela marche aussi pour les paires clé/valeur d'un dictionnaire et pour les éléments d'un tuple
Types de séquence
Strings |
|
Listes |
[3, 7, "weed", (42,69)]
|
Tuples |
(3, 7, "weed", [42,69])
|
Dictionnaires |
{'Python': 'un language progra', 'le tout': 42, '1': '2'}
|
Liste vs Tuple
Ressemblances |
C'est tous les 2 des collections de tous types de données |
Différences |
Les listes sont muables par rapport aux tuples |
Slicing
Input |
lst = [0,1,2,3,4] second_lst = lst[0:5:2]
|
Output |
|
1er opérateur : numéro du début de slicing
2ème opérateur : numéro de fin de slicing (!!! la position n'est pas incluse)
3ème opérateur : numéro de pas (la fin inclus mais pas le début)
(comme on compte d'habitude)
Opérations sur les séquences
|
Si val
est dans la séquence seq
|
|
L'inverse d'au dessus |
|
Slicing (voir slicing) |
|
|
|
La valeur minimale de seq
|
|
La valeur maximale de seq
|
seq.index(val[, start[, end]])
|
Position de la première valeur val
avec début et fin non obligatoires |
|
Compte combien de fois on a val
dans seq
|
Opérations sur les strings
|
Renvoie une copie de str
en minuscule |
|
Renvoie une copie de str
en majuscule |
|
Remplace la séquence dans le string old
par new
|
|
Divise str
à l'aide du délimiteur delim
|
|
Efface les espaces de str
|
Opérations séquences muables (listes)
|
Slicing (!! Cela remplace val
) |
|
Efface en slicing |
|
|
|
|
|
Étend seq
avec t
(si t
est un string, il prend chaque charactère séparément) |
|
Répète seq
et le remet dans la variable |
|
Insère la valeur après before
|
|
Affiche et efface dans la séquence (on compte à partir de 1 !!) |
|
Efface la 1 ère valeur dans seq
|
|
Inverse la séquence |
Insérer un élement dans une séquence muable
Liste |
list.append[truc]
ou list.insert(pos, truc)
|
Dictionnaire |
Refaire un dict avec la position ou dict["key"] = value
pour le mettre en dernière position |
Operations sur les dictionnaires
|
Retourne les paires clé/valeurs dans une liste de tuples |
|
Retourne les clés dans une liste |
|
Retourne les valeurs dans une liste |
Dictionnaire dans un dictionnaire
dict[key_1][key_2][key_n]
|
Déballage séquence
C'est l'utilisation des tuples comme expression de gauche. |
Cela permet de prendre plusieurs variables en même temps ou affecter des variables sans savoir exactement combien il y en a. |
Principes de Clean Code
Préférer l'utilisation des val
et not
val dans les alternatives et les boucles |
Utiliser des boucles while quand on a pas besoin de passer par toute la séquence, sinon utiliser une boucle for
|
Utiliser les fonctions le plus possible (mais sans exagérer non plus) |
Clean Code (À NE PAS FAIRE !!)
if boolean == True and another_bool == False :
#do stuff
else :
#do something else
|
Fonctions utiles
|
Génère une séquence de nombres respectant un motif strict. start
n'est pas obligatoire et non plus le step
. Le end
y est |
|
Imprime n'importe quoi sur la console (bon pour les debugs) |
|
Nous dit le type de variable |
|
Nous montre l'addresse où se situe la valeur de la variable |
|
Nous donne un nombre au hasard entre 0
et 1
|
random.randint(start, end)
|
Nous donne un nombre au hasard entre start
et end
. start
et end
sont obligatoires |
|
Transforme un charactère en son code Unicode décimal ( a
= 97) |
|
Transforme un code Unicode décimal en un charactère Unicode |
|