00:54 <alain_afpy> ERROR www(2) timed out
00:57 <alain_afpy> INFO www fixed
09:18 <alain_afpy> ERROR www(2) timed out
09:21 <alain_afpy> INFO www fixed
09:34 <jpcw> matin acfé
09:41 <feth> jpcw: matin, refais-la après le café :)
10:03 <jpcw> matin café
10:03 <jpcw> merci feth
10:04 <Mowee> tu aurais écrit "feht" ça aurait été drôle :-(
10:04 <Mowee> morning
10:09 <feth> :-)
10:09 <feth> Mowee: je n'aurais pas vu le message
17:35 <afpy_user|67833> Bonjour, peut-on comparer une liste à une chaîne de caractères. Par ex, if liste == chaîne: ?
17:37 <rguillebert> afpy_user|67833, if liste == list(chaine) ?
17:37 <No`> ça dépend aussi du contenu de la chaîne et de la liste
17:37 <No`> en tous cas: ['a', 'b'] == 'ab' renverra False
17:38 <No`> ok, scratch that
17:38 <No`> comparer une liste et une chaîne renverra toujours False
17:38 <linovia> une chaine n'est pas une liste, mais un itérable
17:42 <afpy_user|67833> ah okay, et comment faire pour comparer les valeurs d'une liste et les caractères d'une chaîne sans devoir les comparer un à un.
17:45 <feth> tu peux construire une liste à partir de la chaine, comme proposé par rguillebert
17:45 <feth> ou comparer un par un, ça devrait pas être long :
17:48 <feth> if len(string) == len(maliste) and all(char == maliste[index] for index, char in enumerate(string)):
17:48 <feth> (perso je trouve pas ça joli)
17:48 <feth> ou encore transformer la liste en chaine :
17:48 <feth> if string == ''.join(maliste):
17:49 <feth> en fait je trouve la question bizarre : elle ne se pose jamais, je crois, dans la vraie vie
17:52 <afpy_user|67833> au fait, je suis confronté à un prooblème où il faut vérifier si un une chaine proposée est un palindrome(peut se lire dans les deux sens). Et donc, à partir de la chaîne, j'ai créé une liste pour pouvoir les comparer à la fin.
17:52 <afpy_user|67833> J'envoie le script
17:53 <feth> ah, ben la solution :
17:53 <afpy_user|67833> chaine = input() # Saisie de la chaîne
17:53 <afpy_user|67833> palindrome = [0] * len(chaine) # Création de la liste à remplir
17:53 <afpy_user|67833> indice = 0 # Indice des caractères de la liste "palindrôme"
17:53 <afpy_user|67833> for idCaractere in range(len(chaine) - 1, -1, -1): # Pour chaque caractère de la chaîne saisie
17:53 <afpy_user|67833> palindrome[indice] = chaine[idCaractere] # On remplit la liste par le caractère de la chaîne correspondant mais dans l'autre sens
17:53 <afpy_user|67833> indice = indice + 1 # Incrémentation de l'indice de la liste créée
17:53 <afpy_user|67833> if chaine == list(palindrome): # On vérifie si le palindrome est semblable à la chaîne fournie
17:53 <afpy_user|67833> print("La chaîne fournie est un palindrome.")
17:53 <afpy_user|67833> else:
17:53 <afpy_user|67833> print("La chaîne fournie n'est pas un palindrome.")
17:54 <feth> AAAAAH
17:54 <No`> ouh la
17:54 <feth> utilise un pastebin :)
17:54 <No`> ben rien ne t'empêche, en effet, de retransformer ta liste en chaîne et de comparer deux chaines, la première et celle inversée
17:54 <afpy_user|67833> ah désolé, c'est quoi un pastebin?
17:55 <No`> afpy_user|67833: cela dit, y'a plus court: http://stackoverflow.com/a/931095
17:55 <feth> afpy_user|67833: surtout que la solution est : lambda chaine_a: chaine_a == chaine_a[::-1]
17:55 <No`> un pastebin, c'est un site où tu copies-colles ton bout de code pour éviter de remplir la discussion
17:56 <No`> après, tu obtiens un lien que tu peux copier-coller, comme ça, ceux qui veulent peuvent aller regarder de plus près
17:56 <feth> exemple : pastebin.com, pastebin.ca...
17:57 <No`> donc, en ce qui te concerne: if chaine == chaine[::-1]: print("c'est un palindrome")
17:57 <feth> c'est l'occasion de lire la doc sur les slices
17:58 <afpy_user|67833> Et il faut avoir un compte sur le site pastebin?
17:59 <No`> pas forcément.
17:59 <No`> la plupart permettent de créer des pastes de manière anonyme
18:00 <afpy_user|67833> http://pastebin.com/e4zJAEw4
18:00 <No`> afpy_user|67833: voilà
18:01 <No`> et donc, maintenant, tu vas remplacer toutes ces lignes (de 1 à 9) de code par une seule
18:01 <feth> http://www.diveintopython.net/native_data_types/lists.html
18:03 <afpy_user|67833> Et si possible, pourriez-vous me guider à partir de mon script. Comme je suis un peu débutant, il ya des notions dont vous me parler que je ne maîtrise pas.
18:04 <No`> bon
18:04 <No`> afpy_user|67833: feth t'a indiqué que pour avoir le miroir d'une chaîne, il suffisait de cette expression: chaine[::-1]
18:05 <No`> donc au lieu de boucler sur les éléments, etc, tu peux comparer chaine avec son miroir
18:05 <No`> sans boucler
18:05 <No`> chaine = input()
18:05 <No`> miroir = chaine[::-1]
18:05 <No`> si chaine == miroir... c'est un palindrome
18:05 <No`> tu y es ?
18:06 <afpy_user|67833> ah ok
18:07 <afpy_user|67833> mais par curiosité, pourquoi mon code ne marche pas?
18:07 <No`> parce que tu cherches à comparer deux objets de nature différente
18:07 <No`> une liste n'est pas une chaîne, donc déjà le comparateur ne peut pas renvoyer "égal"
18:08 <No`> pour t'en convaincre, juste avant la comparaison, fais donc un petit "print" de tes variables
18:12 <afpy_user|67833> ah c'est vrai c'est pas la même chose.
18:15 <afpy_user|67833> On ne peut pas donc transformer une chaîne en une liste ou vice-versa?
18:22 <afpy_user|67833> En tous, merci pour votre aide ;-)
20:15 <alain_afpy> matin