Problème de liste
Signaler
Jean-p_5035
M3NSONG3
- Messages postés
- 2
- Date d'inscription
- mardi 5 janvier 2021
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
M3NSONG3
- Messages postés
- 573
- Date d'inscription
- mardi 16 avril 2013
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
A voir également:
- Problème de liste
- Liste déroulante excel - Guide
- Annuaire inversé gratuit liste rouge - Forum - Internet / Réseaux sociaux
- Liste abonnés téléphone par commune - Forum - Logiciels
- Annuaire Pages blanches : recherche Nom par rue ✓ - Forum - Internet / Réseaux sociaux
- Liste adresse mail frauduleuse ✓ - Forum - Vos droits sur internet
4 réponses
M3NSONG3
- Messages postés
- 573
- Date d'inscription
- mardi 16 avril 2013
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
Salut, alors oui il y a plus court, cependant je ne suis pas sûr d'avoir bien saisie ton problème.
En gros une liste par exemple l = [1, 2, 3, 4] correspond avec une clef c = 0 à abcd, et si c =1 par exemple, la liste correspond à bcde c'est bien ça ?
En gros une liste par exemple l = [1, 2, 3, 4] correspond avec une clef c = 0 à abcd, et si c =1 par exemple, la liste correspond à bcde c'est bien ça ?
jee pee
- Messages postés
- 30512
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 6 janvier 2021
Bonjour,
Pour le futur, plutot qu'un lien vers ton code (en plus sur fond noir c'est difficile), il faut placer le code sur le forum. Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
cela doit donner quelque chose comme
Je pense que ce n'est pas la peine de mettre ton code, car oui il y a plus court. On ne doit pas avoir des variables en dur t1, t2, ... t25. On constitue une liste.
Une liste ce peut être des caractères comme ton
mais ce peut être aussi des phrases, comme tes 26 phrases décodées.
voilà de quoi initialiser un tableau avec tes 26 phrases à décoder
L'exemple ci-dessus est "étendu" pour avoir une boucle pour développer ton code. Mais on peut faire plus simple
Pour le futur, plutot qu'un lien vers ton code (en plus sur fond noir c'est difficile), il faut placer le code sur le forum. Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
cela doit donner quelque chose comme
for i in len(abc) print(i,abc[i])
Je pense que ce n'est pas la peine de mettre ton code, car oui il y a plus court. On ne doit pas avoir des variables en dur t1, t2, ... t25. On constitue une liste.
Une liste ce peut être des caractères comme ton
abc = ['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'],
mais ce peut être aussi des phrases, comme tes 26 phrases décodées.
solutions= ['aababbab','hahhahhh', ....,'jdjjjddl']
voilà de quoi initialiser un tableau avec tes 26 phrases à décoder
abc = ['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'] adecoder="avvavvavav" solutions=[""]*len(abc) for i in range(len(abc)): solutions[i]=adecoder print(i,solutions[i])
L'exemple ci-dessus est "étendu" pour avoir une boucle pour développer ton code. Mais on peut faire plus simple
abc = ['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'] adecoder="avvavvavav" solutions=[adecoder]*len(abc) print(solutions)
Jean-p_5035
- Messages postés
- 2
- Date d'inscription
- mardi 5 janvier 2021
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
Tout d’abord merci beaucoup pour vos réponses !
Je débute sur ce forum, j’essayerai de m’améliorer dans la mise en page !
Je vais essayer avec votre solution, merci.
Néanmoins, n’y a t’il pas un moyen pour demander à python de créer une liste ?
M3NSONG3, chaque lettre correspond à une position dans l’alphabet, À=1;B=2;C=3 etc. En utilisant une clef, un décale les lettre d’un certain nombre de rang ex: si clef =3, A+clef =1+3=4=D. « A » chiffré avec une clef égale à 3 devient D.
Je débute sur ce forum, j’essayerai de m’améliorer dans la mise en page !
Je vais essayer avec votre solution, merci.
Néanmoins, n’y a t’il pas un moyen pour demander à python de créer une liste ?
M3NSONG3, chaque lettre correspond à une position dans l’alphabet, À=1;B=2;C=3 etc. En utilisant une clef, un décale les lettre d’un certain nombre de rang ex: si clef =3, A+clef =1+3=4=D. « A » chiffré avec une clef égale à 3 devient D.
jee pee
- Messages postés
- 30512
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 6 janvier 2021
- Messages postés
- 2
- Date d'inscription
- mardi 5 janvier 2021
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
n’y a t’il pas un moyen pour demander à python de créer une liste ? ce n'est pas une question claire
Dans ton code tu fais beaucoup trop d'étapes et utilises trop de variables, créer une liste avec la valeur de chaque lettre de la phrase à coder pour la convertir après dans une autre boucle cela allonge et complique le code. Mais cela vient vraisemblablement que en débutant, tu n'arrives pas bien à combiner une solution avec tous les types d'instructions, alors tu décomposes à l’extrême au risque de t'y perdre (et de nous perdre ;-)
Tu peux passer de "a" à "d" en une seule ligne, et avec la méthode .index ne pas avoir besoin d'une boucle pour trouver la position d'une lettre
Dans ton code tu fais beaucoup trop d'étapes et utilises trop de variables, créer une liste avec la valeur de chaque lettre de la phrase à coder pour la convertir après dans une autre boucle cela allonge et complique le code. Mais cela vient vraisemblablement que en débutant, tu n'arrives pas bien à combiner une solution avec tous les types d'instructions, alors tu décomposes à l’extrême au risque de t'y perdre (et de nous perdre ;-)
Tu peux passer de "a" à "d" en une seule ligne, et avec la méthode .index ne pas avoir besoin d'une boucle pour trouver la position d'une lettre
abc = ['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'] angle=3 print(abc.index("a")) print((abc.index("a") + angle)%26) print(abc[(abc.index("a") + angle)%26])
Phil_1857
- Messages postés
- 833
- Date d'inscription
- lundi 23 mars 2020
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
Bonjour Jean-p,
Je ne sais pas si ça pourra t'aider mais je te livre ici un petit programme que j'avais
fait dans le temps pour décoder un message en utilisant une clé de décalage à 4 chiffres
1863: le 1er caractère est décalé de 1, le 2ème de 8, le 3ème de 6 et le 4ème
de 3, et on continue en recommençant à 1, etc. ..
De plus, j'utilise des chaines de caractères et non des listes, mais bon .... à voir
Je ne sais pas si ça pourra t'aider mais je te livre ici un petit programme que j'avais
fait dans le temps pour décoder un message en utilisant une clé de décalage à 4 chiffres
1863: le 1er caractère est décalé de 1, le 2ème de 8, le 3ème de 6 et le 4ème
de 3, et on continue en recommençant à 1, etc. ..
De plus, j'utilise des chaines de caractères et non des listes, mais bon .... à voir
# -*- coding:Latin-1 -*- msg = 'znikr wnb cwwltnyosk jxqlikr hirq zurlsex uwhby ncqd' alphabet = 'abcdefghijklmnopqrstuvwxyz' cle = '1863' print('\nMessage secret :\n{}\nDécodage :'.format(msg)) j=-1 rang_lettre = -1 for k in range(len(msg)): if(msg[k] == ' '): print(msg[k], end ='') else: rang_lettre += 1 if(rang_lettre%4 == 0): j=0 else: j += 1 lettre = alphabet.index(msg[k]) lettre_decalee = (lettre+int(cle[j]))%26 print(alphabet[lettre_decalee], end ='')
M3NSONG3
- Messages postés
- 573
- Date d'inscription
- mardi 16 avril 2013
- Statut
- Membre
- Dernière intervention
- 6 janvier 2021
Bon bon bon... Du coup je suis en retard mais moi je voulais juste te proposer d'utiliser ce bout de code... :
Un peu plus compacte que les autres...
Désolé du retard ahah
Je t'ai mis un petit exemple "jean" avec un décalage
Un peu plus compacte que les autres...
import string alphabet = list(string.ascii_lowercase) message = [15, 10, 6, 19] for c in range(26): words = '' for letter in message: index = (letter + c) % len(alphabet) - 1 words += alphabet[index] print("Avec la clef " + str(c) + " le mot est: " + words)
Désolé du retard ahah
Je t'ai mis un petit exemple "jean" avec un décalage