A) Recherche dans une table de dictionnaires
On désire extraire par recherche des éléments de ce tableau
concernant les caractéristiques de smartphones
L’idée ici est d’apprendre à extraire des données cibles, les manipuler, les trier ou faire des statistiques. Ces opérations sont nommées "requêtes".
Sur ces quelques données de comparaison
1) Créer un fichier au format CSV
Comma-separated values, connu sous le sigle CSV, est un format texte ouvert représentant des données tabulaires sous forme de valeurs séparées par des virgules. Ce format n'a jamais vraiment fait l'objet d'une spécification formelle. Toutefois, la RFC 41801 décrit la forme la plus courante et établit son type MIME « text/csv », enregistré auprès de l'IANA.
Créer sous un tableur puis exporter au format CSV avec séparateur ";" le tableau ci-dessous
(Enregistrer sous autre format , (liste déroulante CSV sous LibvreOffice, CSV DOS sous Excel)
sous le nom de fichier : telport avec extension format fichier .csv
(Attention, sous l'explorateur windows l'extension de fichier peut être ensuite non affiché, et le fichier apparaît comme telport tout court (csv file))
Vérifiez - comme ci-dessous, c'est correct
2) Importer et extraire une donnée d'un CSV
Dans l'éditeur Python ensuite, créer un fichier et enregistrez-le en le nommant : traitementA.py
Réaliser l'ouverture du fichier telport.csv et son import en dictionnaires dans une table (type "list")
import csv |
Résultat (si le résultat n'est pas celui-ci, essayer de changer le delimiter ci dessus pour la virgule "," suivant le tableur utilisé)
[{'Nom': 'A20e', 'Capacité batterie': '3000', 'A P N': '13', 'RAM': '3', 'Stockage': '32', 'Taille': '5.8', 'Prix': '154.5'}, {'Nom': 'A40', 'Capacité batterie': '3100', 'A P N': '16', 'RAM': '4', 'Stockage': '64', 'Taille': '5.9', 'Prix': '249.97'}, {'Nom': 'A50', 'Capacité batterie': '4000', 'A P N': '25', 'RAM': '4', 'Stockage': '128', 'Taille': '6.4', 'Prix': '274.95'}, {'Nom': 'A70', 'Capacité batterie': '4500', 'A P N': '32', 'RAM': '6', 'Stockage': '128', 'Taille': '6.7', 'Prix': '384.3'}, {'Nom': 'A80', 'Capacité batterie': '3700', 'A P N': '48', 'RAM': '8', 'Stockage': '128', 'Taille': '6.7', 'Prix': '499'}] |
2-a) Expliquer et inclure sur votre compte rendu la capture de ce que renvoie :
print("table ligne 1",table[1])
2-b) Expliquer et inclure sur votre compte rendu la capture de ce que renvoie :
print (table[3]['A P N'])
3) Savoir Faire / Tester
On cherche à créer une nouvelle table en extrayant d’une table donnée les lignes satisfaisant une condition fournie.
Projection
Une projection est la sélection d’un ou de plusieurs attributs (colonnes) d’une table. |
On cherche par exemple à sélectionner les noms des téléphones, on va donc projeter sur une colonne :
# Dans l'éditeur |
Vérifier
Projection et sélection
EXEMPLE : On cherche à sélectionner les appareils avec un APN de plus de 16 Mpx (strictement supérieur).
La sélection sur une colonne peut être combinée à la sélection d’un ensemble de lignes.
La rédaction sera :
t2=[ligne["Nom"] for ligne in table if int(ligne["APN"])>16] |
4) Réaliser des requêtes
à faire par vous-même
En utilisant les méthodes de projection et sélection
4-a) construire un tableau t3 contenant les téléphones ayant au moins 4 Go de RAM et un stockage de 128 Go ;
4-b) construire un tableau t4 contenant les téléphones faisant au moins 4000mAh ou un APN d'au moins 32 MPix.
4-c) construire un tableau t5 contenant le(s) téléphone(s) ayant au moins 4 Go de RAM et coûtant moins de 400€ et une taille de moins de 6,5 pouces
Aide : utiliser float pour le tableau t5 au lieu de int (puisque prix et taille sont des valeurs décimales)
t5 renvoie deux modèles de téléphones
5) Algorithme de recherche
fonction avec arguments : valeur, dictionnaire
def appartientdico (v,listedico): for x in ... : if ...["..."] == v: return v,True return v,False |
print(appartientdico('A70',table)) doit renvoyer ('A70', True)
print(appartientdico('S20',table)) doit renvoyer ('S20', False) (ces retours sont des tuples)
Joindre la capture
Créé avec HelpNDoc Personal Edition: Produire des livres EPub gratuitement