TP : Chaînes de caractères modifiables
Ce TP doit conduire à créer de A à Z un module utilisable tout le reste de l'année. Il a pour but de définir une structure de données implémentant des chaînes de caractères modifiables.
Plutôt que traiter la partie 1 puis la partie 2 puis la partie 3, il est conseillé de programmer quelques méthodes (partie 1), puis les tester (partie 2) puis écrire la documentation de ces méthodes (partie 3) puis programmer d'autres méthodes (partie 1), les tester (partie 2), écrire leur documentation (partie 3), etc...
Partie 1 - Les méthodes de classe
Question
Complétez la définition de la classe StringVar dont l'attribut est chaine doit être une chaîne de caractères « classique », vide par défaut. N'hésitez pas à ajouter des méthodes si vous le souhaitez...
Attention aux types définis dans les méthodes ! Certains sont des strings, d'autres sont des StringVar...
Il faudra programmer les assertions suivantes :
>>> exemple1 = StringVar(4)
AssertionError: str type is required
>>> exemple2 = StringVar('4')
>>> exemple2.setChaine(3)
AssertionError: str type is required
>>> exemple3 = StringVar('exemple')
>>> exemple3.setCaractere(0, 3)
AssertionError: str type is required for carac
>>> exemple3.setCaractere('0', '3')
AssertionError: int type is required for indice
>>> exemple3.setCaractere(-4, 'i')
AssertionError: Il faut 0 <= indice < 7
>>> exemple3.setCaractere(4, 'au')
AssertionError: len(au) != 1
Dans setCaractere(), les messages s'adaptent aux données (f-string).
Indice
Un indice pour la soustraction des chaînes :
chaine1 - chaine2 renverra chaine1 si chaine2 n'est pas un suffixe de chaine1 et renverra chaine1 privé du suffixe chaine2 sinon.
Partie 2 - Réalisation des tests
Question
Complétez le programme principal avec des tests pertinents et exhaustifs de toutes les méthodes programmées dans la partie précédente.
Partie 3 - Documenter et utiliser la classe
Question
Complétez le docstring de la classe.
Vérifiez votre documentation dans la console en exécutant l'instruction :
>>> help(StringVar)Dans le répertoire contenant le fichier
string_var.py, enregistrez un nouveau fichier nommémain.py.Dans ce nouveau fichier, importez comme un module le fichier
string_var.py:from string_var import *Sauvegardez
main.pypuis exécutez-le.Vous pouvez à présent utiliser des chaînes de caractères modifiables dans ce programme... N'hésitez pas à tester !