====== 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