Outils pour utilisateurs

Outils du site


issue80:python_-_partie_50

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
issue80:python_-_partie_50 [2014/05/04 21:19] fredphil91issue80:python_-_partie_50 [2014/05/07 10:55] (Version actuelle) auntiee
Ligne 4: Ligne 4:
 s = str.translate(table[,deletecharacters]) s = str.translate(table[,deletecharacters])
  
-**Ce mois-ci , je vais vous parler de deux fonctions un peu moins connues : maketrans et translate. Nous allons commencer par la méthode translate. La méthode translate retourne une copie d'une chaîne, avec tous les caractères de la table translate remplacés (traduits) ou bien avec des caractères supprimés de la chaîne, s'ils sont contenus dans 'deletechars' (optionnel). Voici la syntaxe à utiliser :+**Ce mois-ci , je vais parler de deux fonctions un peu moins connues : maketrans et translate. Nous allons commencer par la méthode translate. La méthode translate retourne une copie d'une chaîne, avec tous les caractères de la table translate remplacés (traduits) ou bien avec des caractères supprimés de la chaîne, s'ils sont contenus dans 'deletechars' (optionnel). Voici la syntaxe à utiliser :
  
 s = str.translate(table[,deletecharacters]) s = str.translate(table[,deletecharacters])
Ligne 19: Ligne 19:
 “Th tm hs cm” “Th tm hs cm”
  
-**Avant de passer à la partie 'table' de cette méthode, regardons la partie suppression. Disons que vous avez la chaîne «The time has come » et que vous vouliez supprimer toutes les voyelles (pour une raison certes étrange, mais pourquoi pas) de cette chaîne. Vous pouvez coder comme ceci :+**Avant de passer à la partie 'table' de cette méthode, regardons la partie suppression. Disons que vous avez la chaîne «The time has come » et que vous voulez supprimer toutes les voyelles (pour une raison certes étrange, mais pourquoi pas) de cette chaîne. Vous pouvez coder comme ceci :
  
 astr = "The time has come" astr = "The time has come"
Ligne 59: Ligne 59:
 So now it should be making sense.  So now it should be making sense. 
  
-**Si vous regardez encore de  plus près, vous verrez qu'il y a effectivement 256 entrées, en commençant par « \x00 » et en se terminant par « \xff ». Ainsi, le tableau contient l'ensemble des 256 codes possibles du jeu de caractères ascii. Ainsi, lorsque la méthode « translate » parcourt chaque caractère du tableau, elle obtient la valeur des caractères en hexadécimal, puis recherche la valeur dans le tableau « translate » et la remplace dans la chaîne de sortie. La représentation hexadécimale de notre chaîne « astr » originale (« The time has come ») est représentée ci-dessous.+**Si vous regardez encore de plus près, vous verrez qu'il y a effectivement 256 entrées, en commençant par « \x00 » et en se terminant par « \xff ». Ainsi, le tableau contient l'ensemble des 256 codes possibles du jeu de caractères ascii. Ainsi, lorsque la méthode « translate » parcourt chaque caractère du tableau, elle obtient la valeur des caractères en hexadécimal, puis recherche la valeur dans le tableau « translate » et la remplace dans la chaîne de sortie. La représentation hexadécimale de notre chaîne « astr » originale (« The time has come ») est représentée ci-dessous.
  
 Maintenant, vous devez commencer à comprendre.** Maintenant, vous devez commencer à comprendre.**
Ligne 71: Ligne 71:
 While this seems very simple by today’s standards, when I was a school kid, we used this all the time to send messages to each other. We used a different index into the string to start the encryption string, the logic behind it was the same. While this seems very simple by today’s standards, when I was a school kid, we used this all the time to send messages to each other. We used a different index into the string to start the encryption string, the logic behind it was the same.
  
-**Alors maintenant, à quoi tout cela peut-il servir ? Faites un retour en arrière et pensez à la période où vous avez étudié le personnage de Jules César à l'école... Lorsque César voulait envoyer un message à caractère confidentiel, il utilisait un chiffrement qui consistait à décaler, de trois caractères vers la droite, les lettres de l'alphabet. Ainsi, en utilisant l'alphabet latin d'aujourd'hui : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+**Alors, à quoi tout cela peut-il servir ? Faites un retour en arrière et pensez à la période où vous avez étudié le personnage de Jules César à l'école... Lorsque César voulait envoyer un message à caractère confidentiel, il utilisait un chiffrement qui consistait à décaler, de trois caractères vers la droite, les lettres de l'alphabet. Ainsi, en utilisant l'alphabet latin d'aujourd'hui : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  
 cela se transformait en : DEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABC cela se transformait en : DEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABC
Ligne 103: Ligne 103:
 Just like back in school. But let’s flesh it out just a bit to make it a bit more usable. The code is almost the same with a few exceptions. First, we have added a space to the end of the intab string and in between the “Z” and the “A” in the outtab string. This helps keep the actual words from being too obvious in the encrypted string. The next change is where we ask if the user wants to encode or decode the string. Finally we added an if statement to control what we print (shown bottom right). Just like back in school. But let’s flesh it out just a bit to make it a bit more usable. The code is almost the same with a few exceptions. First, we have added a space to the end of the intab string and in between the “Z” and the “A” in the outtab string. This helps keep the actual words from being too obvious in the encrypted string. The next change is where we ask if the user wants to encode or decode the string. Finally we added an if statement to control what we print (shown bottom right).
  
-**Voilà, c'est comme si nous étions retournés à l'école ! Mais nous allons étoffer un peu notre code pour le rendre un peu plus utilisable. Le code est pratiquement le même à quelques exceptions près. Tout d'abord, nous avons ajouté un espace à la fin de la chaîne intab et entre le « Z » et le « A » dans la chaîne outtab. Cela permet de mieux cacher les mots d'origine dans notre chaîne cryptée. L'autre changement concerne l'endroit où nous demandons si l'utilisateur veut coder ou décoder la chaîne. Enfin , nous avons ajouté une instruction « if » pour contrôler ce que nous affichons (voir en bas et à droite).+**Voilà, c'est comme à l'école ! Mais nous allons étoffer un peu notre code pour le rendre un peu plus utilisable. Le code est pratiquement le même à quelques exceptions près. Tout d'abord, nous avons ajouté une espace à la fin de la chaîne intab et entre le « Z » et le « A » dans la chaîne outtab. Cela permet de mieux cacher les mots d'origine dans notre chaîne cryptée. L'autre changement concerne l'endroit où nous demandons si l'utilisateur veut coder ou décoder la chaîne. Enfin , nous avons ajouté une instruction « if » pour contrôler ce que nous affichons (voir en bas et à droite).
 ** **
  
issue80/python_-_partie_50.1399231186.txt.gz · Dernière modification : 2014/05/04 21:19 de fredphil91