Problème de liste
Fermé
Jean-p_5035
Messages postés
2
Date d'inscription
mardi 5 janvier 2021
Statut
Membre
Dernière intervention
6 janvier 2021
-
5 janv. 2021 à 15:02
M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 - 6 janv. 2021 à 17:17
M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 - 6 janv. 2021 à 17:17
A voir également:
- Problème de liste
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste de diffusion whatsapp - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Liste groupe whatsapp - Guide
4 réponses
M3NSONG3
Messages postés
615
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
4 novembre 2021
162
5 janv. 2021 à 15:32
5 janv. 2021 à 15:32
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
40596
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
26 décembre 2024
9 463
Modifié le 5 janv. 2021 à 19:15
Modifié le 5 janv. 2021 à 19:15
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
6 janv. 2021 à 09:02
6 janv. 2021 à 09:02
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
40596
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
26 décembre 2024
9 463
>
Jean-p_5035
Messages postés
2
Date d'inscription
mardi 5 janvier 2021
Statut
Membre
Dernière intervention
6 janvier 2021
Modifié le 6 janv. 2021 à 09:48
Modifié le 6 janv. 2021 à 09:48
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
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 6 janv. 2021 à 10:02
Modifié le 6 janv. 2021 à 10:02
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
615
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
4 novembre 2021
162
Modifié le 6 janv. 2021 à 17:18
Modifié le 6 janv. 2021 à 17:18
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