====== Python ======
Shebang : #!/usr/bin/python3
===== Concepts de POO =====
* **Classe** : Forme de type de donnée (comme str). Elle permet de définir des fonctions et variables propres au type. Elle sert notamment à faire des objets
* **Objet** : Structure de données permettant de contenir des variables et fonctions
* **Méthode** : Fonction définie dans une classe. On appelle une méthode d'un objet grâce à objet.methode(). Ex : machainedecaracteres.lower()
===== Environnements virtuels =====
- Installer Virtualenv : pip3 install virtualenv
- Créer un venv : virtualenv venv
- Rentrer dans un venv : source venv/bin/activate
- Installer des paquets précis dans le venv : pip3 install -r requirements.txt
- Sortir du venv : deactivate
- Se remettre dans un venv créé : retourner dans le dossier et faire virtualenv reactivate
===== Fonctions utiles =====
^ Nom ^ Fonction ^ Usage ^ Note ^
| attrgetter | Trier une liste d'objets | Appeler la fonction avec le paramètre sur lequel se base le tri. Ex : sorted(liste_gens, key=attrgetter("age")) | Nécessite d'importer le module operator (from operator import attrgetter). Tri les int par ordre croissant et les str par ordre alphabétique |
| dir | Voir les méthodes constituant un objet | dir(mon_objet) | |
| input | Entrer une valeur | age = input('Entrez votre age : ') | |
| itemgetter | Trier une liste de tuples | Appeler la fonction avec le paramètre sur lequel se base le tri. Ex : sorted(etudiants, key=itemgetter(2)) | Nécessite d'importer le module operator (from operator import itemgetter). Tri les int par ordre croissant et les str par ordre alphabétique |
==== Fonctions lambda ====
>>> f = lambda x: x * x
>>> f(5)
25
===== Méthodes =====
repr : Permet de définir comment représenter un objet.
Exemple :
class Personne(object):
"""Individu lambda."""
prenom = None
nom = None
age = 0
membres_crees = 0
def __init__(self, nom, prenom, age):
self.nom = nom
self.prenom = prenom
self.age = int(age)
Personne.membres_crees += 1
def __repr__(self):
return "- Personne: {}, {}, agée de {}".format(self.nom, self.prenom, self.age)
===== Modules =====
Il est possible de créer des modules contenant des fonctions et de les importer dans un fichier principal.
**Exemple**
Fichier de module multi.py :
#!/usr/bin/python3
def table(nb):
i = 0
while i < 10:
print(i + 1, "*", nb, "=", (i + 1) * nb)
i += 1
def div(nb):
i = 0
while i < 10:
print(nb, "/", i + 1, "=", nb /(i + 1))
i += 1
Fichier principal main.py :
#!/usr/bin/python3
from multi import * # Importation de toutes les variables et fonctions du module multi
nb = int(input('Entrez le nombre : '))
div(nb) # Ici on importe que la fonction div
===== Exceptions =====
Exemple d'exceptions :
* NameError: Variable non définie
* TypeError: Opération faite sur une variable qui n'est pas du bon type. Comme faire une divisions sur une variable de type string.
* ZeroDivisionError: Division par zéro
Exemple :
try:
resultat = numerateur / denominateur
except NameError:
print("La variable numerateur ou denominateur n'a pas été définie.")
except TypeError:
print("La variable numerateur ou denominateur possède un type incompatible avec la division.")
except ZeroDivisionError:
print("La variable denominateur est égale à 0.")
[[https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/231688-gerez-les-exceptions]]
===== Docs & sources =====
* https://docs.python.org/3/reference/index.html
* https://docs.python.org/3/library/re.html#re.Match.group
* https://docs.python.org/3/library/re.html#re.compile
* https://docs.python.org/3/library/array.html#array.array.append
* https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python