Sagot :
Réponse :
Bonsoir,
1)
Pour récupérer les 13 premiers chiffres de "secu", qui est considéré comme un entier 'int', nous devons transformer "secu" en 'str' qui est en fait une liste de caractère, ce qui nous permettra de récupérer les éléments de la liste que l'on veut grâce à l’indexation de celui-ci, on stockera ensuite le résultat en le retypant en entier 'int', puis on le stockera dans la variable secu13:
secu13 = int(str(secu)[:13])
Ici, on vient chercher les 13 premiers éléments de la liste.
2)
Le même principe, sauf que cette fois-ci c'est les deux derniers éléments de la liste que nous voulons.
secuCle = int(str(secu)[-2:])
3) et 4)
Voici les fonctions Python:
def CLE(N):
cle = 97 - (N % 97)
return cle
def Validation(secu):
secuCle = int(str(secu)[-2:])
secu13 = int(str(secu)[:13])
cle = CLE(secu13)
if (secuCle == cle):
return ("VALIDE")
else:
return ("INVALIDE")
s = int(input("Entrez les 15 chiffres du numéro de sécurité sociale: "))
print(Validation(s))
Dans la fonction "CLE" qui prend en argument les 13 premiers chiffres du numéro de sécu, on calcule simplement le résultat de 97 moins le modulo (grâce à l'opérateur '%') de 97, et on retourne le résultat, dans la variable "cle".
Dans la fonction validation, qui prend en paramètre le numéro de sécurité sociale, on stocke comme dans la question 1 et 2 les 2 derniers chiffres correspondants à la clé, ainsi que les 13 premiers chiffres du numéro de sécu, on fait ensuite appel à la fonction "CLE", afin de calculer la cle de sécu, et on vérifié si les deux derniers chiffres du numéro de sécurité sociale entré sont égaux au numéro de sécurité sociale calculé, si c'est le cas on retourne "VALIDE", sinon "INVALIDE".
Dans "s" on demande la saisie du numéro de sécurité sociale, et on affiche grâce à print() le résultat de la vérification de la validité du numéro de sécu grâce à la fonction Validation().
Si tu as des questions n'hésites pas.