EXERCICE 1
On a relevé les valeurs moyennes annuelles des températures à Paris pour la période allant de 2013 à 2019. Les résultats ont été récupérés sous la forme de deux listes : l’une pour les températures, l’autre pour les années :
t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7] annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
Écrire la fonction mini qui prend en paramètres le tableau releve des relevés et le tableau date des dates et qui renvoie la plus petite valeur relevée au cours de la période et l’année correspondante.
Exemple :
>>> mini(t_moy, annees) 12.5, 2016
EXERCICE 2
Écrire une fonction python appelée nb_repetitions qui prend en paramètres un élément elt et une liste tab et renvoie le nombre de fois où l’élément apparaît dans la liste.
Exemples :
>>> nb_repetitions(5,[2,5,3,5,6,9,5])
3
>>> nb_repetitions('A',[ 'B', 'A', 'B', 'A', 'R']) 2
>>> nb_repetitions(12,[1, '! ',7,21,36,44])
0
EXERCICE 3
Un mot palindrome peut se lire de la même façon de gauche à droite ou de droite à gauche : bob, radar, et non sont des mots palindromes.
De même certains nombres sont eux aussi des palindromes : 33, 121, 345543.
L’objectif de cet exercice est d’obtenir un programme Python permettant de tester si un
nombre est un nombre palindrome.
Pour remplir cette tâche, on vous demande de compléter le code des trois fonctions ci- dessous sachant que la fonction est_nbre_palindrome s’appuiera sur la fonction est_palindrome qui elle-même s’appuiera sur la fonction inverse_chaine.
La fonction inverse_chaine inverse l'ordre des caractères d'une chaîne de caractères chaine et renvoie la chaîne inversée.
La fonction est_palindrome teste si une chaine de caractères chaine est un palindrome. Elle renvoie True si c’est le cas et False sinon. Cette fonction s’appuie sur la fonction précédente.
La fonction est_nbre_palindrome teste si un nombre nbre est un palindrome. Elle renvoie True si c’est le cas et False sinon. Cette fonction s’appuie sur la fonction précédente.
Compléter le code des trois fonctions ci-dessous.
def inverse_chaine(chaine): result = ...
for caractere in chaine: result = ...
return result
def est_palindrome(chaine): inverse = inverse_chaine(chaine) return ...
def est_nbre_palindrome(nbre): chaine = ...
return est_palindrome(chaine)
Exemples :
>>> inverse_chaine('bac') 'cab' >>> est_palindrome('NSI') False
>>> est_palindrome('ISN-NSI') True >>>est_nbre_palindrome(214312) False >>>est_nbre_palindrome(213312) True
EXERCICE 4:
La fonction rendu_monnaie_centimes prend en paramètres deux nombres entiers positifs s_due et s_versee et elle permet de procéder au rendu de monnaie de la différence s_versee – s_due pour des achats effectués avec le système de pièces de la zone Euro. On utilise pour cela un algorithme qui commence par rendre le maximum de pièces de plus grandes valeurs et ainsi de suite. La fonction renvoie la liste des pièces qui composent le rendu.
Toutes les sommes sont exprimées en centimes d’euros. Les valeurs possibles pour les pièces sont donc [1, 2, 5, 10, 20, 50, 100, 200].
Ainsi, l’instruction rendu_monnaie_centimes(452, 500) renverra la liste [20, 20, 5, 2, 1].
En effet, la somme à rendre est de 48 centimes soit 20 + 20 + 5 + 2 + 1.
Le code de la fonction est donné ci-dessous :
def rendu_monnaie_centimes(s_due, s_versee): pieces = [1, 2, 5, 10, 20, 50, 100, 200] rendu = ... a_rendre = ...
i = len(pieces) - 1 while a_rendre > ... :
if pieces[i] <= a_rendre : rendu.append(...) a_rendre = ...
else :
i = ...
return rendu
Compléter ce code pour qu’il donne :
>>> rendu_monnaie_centimes(700,700) [] >>> rendu_monnaie_centimes(112,500) [200, 100, 50, 20, 10, 5, 2, 1]