Probleme avec un programe python - Python - Programmation
Marsh Posté le 03-04-2017 à 18:31:51
Utilise les balises code.
Qu'est-ce que tu cherches à faire exactement avec
Code :
|
La méthode index retourne l'indice d'un élément alors que tu passes une tranche de ta liste (d'un seul élément).
Et j+=1 n'a aucun sens.
Marsh Posté le 03-04-2017 à 18:42:26
Merci. Après modification de mon code:
message = input("Message: " )
i = int(0)
j = int(0)
liste = []
letters = ['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']
listePlace = []
print(letters)
for x in message:
liste.extend(message[i])
i += 1
print(liste)
for q in range(len(message)):
l = str(letters.index(liste[j]))
listePlace.extend(l)
j+=1
print(listePlace)
J'obtiens un résultat incompréhensible:
Message: message
['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']
['m', 'e', 's', 's', 'a', 'g', 'e']
['1', '2', '4', '1', '8', '1', '8', '0', '6', '4'] <========
Pourquoi le 'm' est devenu un '1', et pourquoi y a t il plus de numéro que de lettre?
Merci d'avance
Marsh Posté le 03-04-2017 à 18:55:31
Parce que l'indice de 'm' c'est 12.
Code :
|
Marsh Posté le 03-04-2017 à 19:11:20
AAAAAAAAAAAAAAAAAAAAAAAAA....okkkkkkkk
Merci bcp.
Du coup comment je peu faire pour qu'il écrive '12' et pas '1','2' ?
Ou alors si c'est pas possible avec se code comment faire?
merci d'avance
Marsh Posté le 03-04-2017 à 19:13:06
Avec append, je viens de te le montrer. Mais pourquoi tu convertis l'indice en string?
Marsh Posté le 03-04-2017 à 19:14:14
je sais pas... surement parce que sa marchais comme sa...
Marsh Posté le 04-04-2017 à 23:02:54
Plusieurs remarques,
1) La variable letters, où l'on est pas obligé de se taper toutes les lettres de l'alphabet...
Code :
|
2) Pour séparer les lettres de ton message, on peut directement utiliser la construction d'un objet list
Code :
|
Marsh Posté le 05-04-2017 à 10:02:52
Pour la liste des caractères:
Code :
|
Marsh Posté le 05-04-2017 à 12:06:40
Merci pour l'astuce mais j aimerais pouvoir ajouter des majuscule et de la ponctuation a l'alphabet (ce que j'ai fais) et puis de toute façons je l ai déjà écris donc...
Sinon pour transformée le string en liste merci sa marche nickel et le code est plus lisible.
Marsh Posté le 05-04-2017 à 13:20:37
Dans ce cas rien de plus simple en python
Code :
|
Marsh Posté le 03-04-2017 à 14:19:51
Bonjour a tous, j ai commencé la programmation en Python il y à peu et je voulais crée un petit programme pour séparer les lettres d'un message pour ensuite les transformée en une autre lettres(cryptage César). Malheureusement j'ai une erreur que je ne comprend pas...
mon code:
message = input("Message: " )
i = int(0)
j = slice(1)
liste = []
letters = ['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']
listePlace = []
print(letters)
for x in message:
liste.extend(message[i])
i += 1
print(liste)
for q in range(len(message)):
listePlace.extend(letters.index(liste[j]))
j+=1
print(listePlace)
Le message d’erreur:
Message: message
['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']
['m', 'e', 's', 's', 'a', 'g', 'e']
Traceback (most recent call last):
File "C:\Users\*********\Desktop\test2.py", line 19, in <module>
listePlace.extend(letters.index(liste[j]))
ValueError: ['m'] is not in list
>>>