liste=[1, 2, 3, 4, 5]
liste=[]*nombre
liste[3]=int(input())
liste=[1, 2, 3, 4, 5]
print(liste[2])
print(liste[3])
liste[2]=liste[2]+5
print(liste)
liste.append
liste.extend
liste1+liste2
Manipuler liste (retourner, trier, longueur,...)
liste.reverse()
liste.sort()
liste.len()
liste.pop()
liste.insert()
Dans une librairie, un acheteur décide d’acheter quelques livres pour ses vacances. Aucun prix n’est indiqué sur le livre mais seulement une catégorie. Au bout d’une étagère, les prix sont affichés. Suivant la catégorie croissante, les livres coûtent 4,50€ ; 5,20€ ; 6,10€ ; 7,60€ ou 8,90€.
Pour estimer le coût total de ses achats, il observe la catégorie de chacun des livres. Il a dans ses mains 2 livres de catégorie 3, 1 livre de catégorie 1, 3 livres de catégorie 4, 2 livres de catégorie 2 et un livre de catégorie 5
Quelle somme devra-t-il débourser lors de son passage en caisse ?
Le but de cette activité simple est de proposer une solution claire et détaillée en expliquant votre méthode.
Discussion : nécessité d’avoir un référencement = une liste ou un tableau
Quelles autres informations pourrions-nous tirer de l’ensemble de ces données ?
Création de liste (manuelle, automatisée)
liste=[1, 2, 3, 4, 5]
liste=[0]*tailleListe génère une liste remplie d’un nombre tailleListe de [0]
Par exemple :
jourSemaine=[0]*7
print(jourSemaine)
Se référer/remplir une liste
liste[i] :
Se réfère à la position i-1 dans la liste car le premier élément de la liste est de rang 0 et non 1. Notre liste de 7 jours possède 7 rangs de 0 à 6
Exemple
jourSemaine=[0]*7
jourSemaine[1]=15
jourSemaine[4]=27
for elt in jourSemaine :
print(elt)
afficher le i ème élément de la liste : print (liste[i-1])
Exemple :
jourSemaine[4]
On a décidé de relever la température de l’air extérieur, durant la journée du jeudi 13 juin 2019, toutes les heures :
0h : 12°C
1h : 11°C
2h : 11°C
3h : 10°C
4h : 9°C
5h : 10°C
6h : 9°C
7h : 10°C
8h : 12°C
9h : 14°C
10h : 16°C
11h : 17°C
12h : 18°C
13h : 20°C
14h : 21°C
15h : 22°C
16h : 23°C
17h : 23°C
18h : 23°C
19h : 23°C
20h : 21°C
21h : 19°C
22h : 17°C
23h : 16°C
On veut pouvoir extraire diverses données de ces informations, comme la température moyenne, la température moyenne pendant le jour, les températures maximale et minimale, les heures correspondant à ces températures, etc.
1.
temperature = [12, 11, 11, 10, 9, 10, 9, 10, 12, 14, 16, 17, 18, 20, 21, 22, 23, 23, 23, 23, 21, 19, 17, 16]
2.
heure = 0
for temp in temperature :
print("à ", heure,"h il fait", temp,"°C")
heure += 1
variante :
for heure in range (len(temperature)) :
print("à ", heure,"h il fait", temperature[heure],"°C")
tempMin = 15e6
for temp in temperature :
if temp < tempMin :
tempMin = temp
print (tempMin)
def minMax(temperature):
tempMin = 15e6
tempMax = -273
for temp in temperature :
if temp < tempMin :
tempMin = temp
if temp > tempMax :
tempMax = temp
return tempMin, tempMax
variante :
print ("la température minimale est", min(temperature),"°C et la température maximale est", max(temperature),"°C")
5.
def moyenneTemp(temperature):
total = 0
for temp in temperature :
total += temp
return total/len(temperature)
6.
def moyenneDiurne(temperature):
total = 0
dureeJour=1
for temp in range(6, 22) :
total += temperature[temp]
dureeJour += 1
return total/dureeJour
def moyenneNocturne(temperature):
total = 0
dureeNuit=1
for temp in range(0, 6) :
total += temperature[temp]
dureeNuit += 1
for temp in range(22, 24) :
total += temperature[temp]
dureeNuit += 1
return total/dureeNuit
Exercice 2 :
Correction exercice 2 : 1.
def minMax(temperature):
tempMin = 15e6
tempMax = -273
for temp in temperature :
if temp < tempMin :
tempMin = temp
if temp > tempMax :
tempMax = temp
return tempMin, tempMax
def maxPremiereFois(temperature):
tempMax = minMax(temperature)[1]
heure = 0
while temperature[heure] < tempMax :
heure += 1
return heure
2.
def estSupA20(temperature):
nbHeure = 0
for i in temperature :
if temperature[i] > 20 :
nbHeure +=1
return nbHeure
Exercice 3 :
Corrections à faire
Utilisation d'un microcontroleur pour piloter un circuit électronique - affichage de données via la console, via un écran - recueil de données - Sauvegarde des données - Exploitation des données (réinvestir le travail sur les listes) - ...
Un capteur analogique transforme une grandeur physique (pression, température, deformation, etc...) en une autre grandeur physique (en général électrique) facilement mesurable. Le signal reçu en sortie du capteur peut prendre une infinité de valeurs à l'intérieur de sa plage de mesures
Un capteur numérique rend, en sortie, une ou des valeurs finies : Tout Ou Rien, trains d'impulsions, un ensemble de valeurs discretes dont le nombre dépend de l'échantillonage.
(
Le capteur de température LM35 est un capteur analogique de température fabriqué par Texas Instruments. Il est extrêmement populaire en électronique, car précis, peu couteux, très simple d'utilisation et d'une fiabilité à toute épreuve. Le capteur de température LM35 DZ est quelque peu obsolète, c'est pourquoi on en trouve beaucoup dans les kits de démarrage Arduino. Il est capable de mesurer des températures allant de 0°C à +100°C . La sortie analogique du capteur est proportionnelle à la température. Il suffit de mesurer la tension en sortie du capteur pour en déduire la température. Pour chaque évolution de 1 degré Celsius correspond une varaition de la tension de +10mV dans le même sens.
La carte Arduino dispose d'un convertisseur analogique/numérique intégré et échantillonne la tension reçue du capteur en 10 bits, la carte pourra donc renvoyer des valeurs comprises entre 0 (qui correspondra à une tension nulle) et 1023 (ce qui correspondra à une tension de 5V).
Une photorésistance est une résistance dont la valeur change en fonctionn de la quantité de lumière qu'elle reçoit : plus elle est éclairée, plus sa résistance est faible On l'intègre dans un montage diviseur de tension :
La tension mesurée se calcule par : $$ V_{out} = V_{in} \times \frac{R_{1} }{R_{2} + R_{1}} $$
Ce capteur permet de mesurer un taux d'humidité relative dans une place de 20% à 80%. Il peut aussi mesurer des températures de 0°C à 100°C mais avec une précision bien moindre que le LM35 DZ, aussi, nous n'utiliserons pas cette fonction ici.
Deux de ces broches concernent son alimentation en 5V, la troisième nous renvoie les données du capteur (taux d'humidité, température)
L’Arduino est une plateforme de prototypage électronique open-source, basée d’une part sur du matériel et d’autre part sur un ensemble de logiciels faciles à utiliser. La caractéristique première d’une carte Arduino est le type de MCU ou micro-contrôleur dont elle est équipée Une carte Arduino communique avec son environnement par l’intermédiaire de ses broches d’entrées/sorties. Sur ces broches, des capteurs, dispositifs permettant de transformer une information de l’environnement en signal électrique et des actionneurs, dispositifs permettant de transformer un signal électrique en action mécanique ou lumineuse, vont être connectés. Par conséquent le nombre de broches disponible est un critère de choix important car il détermine le nombre de capteurs et d’actionneurs que l’on va pouvoir connecter.
L’Arduino étant un ordinateur spécialisé dans la gestion de capteurs et d’actionneurs, c’est un programme qui va décider de la manière donc les capteurs et les actionneurs sont utilisés. C’est donc très différent de l’électronique traditionnelle où les fonctions qui relient les capteurs aux actionneurs, l’appui d’un bouton qui entraine l’allumage d’un DEL par exemple, sont déterminées « en dur » par le câblage entre les composants, et par les composants eux-mêmes. Ici les fonctions sont déterminées par un programme. Par conséquent les fonctions peuvent être beaucoup plus élaborées.
Nous voulons recueillir les données des trois capteurs. Le montage à effectuer est le suivant :