|
IntroObjectif du coursL'objectif de ce cours consiste à faire de l'analyse de données web en utilisant le langage Python. En particulier, nous allons nous intéresser à une technique d'apprentissage supervisé afin de : - Regrouper les acheteurs par types.
Langage PythonPython est un langage moderne, multi-objectif et de haut niveau. Depuis quelques années, il suscite un grand engouement. Il s'agit d'un langage : - rapide, multi-paradigme (programmation fonctionnelle/procédurale/objet) ;
Notions de baseVariablesLes noms de variables peuvent être de taille illimitée. On utilise les conventions suivantes : - noms de variables en minuscule ;
class IntrumentsAVent(): def __init__(self, nom):
self.instrument = nom
# variable
Liste des mots-clé réservés du langageimport pprint
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] Affectation, suppression, type, etc# affectation a = 1 # affectation multiple b, c, d = True, 8.3, "une chaîne de caractères" print("a = ", a)
a = 1
# types print("type(a) = ", type(a))
type(a) = <class 'int'>
Python propose un typage dynamique : a = 1
a=1 <class 'int'>
# suppression del a, b, c, d Les structures de donnéesLes structures de données standard sont : list, dict, tuples, sets, strings. ListesElles permettent d’agréger un ensemble de données hétérogènes. Les éléments peuvent être de n'importe quel type et de types différents entre eux. # listes -- entre crochets ma_liste = [1, 2, "texte", ['a', 'b', 'c'], "tralala", 9, 8, 7, 6, 5]
[1, 2, 'texte', ['a', 'b', 'c'], 'tralala', 9, 8, 7, 6, 5] Les éléments sont indexés à partir de 0. Dans le cas d'un index négatif, la liste est parcourue à partir de la fin. print("Element 0 : ", ma_liste[0])
Element 0 : 1
ma_liste[3][-1] 'c' Slicingimport numpy as np
[3 5 1 2 7 1 8 4 9 9 0 9 5 8 7 8 4 8 4 6 5 6 4 7 3 2 8 2 3 6 3 6 6 8 4 8 4 9 9 3 7 9 2 5 4 6 7 1 1 3 7 7 5 2 2 3 9 1 8 3 7 4 9 8 0 4 4 0 9 1 6 1 1 9 5 1 0 9 5 5 0 0 9 6 9 8 7 1 7 1 2 8 3 3 3 3 1 9 4 0]
68, 73, 77, 82, 84, 85, 91, 97]),)
Cela fonctionne aussi pour des listes quelconques : print("Bien entendu, ça fonctionne pour des listes quelconques \n")
"Ail", "Artichaut", "Asperge blanche", "Asperge verte", "Aubergine",
"Bette", "Betterave rouge", "Brocoli", "Carotte", "Catalonia", "Céleri",
"Céleri branche", "Céleri rave", "Chou blanc", "Chou de Bruxelles"
"Chou frisé", "Chou Romanesco", "Chou rouge", "Chou-chinois", "Chou-fleur",
"Chou-rave", "Cima di Rapa", "Citrouille", "Concombre", "Courge",
"Courgette", "Endive", "Epinard", "Fenouil", "Haricot", "Laitue romaine",
"Mâche", "Maïs", "Navet", "Oignon", "Panais", "Pâtisson",
"Petit oignon blanc", "Petit pois", "Poireau", "Pois mange-tout",
"Poivron", "Pomme de terre", "Potimarron", "Potiron", "Radis",
"Radis long", "Rhubarbe", "Salsifis", "Topinambour"
Le résultat est : Bien entendu, ça fonctionne pour des listes quelconques Un légume sur 5 : ['Ail', 'Bette', 'Céleri', 'Chou Romanesco', 'Cima di Rapa', 'Endive', 'Mâche', 'Pâtisson', 'Poivron', 'Radis long'] Les 7 derniers légumes : ['Pomme de terre', 'Potimarron', 'Potiron', 'Radis', 'Radis long', 'Rhubarbe', 'Salsifis'] TuplesLes tuples sont du même style qu'une liste, mais sont immutables, ce qui veut dire qu'on ne peut pas les modifier après leur création (on ne peut pas modifier un élément, en ajouter, etc). La raison de l'existence de ce type et de son caractère immutable est une question d'efficacité d'implantation et de stockage mémoire. Un tuple est désigné par des parenthèses et une énumération séparée par des virgules. t = ('truc', 2, [1, 2, 3])
<class 'tuple'> En réalité les parenthèses ne sont pas nécessaires : t = 'truc', 2, [1, 2, 3]
<class 'tuple'>
DictionnairesLes dictionnaires sont formés par une liste de clés et valeurs associées. Les clés peuvent être de n'importe quel type, et les valeurs aussi. On peut même avoir des valeurs qui soient d'autres dictionnaires. Le constructeur est dict. #un dico
dico d: {'clé': 'valeur'}
w=dict()
{'k': ['a', 'b']} EnsemblesAvec le type set, on peut faire des opérations d'union, d'intersection, de compléments etc. Cela peut également être pratique pour ne conserver que les éléments uniques. avent=set(['1', 'flute', 'trompette',2])
{'flute', '1', 'trompette'} set([1, 1, 3, 'a', 'a']) {1, 3, 'a'} Les structures de contrôleforEn python, on n'itère pas seulement sur des nombres, mais sur un peu tout ce qui est itérable. print("--> Itération sur une liste de nombres")
--> Itération sur une liste de nombres
# Pour itérer sur une liste régulière de nombres, on utilisera `range`
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, chaine = "Bonjour tout le monde"
--> Itération sur un dictionnaire clé2, 22, clé, ok # print("--> Itération sur les valeurs d'un dictionnaire")
for element in {22:12, "clé":"des_champs", "clé2":"des_rêves",}.values(): print(element, end=', ') print('ok') # --> Itération sur les valeurs d'un dictionnaire
# print("--> Itération sur une chaîne de caractères...")
for element in "voici une chaîne de caractères pour essayer": print(element, end=', ') print('ok') # --> Itération sur une chaîne de caractères...
# print("--> Itération sur un fichier")
# with open("test.txt",'rt') as f:
# for element in f.readlines():
# print(element[:-1])
# print('ok')
--> Itération sur un fichier
ifComme dans les langages courants, le if sert à faire des exécutions conditionnelles. On dispose d'une clause else et même d'un elif, contraction de else if. Pas de then. Indentation pour identifier les blocs. # Programme testant si une année, saisie par l'utilisateur, est bissextile ou non annee = input("Saisissez une année : ")
x=-3
x est négatif Les structures en intentionVous voulez fabriquer une liste qui contienne les longueurs des mots de ce texte, si leur longueur est supérieure à 4 caractères. Cela ne sert à rien, c'est pour expliquer. texte="""Vous voulez fabriquer une liste qui contienne toutes les lettres si les mots de ce texte, si leur longueur est supérieure à 4 caractères. Cela ne sert à rien, c'est pour expliquer. """ tri=[(mot) for mot in texte.split() if len(mot)>4]
['voulez', 'fabriquer', 'liste', 'contienne', 'toutes', 'lettres', 'texte,', 'longueur', 'supérieure', 'caractères.', 'rien,', "c'est", 'expliquer.'] whileStructure classique: tant que condition, faire. Exemple : i = 1
ExerciceDéfinir la liste : liste = [4, 9, 10, 22, 42], puis effectuez les actions suivantes : – triez et affichez la liste ;
|