Problème de liste!
Résolu/Fermé
theolefou
Messages postés
14
Date d'inscription
vendredi 10 janvier 2014
Statut
Membre
Dernière intervention
24 novembre 2014
-
10 janv. 2014 à 23:41
theolefou Messages postés 14 Date d'inscription vendredi 10 janvier 2014 Statut Membre Dernière intervention 24 novembre 2014 - 11 janv. 2014 à 00:00
theolefou Messages postés 14 Date d'inscription vendredi 10 janvier 2014 Statut Membre Dernière intervention 24 novembre 2014 - 11 janv. 2014 à 00:00
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
2 réponses
seabust
Messages postés
741
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
30 juillet 2015
101
10 janv. 2014 à 23:55
10 janv. 2014 à 23:55
Bonjour,
Ton problème est que tu essaies de comparer une liste de nombre (ce qui est tiré au sort par l'ordinateur) avec une liste de caractères (ce que tape l'utilisateur).
En effet la fonction input() te renvoie une chaine de caratères. Par exemple l'utilisateur pourrait très bien écrire des lettres, il n'est pas forcé d'écrire des chiffres.
C'est pour cela que les nombre et ce qui est tapé au clavier sont des choses très différentes et ne peuvent pas être égales.
Pour cela tu as deux possibilités :
- Soit tu transforme tout en caractères
- Soit tu transforme tout en nombres.
Dans le second cas, celui où tu essaie de transformer les caractères tapés par l'utilisateur en nombres, ton programme va planter si on écrit des lettres à la place de chiffres (il est impossible de convertir la lettre "a" en un nombre).
Je te conseille donc la première solution
Première solution
remplacer :
par
( la fonction str transforme un nombre en chaine de caractères)
Secondesolution
remplacer (dans le else)
par
(la fonction int transforme une chaine de caractère en entier, plante sil cela n'est pas possible)
Ton problème est que tu essaies de comparer une liste de nombre (ce qui est tiré au sort par l'ordinateur) avec une liste de caractères (ce que tape l'utilisateur).
En effet la fonction input() te renvoie une chaine de caratères. Par exemple l'utilisateur pourrait très bien écrire des lettres, il n'est pas forcé d'écrire des chiffres.
C'est pour cela que les nombre et ce qui est tapé au clavier sont des choses très différentes et ne peuvent pas être égales.
Pour cela tu as deux possibilités :
- Soit tu transforme tout en caractères
- Soit tu transforme tout en nombres.
Dans le second cas, celui où tu essaie de transformer les caractères tapés par l'utilisateur en nombres, ton programme va planter si on écrit des lettres à la place de chiffres (il est impossible de convertir la lettre "a" en un nombre).
Je te conseille donc la première solution
Première solution
remplacer :
s = [randrange(0,10),randrange(0,10),randrange(0,10),randrange(0,10)]
par
s = [str(randrange(0,10)),str(randrange(0,10)),str(randrange(0,10)),str(randrange(0,10))]
( la fonction str transforme un nombre en chaine de caractères)
Secondesolution
remplacer (dans le else)
P = [input('chifre 1'), input('chifre 2'), input('chifre 3'), input('chifre 4')]
par
P = [int(input('chifre 1')), int(input('chifre 2')), int(input('chifre 3')), int(input('chifre 4'))]
(la fonction int transforme une chaine de caractère en entier, plante sil cela n'est pas possible)
theolefou
Messages postés
14
Date d'inscription
vendredi 10 janvier 2014
Statut
Membre
Dernière intervention
24 novembre 2014
2
11 janv. 2014 à 00:00
11 janv. 2014 à 00:00
je vien de tester avec la deuxième solution c'est parfait! sa fonctionne à la perfection!
merci
merci