Travail pour lundi

Pour lundi prochain 6 avril 2020

Je vous mets à disposition un fichier csv, téléchargeable ici (bouton droit, enregistrer sous, dessin.csv).

L’enregistrer dans un dossier. Le script ci-dessous est à enregistrer puis lancer dans le même dossier !

Compléter la fonction ci-dessous lecture qui va lire ce fichier et renvoyer une liste constituée de dictionnaires comme

{ 'espece' : 'noir', 'abscisse' : 1, 'ordonnee' : 2}

Attention les deux dernières valeurs sont à convertir en entier !

Pour que ce script fonctionne il faudra installer matplotlib avec l’une de ces commandes (selon votre version de python) en invite de commandes (touche windows, taper cmd)

  • py -3.8 -m pip install matplotlib
  • py -3.7 -m pip install matplotlib
  • py -3.6 -m pip install matplotlib
  • py -3.5 -m pip install matplotlib
  • etc.

Le code à compléter :

def lecture(nom_du_fichier) :
    # initialisation : liste vide
    liste = ...

    # ouverture du fichier en lecture -> 'r'
    with open(... , ...) as fichier:

        # on récupère le contenu
        texte = fichier.read()

        # on le separe en lignes
        lignes = texte.split(sep = '\n')

        # on parcourt les lignes
        for phrase in lignes:

            # on découpe la phrase en trois morceaux dans une liste
            # attention dans ce csv le séparateur
            # est un virgule , et pas un ;
            liste_de_trois = ...

            if len(liste_de_trois) == 3:
                # un nouveau dico vide appelé new
                new = ...

                new['espece'] = liste_de_trois[2]

                # attention : à convertir en entiers
                # le premier élément de la liste
                new['abscisse'] = ...

                # le deuxième élément de la liste
                new['ordonnee'] = ...

                # on rajoute new à la liste
                ...

        # on ferme le fichier ouvert
        ...

    # on renvoie la liste remplie
    return ...

liste = lecture("dessin.csv")

###########################################
# Le code ci-dessous n'est pas à modifier #
###########################################

import matplotlib.pyplot as plt 

tuning = [('noir', 'black'),
          ('jaune', 'yellow'),
          ('bleu', 'b'),
          ('truc','white')]

for spec, couleur in tuning:
    # données
    x=[]
    y=[]
    for f in liste :
        if f['espece'] == spec:
            x.append(f['abscisse'])
            y.append(f['ordonnee'])
    plt.scatter(x, y, color = couleur, label = spec, marker = 's')

# graphique
plt.legend()
plt.show()

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.