Générateur leet speak en python

Projets

ParL32 v0U2 l3 1337 5p3aK ? C3 pr0j37 357 un 9ÉNÉrA73ur 3n py7h0N d3 1337 5p3ak…

Présentation

Ce projet a été réalisé par Lena G. en classe de première G5 dans le cadre de leur enseignement de spécialité NSI (numérique et sciences de l’informatique), au lycée Louis Pasteur à Avignon.
Avec comme matériel un ordinateur équipé du logiciel Thonny.

Le leet speak

Le leet speak et un langage qui remplace les caractères d’un mot ou d’une phrase par un caractère voisin visuellement, il est créé à la fin des années 80 par des programmeurs informatiques. Il existe plusieurs niveaux de codage :

  • Codage simple Leet Speak = LeeT 5Pe4k
  • Codage simple Leet Speak = |_337 $|>34|<

Description du programme

Les listes

J’ai d’abord créé 3 listes avec tous les caractères utilisables, la première correspond au langage naturel que va entrer l’utilisateur, la seconde sera la traduction du caractère dans un langage simple à traduire et la troisième dans un langage complique à déduire.

liste_1 = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " ","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","é","è","à","'",".")
liste_2 = ("4", "8", "C", "D", "e", "F", "9", "H", "1", "j", "k", "L", "m", "N", "0", "P", "Q", "R", "5", "T", "u", "V", "W", "X", "Y", "2", " ", "4", "8", "C", "D", "e", "F", "9", "H", "1", "j", "k", "L", "m", "N", "0", "P", "Q", "R", "5", "T", "u", "V", "W", "X", "Y", "2","é","è","À","'",".")
liste_3 = ("4", "8", "(", "|)", "3", "|=", "9", "}{", "1", "_|", "|<", "|_", "|\/|", "N", "0", "|>", "().", ".-", "$", "7", "|_|", "\/", "\|/", "><", "`/", "2", " ", "4", "8", "(", "|)", "3", "|=", "9", "}{", "1", "_|", "|<", "|_", "|\/|", "N", "0", "|>", "().", ".-", "$", "7", "|_|", "\/", "\|/", "><", "`/", "2","⋷","ē","ἀ","ノ","•")

Les fonctions de traduction

J’ai créé 2 fonction quasi-identique, elle consiste toutes deux à prendre chaque caractère (que l’utilisateur aura entre) qui se trouve dans « liste 1 » et en parcourent une des 2 autres listes, ressortir le caractère correspondent dans « liste 2 » pour la première fonction « code_1(mot) » et « liste 3 » pour la deuxième fonction « code_2(mot) ». Soit une boucle ou tant que le caractère de « liste 1 » n’a pas atteint le caractère correspondant dans l’autre liste, on continue à parcourir la liste en question. Une fois le caractère atteint, il remplace le caractère de la première liste.

def code_1(mot):
    mot_traduit = ""
    for i in mot:
        k = 0
        while liste_1[k] != i:
            k += 1
        mot_traduit += liste_2[k] 
    return mot_traduit

def code_2(mot):
    mot_traduit = ""
    for i in mot:
        k = 0
        while liste_1[k] != i:
            k += 1
        mot_traduit += liste_3[k] 
    return mot_traduit

Fonction menu

La fonction « menu » laisse l’utilisateur choisir s’il souhaite changer ce qu’il veut entrer, en langage simple ou compliquer en entrant soit 1 pour simple soit 2 pour compliquer. S’il choisit 1, l’utilisateur entrera ses caractères et il se lancera la fonction « code_1(mot) ». S’il choisit 2, l’utilisateur entrera ses caractères et il se lancera la fonction « code_2(mot) ». S’il ne choisit un autre chiffre que 1 ou 2, il s’affichera « Choix non-valide » est relancera le menu.

def menu():
    print("Langage simple:\t 1")
    print("Langage compliqué:\t 2")
    choix = int(input("Choisissez le langage de départ:\t"))
    if choix == 1:
        mot_origine = input("Veuillez rentre le mot d'origine :")
        print(code_1(mot_origine))
        print("\n")
        menu()
    elif choix == 2:
        mot_origine = input("Veuillez rentre le mot d'origine :")
        print(code_2(mot_origine))
        print("\n")
        menu()
    else :
        print("Choix non-valide\n")
        menu()

Conclusion

J’espère que mon programme vous sera utile.
Vous pouvez le récupérer si vous voulez l’améliorer.