Listes - Elément dans une liste#
Sur cette page, il est également possible d'utiliser Python avec la base de données de la pizzeria dont le schéma relationnel est donné ci-dessous.
import pathlib
import sqlite3
path = pathlib.Path('database.sqlite')
exists = path.exists()
db = sqlite3.connect(path)
if not exists:
db.executescript(pathlib.Path('pizzeria.sql').read_text())
def execute_sql(request):
results = db.execute(request).fetchall()
if results == None or results == [] :
return []
if len(results[0]) == 1:
return [x[0] for x in results]
return results
Contrôler si un élément est dans une liste#
Sans lire manuellement chaque élément d'une liste, il est possible de tester si un élément en fait partie grâce à la structure if element in liste. Par exemple, le programme ci-dessous recherche tous les noms d'utilisateur et contrôle si Mila Schaller personnes en font partie ou non.
noms = execute_sql("SELECT nom FROM Utilisateur")
print(noms)
if "Mila Schaller" in noms:
print("Cette personne fait partie des utilisateurs")
else :
print("Cette personne ne fait pas partie des utilisateurs")
Il est évidemment également possible de définir soi-même des listes pour les utiliser dans un if comme dans les exemples ci-dessous
réponse = input("Quel est le meilleur collège de Suisse ?")
réponses_correctes = ["STX", "stx", "Sainte-Croix", "Ste-Croix", "Heilig Kreuz"]
if réponse in réponses_correctes:
print("Bonne réponse")
else:
print("Mauvaise réponse")
achat = input("Qu'as-tu acheté ?")
if achat in ["pomme", "poire", "pêche", "abricot", "raisin"]:
print("C'est un fruit")
elif achat in ["poivron", "chou-rouge", "carotte"]:
print("C'est un légume")
else:
print("Je ne sais pas ce que c'est")
Exercices#
Exercice 8#
Le programme ci-dessous demande une couleur de l'arc-en-ciel à l'utilisateur. S'il entre bel et bien une de ces couleurs, le programme affichera Bravo, sinon il affichera Faux
couleur = input("Entre une couleur de l'arc-en-ciel")
couleurs_arc_en_ciel = ["rouge", "orange", "jaune", "vert", "bleu", "indigo", "violet"]
# Complétez le programme à partir de là
Solution
1couleur = input("Entre une couleur de l'arc-en-ciel")
2couleurs_arc_en_ciel = ["rouge", "orange", "jaune", "vert", "bleu", "indigo", "violet"]
3
4if couleur in couleurs_arc_en_ciel:
5 print("Bravo")
6else:
7 print("Faux")
Exercice 9#
Le programme ci-dessous recherche les noms de toutes les pizzas de la base de données. Complétez le programme de sorte qu'il demande à l'utilisateur quelle pizza il souhaite commande. Si cette pizza (par exemple Hawaï) existe dans la liste, le programme affichera Commande confirmée pour 1x pizza Hawaï. Sinon, il affichera La pizza Hawaï n'existe pas.
1pizzas = execute_sql("SELECT nom from Pizza")
2
3# Complétez le programme à partir de là
Solution
1pizzas = execute_sql("SELECT nom from Pizza")
2
3choix = input("Quelle pizza veux-tu commander ?")
4
5if choix in pizzas:
6 print("Commande confirmée pour 1x", choix)
7else:
8 print("Cette pizza n'existe pas")
Exercice 10#
Le programme ci-dessous demande à l'utilisateur quel moyen de locomotion il utilise pour se rendre au travail et doit ensuite afficher un message en conséquence.
C'est très écologique!lorsque l'utilisateur entre la valeurà pied,trottinette,skateboardouvéloC'est un bon geste!lorsque l'utilisateur entre la valeurbus",trainoutram`C'est acceptable!s'il entre la valeurvoiture,moto,scooter,sidecarouvespa.Sans commentaire.s'il entre la valeuravionSans avis.s'il entre une autre valeur
Utilisez pour cela la notation if ... in ... quand cela est pertinent.
véhicule = input("Quel moyen de locomotion utilises-tu pour te rendre au travail ?")
# Complétez le programme à partir de là
print("C'est très écologique!")
print("C'est un bon geste!")
print("C'est acceptable!")
print("Sans commentaire.")
print("Sans avis.")
Solution
1locomotion = input("Quel moyen de locomotion utilises-tu pour aller au travail: ")
2
3if locomotion in ["à pied", "trottinette", "skateboard", "vélo"]:
4 print("C'est très écologique!")
5elif locomotion in ["bus", "train", "tram"]:
6 print("C'est un bon geste!")
7elif locomotion in ["voiture", "sidecar", "vespa", "moto", "scooter"]:
8 print("C'est acceptable!")
9elif locomotion == "avion":
10 print("Sans commentaire.")
11else:
12 print("Sans avis.")
Exercice 11#
Depuis la station de métro où l'utilisateur se trouve, il peut se rendre aux
arrêts qui se trouvent dans la liste ligne_sud et ligne_nord. Lorsque
celui-ci entre sa destination dans le programme ci-dessous, celui-ci doit lui afficher s'il doit prendre la ligne sud, la
ligne nord, ou s'il ne peut pas se rendre à sa destination.
destination = input("Où veux-tu aller: ")
ligne_nord = ["Châtelet", "Opéra", "République", "Bastille"]
ligne_sud = ["Gare du Nord", "Gare de Lyon", "Saint-Michel Notre-Dame", "Auber", "Porte d'Italie"]
# Complétez le programme à partir de là
print("Prends la ligne nord.")
print("Prends la ligne sud.")
print("Tu ne peux pas te rendre à cet arrêt.")
Solution
1destination = input("Où veux-tu aller: ")
2
3ligne_nord = ["Châtelet", "Opéra", "République", "Bastille"]
4ligne_sud = ["Gare du Nord", "Gare de Lyon", "Saint-Michel Notre-Dame",
5 "Auber", "Porte d'Italie"]
6
7if destination in ligne_nord:
8 print("Prends la ligne nord.")
9elif destination in ligne_sud:
10 print("Prends la ligne sud.")
11else:
12 print("Tu ne peux pas te rendre à cet arrêt.")
Exercice 12#
Complétez le programme ci-dessous afin que l'utilisateur puisse petit à petit créer une liste avec les codes postaux dans lesquels il souhaite se rendre. Cette liste des codes postaux ne doit jamais contenir de doublons! Si l'utilisateur essaie d'en entrer un, le programme affichera "Erreur, ce code postal est déjà dans la liste" et continuera ensuite normalement. Le programme s'arrête quand l'utilisateur entre un code postal négatif. À ce moment, la liste des codes postaux est simplement affichée.
# Complétez le programme
codes_postaux = []
code_postal = int(input("Entre un code postal: "))
while code_postal > 0:
# Complétez le programme à partir de là
Solution
1codes_postaux = []
2code_postal = int(input("Entre un code postal : "))
3while code_postal >= 0:
4 if code_postal in codes_postaux:
5 print("Erreur, ce code postal est déjà dans la liste.")
6 else:
7 codes_postaux.append(code_postal)
8 code_postal = int(input("Entre un code postal : "))
9
10print(codes_postaux)