57
Commentaire:
|
2399
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
= Quelques exercices de programmation très standards = | = Quelques exercices de programmation classiques = == Tester l’appartenance == Écrivez une fonction : {{{#!highlight python def trouve(l,x): ... }}} qui renvoie `True` si `x` est un élément de la liste `l` et `False` sinon. Testez : {{{#!highlight python l=[1,6,6,4] trouve(l,0) trouve(l,1) trouve(l,6) trouve(l,4) trouve('Bonjour','B') trouve('Bonjour','b') }}} Transformez légèrement la fonction pour qu’elle renvoie l’indice de `x` dans `l` (le numéro de la « case » où `x` apparaît) au lieu de `True`. Testez : {{{#!highlight python trouve(l,6) trouve(l,6) == False trouve(l,1) trouve(l,1) == False }}} Argh ! Que s’est-il passé ? Le test d’égalité prend en fait en compte des conversions possibles entre les types, et permet de considérer que `False == 0` et `True == 1`. Donc `False` n’est pas un bon choix de valeur d’erreur. On pourrait prendre `-1` par convention, mais seulement parce qu’on sait qu’on attend un résultat positif. La manière « propre » de gérer ce cas, c’est d’utiliser la constante `None`, de type `NoneType`, qui a la propriété de n’être égale qu’à elle-même. Modifiez donc encore la fonction pour renvoyer `None` plutôt que `False` dans le cas où on ne trouve pas l’élément. == Renverser une chaîne == Écrivez une fonction : {{{#!highlight python def renverse(entree): ... return sortie }}} qui prend en argument une chaîne `entree` et renvoie la chaîne renversée, c’est-à-dire que `renverse('abcde')` doit renvoyer (et pas afficher) `'edcba'`. Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc ''construire'' le résultat. == Renverser une liste (en place) == Écrivez une fonction : {{{#!highlight python def ret(entree): ... return sortie }}} qui prend en argument une chaîne `entree` et renvoie la chaîne renversée, c’est-à-dire que `renverse('abcde')` doit renvoyer (et pas afficher) `'edcba'`. Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc ''construire'' le résultat. |
Quelques exercices de programmation classiques
Tester l’appartenance
Écrivez une fonction :
qui renvoie True si x est un élément de la liste l et False sinon.
Testez :
Transformez légèrement la fonction pour qu’elle renvoie l’indice de x dans l (le numéro de la « case » où x apparaît) au lieu de True. Testez :
Argh ! Que s’est-il passé ? Le test d’égalité prend en fait en compte des conversions possibles entre les types, et permet de considérer que False == 0 et True == 1. Donc False n’est pas un bon choix de valeur d’erreur. On pourrait prendre -1 par convention, mais seulement parce qu’on sait qu’on attend un résultat positif. La manière « propre » de gérer ce cas, c’est d’utiliser la constante None, de type NoneType, qui a la propriété de n’être égale qu’à elle-même. Modifiez donc encore la fonction pour renvoyer None plutôt que False dans le cas où on ne trouve pas l’élément.
Renverser une chaîne
Écrivez une fonction :
qui prend en argument une chaîne entree et renvoie la chaîne renversée, c’est-à-dire que renverse('abcde') doit renvoyer (et pas afficher) 'edcba'.
Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc construire le résultat.
Renverser une liste (en place)
Écrivez une fonction :
qui prend en argument une chaîne entree et renvoie la chaîne renversée, c’est-à-dire que renverse('abcde') doit renvoyer (et pas afficher) 'edcba'.
Rappelez-vous qu’il n’y a pas de manière naturelle en Python de dire quelque chose comme : « on part avec un tableau vide de n cases », et surtout que les chaînes ne sont pas mutables. Il faut donc construire le résultat.