Formation I.S.N.

Pour s'entraîner

Exercice 1

  1. Créer dans la console une liste L contenant 12 valeurs qui sont les douze premiers nombres pairs, le premier élément de la liste étant zéro.
  2. Faire afficher le dixième terme de la liste.
  3. Remplacer le neuvième terme de la liste par 9.
  4. Saisir len(L). Quelle est la réponse obtenue ? Quelle est le rôle de la fonction len() ?
  • Piste ?
  • Solution ?

Utiliser une boucle for à l'intérieur de la liste.


					L = [2*k for k in range(12)]
					print(L[9]) # L[9] est le 10e terme de la liste : 18
					L[8]=9
					print(L)
					print(len(L)) # dimension ou longueur de la liste
					

Exercice 2

Écrire un programme qui demande à l’utilisateur de saisir les éléments de son choix dans une liste et qui compte de nombre d’éléments dont la valeur est supérieure à 10.

  • Piste ?
  • Solution ?

Commencer par demander à l'utisateur la longueur de la liste désirée puis créer une liste de 0 de cette longueur choisie.

Une boucle for permettra ensuite de remplacer chaque élément de la liste par un élément saisi par l'utilisateur.

On effectue enfin un parcours de liste pour déterminer ceux qui sont supérieurs à 10.


					compteur = 0
					n = int(input("saisir le nombre d'élément de votre liste : "))
					L = [0 for i in range(n)]
					for k in range(n):
						print("saisir l'élément",k+1,"de la liste")
						L[k]=float(input())
					for j in range(n):
						if L[j] > 10:
							compteur+=1
					print("Il y a ",compteur,"nombre(s) de cette liste strictement supérieur à 10")
					

Exercice 3

Écrire un programme qui demande à l’utilisateur de saisir les éléments de son choix dans une liste et qui détermine l’élément maximal de cette liste.

  • Piste ?
  • Solution ?

Commencer par demander à l'utisateur la longueur de la liste désirée puis créer une liste de 0 de cette longueur choisie.

Une boucle for permettra ensuite de remplacer chaque élément de la liste par un élément saisi par l'utilisateur.

On effectue enfin un parcours de liste pour déterminer l'élément maximal.


					n = int(input("saisir le nombre d'élément de votre liste : "))
					L = [0 for i in range(n)]
					for k in range(n):
						print("saisir l'élément (entier)", k+1, "de la liste")
						L[k] = int(input("Allez-y : "))
					maxi = L[0]
					for j in range(n):
						if L[j] > maxi:
							maxi = L[j]
					print("La plus grande valeur de la liste est", maxi)
					

Exercice 4

  1. Créer une liste contenant dans l’ordre les lettres de l’alphabet de « a » à « j ».
  2. Écrire un script utilisant une boucle while et permettant d’afficher tous les éléments de la liste.
  3. Écrire un script utilisant une boucle for et permettant d’afficher tous les éléments de la liste.
  • Solution ?

Questions 1 et 2


					L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
					i = 0 		# indice pour la boucle while
					while i < len(L):
						print(L[i])
						i += 1 	# On incrémente i, ne pas oublier !
					


Questions 3


					L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
					for element in L:
						print(element)
					

Exercice 5

On considère la liste suivante : {Jean-Michel, Marc, Vanessa, Anne, Maximilien, Alexandre, Benoît, Louise}

Écrire un script qui affiche chacun de ces noms avec le nombre de caractères correspondants.

  • Solution ?

					LP=['Jean-Michel', 'Marc', 'Vanessa', 'Anne', 'Maximilien', 'Alexandre-Benoît', 'Louise']
					for element in LP:
						print("Le prénom", element, "possède", len(element), "caractères.")
					

Exercice 6

On dispose d’une liste de nombres entiers quelconques donnés par l’utilisateur. Certains d’entre eux sont présents en plusieurs exemplaires.

Écrire un script qui recopie cette liste en omettant les doublons (les nombres qui se répètent n’apparaîtront qu’une seule fois) et où les éléments sont classés par ordre croissant..

  • Piste ?
  • Solution ?

Créer une deuxième liste L2 qui viendra se remplir des éléments de L1 non redondants.


					n = int(input("saisir le nombre d'élément de votre liste : "))
					L1 = [0 for i in range(n)]
					for k in range(n):
						print("saisir l'élément (entier)",k+1,"de la liste")
						L1[k] = int(input())
					L2 = []
					for element in L1:
						if element not in L2:
							L2.append(element)
					L2.sort()
					print("Liste initiale :", L1)
					print("Liste traitée :", L2)
					

Exercice 7

Écrire un programme qui analyse un par un tous les éléments d’une liste de nombre pour générer deux nouvelles listes. L’une contiendra les nombres pairs de la liste initiale et l’autre les nombres impairs.

  • Piste ?
  • Solution ?

Créer une boucle while de la longueur de la liste incluant la condition de parité de chaque élément.


					# Séparation des nombres pairs et impairs
					# Liste fournie au départ :
					L= [32, 5, 12, 8, 3, 75, 2, 15]
					pairs = []
					impairs = []
					# Examen de tous les éléments :
					i = 0
					while i < len(L):
						if L[i] % 2 == 0:
							pairs.append(L[i])
						else:
							impairs.append(L[i])
						i = i + 1
					# Affichage :
					print("Nombres pairs :", pairs)
					print("Nombres impairs :", impairs)
					

Exercice 8

  1. Choisissez 5 mots de la langue française et créez un dictionnaire nommé dico qui associe à chacun de ces mots sa traduction en anglais.
  2. a) Ajoutez une entrée au dictionnaire de la question précédente (un nouveau mot et sa définition).

    b) Écrivez une fonction ajoute(mot1, mot2, d) qui prend en argument un mot en français, sa traduction en anglais et ajoute ces deux mots dans le dictionnaire d uniquement si mot1 n’est pas déjà une clé du dictionnaire.

  3. Écrivez une fonction qui affiche à l’écran toutes les valeurs correspondant aux clés qui sont dans votre dictionnaire (ici, tous les mots en anglais qui apparaissent dans votre dictionnaire).
  4. Écrivez une fonction supprime(car, d) qui prend en argument un caractère car et un dictionnaire d et supprime du dictionnaire toutes les entrées correspondant à des clés qui commencent par la lettre c.
  • Piste ?
  • Solution ?

Traiter l'ensemble de l'exercice en définissant d'abord toutes les fonctions demandées puis en les appelant successivement.


					def ajoute(mot1, mot2, d):
						if not mot1 in d:
							d[mot1] = mot2

					def cle(d):
						for k in d.keys():
							print(d[k])

					def valeur(d):
						for v in d.keys():
							print(v)

					def supprime(car, d):
						new_dict = {}
						for k in d.keys():
							print(k[0])
							if k[0] != car:
								new_dict[k] = d[k]
						return new_dict

					print("Veuillez définir votre dictionnaire 'dico'")
					dico = {"chat":"cat", "chien":"dog", "vache":"caw", "tigre":"tiger", "licorne":"unicorn"}
					print(dico)
					print()
					print()

					print("On ajoute 'souris' à la main")
					dico["souris"] = "mouse"
					print(dico)
					print()
					print()

					print("On ajoute 'dragon' avec la fonction 'ajoute'")
					ajoute("dragon", "dragon", dico)
					print(dico)
					print()
					print()

					print("On ajoute une 2nde fois 'dragon'")
					ajoute("dragon", "snaug", dico)
					print(dico)
					print()
					print()

					print("On affiche les clés")
					cle(dico)
					print()
					print()

					print("On affiche les valeurs")
					valeur(dico)
					print()
					print()

					print("On supprime les éléments commençant par 'c'")
					dico = supprime("c", dico)
					print(dico)