J'ai juste remarqué cette erreur (mais il doit y en avoir d'autres), sinon ton code pose un problème quand on teste le numéro donné par wikipedia dans son exemple pour l'algo de Luhn.
Numéro : 972487086 doit être fonctionnel.
Sinon par index on peut fonctionner de cette façon, à vérifier, j'ai fais ça vite fait
# -*- coding:utf8 -*-
def verifCarteValide(num_carte):
"""Vérifie que le numéro de carte satisafait une somme de contrôle luhn mod-10."""
somme=0
for index in range(len(num_carte)):
if index!=0 and index%2==0:
somme+=int(num_carte[index])
else:
chiffre=int(num_carte[index])*2
if chiffre>9:
chiffre-=9
somme+=chiffre
else: somme+=chiffre
return somme%10==0
Bonsoir, je me suis laissé tenter voici ma solution, je suis pas sur pour la fin (proposition d'un numéro valide):
nb = 17067846465464145
def luhn(nb):
r = 0
r += int(str(nb)[-1])
for i, x in enumerate(str(nb)[::-1][1:]):
if (i % 2 == 0):
x = int(x) * 2
if (int(x) > 9):
for c in str(x):
r += int(c)
else:
r += int(x)
else:
r += int(x)
return r
if (luhn(nb) % 10 == 0):
print("Nombre {} Valide !".format(nb))
else:
print("Nombre {} Invalide !".format(nb))
for i in range(1, 10):
nnb = str(nb) + str(i)
if (luhn(int(nnb)) % 10 == 0):
print("Ce numéro serait valide: {}".format(nnb))
bonsoir j'ai un probleme,jai creer un fichier en notepad contenant plusieurs clients mais j'ai besoin afficher un client particulier dans ce fichier,je ne trouve pas de code pour cela
def luhn_algorithm(number):
number = reversed(str(number))
gen_nb = (int(nb)*2 if ind%2 else int(nb) for ind, nb in enumerate(number))
sum_nb = sum(nb if nb < 10 else (nb%10 + nb//10) for nb in gen_nb)
return not sum_nb%10
#VRAI
print(luhn_algorithm(8763))
print(luhn_algorithm(543215))
#FAUX
print(luhn_algorithm(543210))
print(luhn_algorithm(1111))
Testé avec les nombres de wiki et ma carte bleue (c'est confirmé, ma banque ne m'en a pas filé une fausse )
Bonjour, j'ai besoin d'aide pour un devoir de snt sur python: Une carte bancaire est associée au code 1234. Ecrire un programme permettant de bloquer la carte bancaire au bout de trois essais sans utiliser de boucle.
@EvaDurin: créés un nouveau sujet avec ton problème plutôt que de déterrer un sujet datant de 4 ans et profites en aussi pour nous mettre un début de code de ce que tu as fait.
sur la page du forum "Langage Python", sous le titre, il y a la pagination à gauche et à droite un bouton pour créer un nouveau sujet. Il renvoie vers le bas de la page, avec un formulaire prêt à être rempli.
Je ferme ici.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)