Creer pros python leet speak sans replace et dictio
PierrotLeFou -
Bonjour a tous je n'ai pas bien compris cette exercice, voici l'intitulé
Le principe est d’utiliser des caractères graphiquement voisins des caractères usuels. On écrit « 5 » au lieu de « S », « 7
» au lieu de « T », « 4 » au lieu de « A », « 3 » au lieu de « E », « 1 » au lieu de « L » et « 0 » au lieu de « O ».
Ainsi le mot "nuage", s’écrira "nu4g3". Les mots "cette lettre" s’écriront "c3773 1377r3"
Ce système d’écriture se retrouve chez certains passionnés d’informatique, utilisateurs de jeux en réseau. Il est présent en
particulier sur les forums de discussion en ligne.
Vous devez créer un programme qui permet de traduire une phrase quelconque du français vers le langage Leet.
Attention, il existe plusieurs versions du langage leet, je vous demande d’utiliser la version simple que je vous présente
ici, dans laquelle on ne modifie que les caractères S, T, A, E, L et O.
L’utilisation de la méthode replace est interdite ici. L’utilisation des listes ou des dictionnaires est aussi interdite. Je vous
demande de créer une nouvelle chaine de caractère, vide au départ, dans laquelle vous ajouterez les caractères au fur et à
mesure de la traduction.
Windows / Chrome 107.0.0.0
- Creer pros python leet speak sans replace et dictio
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
11 réponses
Bonjour,
Pas de liste, de dictionnaire et de replace. Donc on va utiliser des chaines de caractères, différentes boucles et la position des caractères dans la chaine.
def leet(chaine): orig="STAELO" code="574310" chcod="" for i in range for j in range ... return chcod print(leet("nuage")) print(leet("cette lettre"))
Je suppose qu'on n'a pas droit aux tuple ni à index pour mal faire ...
Indice: la boucle intérieure sert à trouver la position du caractère à enccoder.
Sais-tu comment trouver rapidement si un caractère est dans une chaîne?
Bonsoir Pierrot, j'ai lis ta réponse et nan je sais pas comment faire.
j'ai donc essayer un autre code que j'ai fait; peut tu me dire ou est-ce que j'ai fait des erreur, sur le code on me met cela
File "C:\Users\Cooler Master\Desktop\tp nsi\test leetspeak2.py", line 28
return Trad
^
IndentationError: unindent does not match any outer indentation level
le code est en bas
trad=''
A=input('Taper Votre Phrase Pour La Traduire En Language Leet ')
for k in A :
if k=='S' or k=='s':
Trad+='S'
elif k=='T' or k=='t':
Trad+='7'
elif k=='A' or k=='a':
Trad+='4'
elif k=='E' or k=='e':
Trad+='3'
elif k=='L' or k=="l":
Trad+='1'
elif k=='O' or k=='o':
Trad+='0'
else:
Trad+=k
return Trad
oui c'est aussi une possibilité. Mais on attend d'un programmeur une solution un peu plus sophistiquée ;-)
Formellement ta solution comporte des erreurs :
- trad='', non Trad=''
- Trad+='S' non Trad+='5'
- return s'utilise quand on a une fonction, initialisée par def fonction().
Enfin on peut simplifier les tests :
if k.upper()=='S':
Dans ton second code, je ne vois pas la ligne def ...
Où est la fonction?
Si tu n'as pas de fonction, tu n'as pas besoin de return.
Sinon, l'erreur veut dire que le return ne commence pas dans la bonne colonne.
Pour le "S", tu ne convertis pas en "5"
Tu as utilisé print au début ...
du coup re bonsoir il manque un dernière chose, quand je le lance cela me met 'Taper Votre Phrase Pour La Traduire En Language Leet'
trad=''
A=input('Taper Votre Phrase Pour La Traduire En Language Leet')
for k in A :
if k=='S' or k=='s':
trad+='5'
elif k=='T' or k=='t':
trad+='7'
elif k=='A' or k=='a':
trad+='4'
elif k=='E' or k=='e':
trad+='3'
elif k=='L' or k=='l':
trad+='1'
elif k=='O' or k=='o':
trad+='0'
else:
trad+=k
print('A')
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprint('A') ??? print(trad)
bon la je suis dans une incompréhension totale
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'iooi' is not defined
trad=''
A=input('Taper Votre Phrase Pour La Traduire En Language Leet')
for k in A :
if k=='S' or k=='s':
trad+='5'
elif k=='T' or k=='t':
trad+='7'
elif k=='A' or k=='a':
trad+='4'
elif k=='E' or k=='e':
trad+='3'
elif k=='L' or k=='l':
trad+='1'
elif k=='O' or k=='o':
trad+='0'
else:
trad+=k
print('trad')
du coup j'ai ressayer avec print(trad)
Python 3.8.13 (default, Mar 28 2022, 06:59:08) on Windows (64 bits).
This is the Pyzo interpreter with integrated event loop for ASYNCIO.
Type 'help' for help, type '?' for a list of *magic* commands.
Running script: "C:\Users\Cooler Master\Desktop\tp nsi\test leetspeak2.py"
Taper Votre Phrase Pour La Traduire En Language Leet
>>> nuage
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'nuage' is not defined
>>>
Es-tu certain que c'est le code que tu as exécuté que tu nous montres ici?
Il y a une difféerence entre:
print('trad')
et
print(trad)
Afficher une chaîne, ce n'est pas comme afficher une variable.
Utilise une fonction
def leet(A): trad='' for k in A : if k=='S' or k=='s': trad+='5' elif k=='T' or k=='t': trad+='7' elif k=='A' or k=='a': trad+='4' elif k=='E' or k=='e': trad+='3' elif k=='L' or k=='l': trad+='1' elif k=='O' or k=='o': trad+='0' else: trad+=k return trad print("nuage =",leet("nuage")) print("cette lettre =",leet("cette lettre"))
Bonjour,
As-tu le droit d'utiliser les listes ?
Ça pourrait donner ceci:
substitutions = [['a','4'],['e','3'],['l','1'],['o','0'],['t','7']] for s in substitutions: c1,c2 = s[0], s[1] trad = trad.replace(c1,c2)
Du coup bonjour à tous j'essayer de coder le programme et je crois avoir réussi et il est un peu simplet mais marche
def leet():
Trad=''
A=input('Taper votre pharase pour la mettre en leet speak')
for k in A :
if k =='S':
Trad+='5'
elif k =='T':
Trad+='7'
elif k =='A':
Trad+='4'
elif k =='E':
Trad+='3'
elif k =='L':
Trad+='1'
elif k =='O':
Trad+='0'
else:
Trad+=k
return Trad
print(leet())
Voici un code simple (non coloré, désolé)
Je n'ai même pas utilisé les méthodes lower ou upper
-
def leet():
text = input("Entrez le texte à modifier ")
lettres = "SsTtAaLlOo"
codes = "5577441100"
trad = ""
for c in text:
for i in range(len(codes)):
if c == lettres[i]:
c = codes[i]
trad += c
return trad
print(leet())
re bonjour merci de ta pris de temps mais j'ai une question, quand je lance le programme cela me met
File "C:\Users\Cooler Master\Desktop\tp nsi\Test leetspeak.py", line 5
for i in range
^
SyntaxError: invalid syntax
et je voudrais savoir comment régler.
c'était un début de code, il faut que tu complètes
une boucle sur la longueur de chaine, on traite le caractère chaine[i] une boucle sur la longueur orig on compare chaine[i] à orig[j]