Python en mathématiques - Niveau 2

Sélection de données

Les algorithmes de sélection de données nécessitent de faire appel à des fichiers de données, généralement au format CSV. En Python, il faudra faire appel au module csv pour importer puis accéder à ces données, voire au module matplotlib pour représentaer graphiquement ces données.

Population française

On travaille avec ce fichier csv donnant par année de naissance le nombre de français et de françaises en 2020.

  1. Utiliser le module csv pour importer les données de la population française donné ci-dessus et placer ses données dans trois listes python ages, effectifs_hommes et effectifs_femmes tels que (ages[i], effectifs_hommes[i], effectifs_femmes[i]) corresponde à l'enregistrement de rang i du fichier csv.
  2. Afficher les effectifs des femmes par classes d'âge sous la forme d'un histogramme avec une barre verticale par année de naissance dont la hauteur est proportionnelle au nombre de femmes nées cette année-là.
  3. Afficher dans la console les effectifs d'hommes et de femmes dans les trois catégories suivantes : mineurs ( âge $\lt$ 18 ), actifs (18 $\le$ âge $\lt$ 60), seniors (âge $\ge 60$).
  • Indications
  • Un code possible pour 1°/
  • Un code possible pour 2°/
  • Un code possible pour 3°/

La fonction reader du module csv permet de parcourir les lignes du fichier csv, en incluant la première ligne qui, dans notre cas, ne contient pas de données. Une fois les trois listes ages, effectifs_hommes et effectifs_femmes créées en parcourant la valeur renvoyée par un appel de csv.reader, il faudra retirer le premier élément de chacune d'entre elles.

La fonction reader du module csv aura récoupéré les données sous forme de chaines de caractères. Il s'agira ensuite de convertir les âges et effectifs en nombres entiers.

On pourra afficher l'histogramme demandé dans la question 2 avec la fonction bar du module matplotlib.pyplot.

import csv

ages = []
effectifs_femme = []
effectifs_homme = []
with open('pop-totale-2020.csv', encoding="utf-8", newline='') as f:
    lecture = csv.reader(f)
    for ligne in lecture :
        ages.append(ligne[1])
        effectifs_femme.append(ligne[3])
        effectifs_homme.append(ligne[2])

ages.pop(0)
effectifs_femme.pop(0)
effectifs_homme.pop(0)

ages = [int(age) for age in ages]
effectifs_femme = [int(effectif) for effectif in effectifs_femme]
effectifs_homme = [int(effectif) for effectif in effectifs_homme]
    
import csv
import matplotlib.pyplot as plt

ages = []
effectifs_femme = []
effectifs_homme = []
with open('pop-totale-2020.csv', encoding="utf-8", newline='') as f:
    lecture = csv.reader(f)
    for ligne in lecture :
        ages.append(ligne[1])
        effectifs_femme.append(ligne[3])
        effectifs_homme.append(ligne[2])

ages.pop(0)
effectifs_femme.pop(0)
effectifs_homme.pop(0)

ages = [int(age) for age in ages]
effectifs_femme = [int(effectif) for effectif in effectifs_femme]
effectifs_homme = [int(effectif) for effectif in effectifs_homme]

plt.bar(ages, effectifs_femme)
plt.show()
    
import csv

ages = []
effectifs_femme = []
effectifs_homme = []
with open('pop-totale-2020.csv', encoding="utf-8", newline='') as f:
    lecture = csv.reader(f)
    for ligne in lecture :
        ages.append(ligne[1])
        effectifs_femme.append(ligne[3])
        effectifs_homme.append(ligne[2])

ages.pop(0)
effectifs_femme.pop(0)
effectifs_homme.pop(0)

ages = [int(age) for age in ages]
effectifs_femme = [int(effectif) for effectif in effectifs_femme]
effectifs_homme = [int(effectif) for effectif in effectifs_homme]

mineurs = [0, 0]
majeurs = [0, 0]
seniors = [0, 0]
for k in range(len(ages)):
    if ages[k] < 18:
        mineurs[0] = mineurs[0] + effectifs_homme[k]
        mineurs[1] = mineurs[1] + effectifs_femme[k]
    elif ages[k] < 60:
        majeurs[0] = majeurs[0] + effectifs_homme[k]
        majeurs[1] = majeurs[1] + effectifs_femme[k]
    else:
        seniors[0] = seniors[0] + effectifs_homme[k]
        seniors[1] = seniors[1] + effectifs_femme[k]

##----- Tests et interaction -----##
print(mineurs)
print(majeurs)
print(seniors)
    

Autres algorithmes au programme

Programme de 1ère techno 2019 et de Tale techno 2020

Algorithmique et programmation Exemples d’algorithme
Sélection de données Traiter un fichier contenant desdonnées réelles pour en extraire de l'information et l'analyser.
Réaliser un tableau croisé de données sur deux critères à partir de données brutes.