Inscription / Connexion Nouveau Sujet

1 2 +


Niveau terminale
Partager :

CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python

Posté par
ishaal
16-11-20 à 20:52

Bonjour,
J'ai un devoir en maths sur clé de contrôle d'un numéro INSEE. Mais je n'arrive oas parce qu'on me demande de l'écrire en langage python.
Voici le sujet :
Le numéro INSEE est composé de 13 chiffres, suivi d'une clé de contrôle de deux chiffres. Pour déterminer la clé C, on calcule le rest de la division euclidienne par 97 du numéro N formé des treize premiers chiffres, alors C= 97-R.
1) Écrire en python une fonction clé qui prend en argument une liste composée des treize chiffres du numéro N et retourne la clé C.
2) Écrire en python une fonction contrôle qui prend en argument une liste composée des quinze chiffres du numéro INSEE et renvoie True si la clé est correcte, False sinon.
Merci d'avance de résoudre cette problème et de m'expliquer.
Cordialement
Ishaal

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 22:39

bonjour
qu'as tu fait pour l'instant?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 22:49

Bonjour,
Merci pour votre réponse.
En fait je n'ai rien fait. Parce que je ne comprends pas du tout d'où faut-il commencer. 🙍🏻‍♀️

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 22:51

on vous dit comment calculer C à partir de N, ne savez-vous pas comment le coder?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 22:58

No je n'ai pas fait ces types d'exercices avant. En fait j'ai commencé mes études en France, ça fait 2ans, c'est pourquoi il y a beaucoup choose que je n'ai jamais vu et donc je ne comprends pas. 🙍🏻‍♀️

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:05

savez-vous coder sous Python au moins?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:07

Oui on peu. J'apprends moi-même. Au lycée on n'a pas beaucoup fait du python.

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:08

comment obtenir le reste de la division euclidienne sous Python?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:10

Par a%b: reste de la division euclidienne de a par b.

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:13

très bien
on sait donc que R est le reste de la division euclidienne de N par ??
ensuite comment en déduire C ?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:18

Est-ce-que c'est N%C=R?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:19

il faut relire l'énoncé

ishaal @ 16-11-2020 à 20:52

on calcule le rest de la division euclidienne par 97 du numéro N formé des treize premiers chiffres, alors C= 97-R.

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:23

C'est donc C=97-R?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:24

oui mais que vaut R?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:27

Je ne comprends pas. Est-ce-que c'est 13? 😓

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:29

non

ishaal @ 16-11-2020 à 20:52

Pour déterminer la clé C, on calcule le rest de la division euclidienne par 97 du numéro N formé des treize premiers chiffres, alors C= 97-R.


ici, il est implicitement dit que R est ce que j'ai mis en rouge..
une idée maintenant pour écrire al fonction sous Python?

il se fait tard, je dois y aller, je laisse la main à quiconque le veut

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 16-11-20 à 23:41

R=97-C.

Okay merci pour votre aide. au revoir.

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 08:41

certes mais tu ne connais pas C.
R est le reste de la division euclidienne de N par 97 donc R= ...?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:16

Bonjour,
C'est 6? Sinon pouvez-vous me dire la valeur de R et l'expliquer s'il vous plaît ? Je n'y vraiment arrive pas.

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:17

Et c'est quoi le N? Si on ne connait pas sa valeur, comment je peux calculer R?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:21

N est les 13 premiers chiffres du numéro INSEE
lorsque tu écriras ta fonction (lis bien la question 1), N sera une donnée et non pas une inconnue
à partir de là quelle relation existe-t-il entre  R et N ?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:28

Oui ça j'ai compris que N est les 13 premiers chiffres du numéro INSEE.
R=N%97?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:47

oui
comment coder alors la fonction clé?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:53

Par soustrait la reste à partir de 97. Donc C=97-R.

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:54

certes mais, sous python, comment coder cette question?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 09:57

C'est ce que je ne comprends pas. Parce qu'on n'a pas fait python avec notre prof. 🙍🏻‍♀️

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 10:05

je ne vois pas l'intérêt d'un tel exercice si vous n'avez jamais codé sur Python puisqueque l'exercice ressemble à un exercice d'initiation sur Python?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 19:07

Si j'ai fait python en suites moi-même.
Ici j'ai essayé de résoudre C sous python.
Est-ce-que c'est bon ?

>>from maths import*
>>def (INSEE)
>>R= N%97
>>C= 97-R
>>return (C)

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 19:50

le module math n'est pas indispensable ici

comment se nomme la fonction?
pour coder une fonction qui prend en paramètre x et qui s'appelle math, on écrirait
def math(x):    

ensuite, il faut rajouter des retraits pour la fonction, ce que vous ne faites pas.

Posté par
ZEDMAT
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 21:56

Bonsoir,

En tenant compte des indications de bbjhakan, le script devrait ressembler à cela :

def cle(N):
    r=N%97
c=97-N%97
    return c

Posté par
ZEDMAT
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 22:06

envoi intempestif en essayant de modifier le script copié pour coller au plus près à ta proposition

def cle(N):
    r= N%97
    c=97-r
    return c


La fonction, je l'ai appelée cle() et son argument (unique) est N (n°INSEE).

Ne pas oublier les ":" en fin d'instruction, lesquels provoquent l'indentation (décalage) des lignes qui suivent.

J'ai testé avec mon numéro INSEE... j'ai obtenu la bonne clé

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 22:24

bonsoir ZEDMAT

ZEDMAT @ 17-11-2020 à 22:06

Ne pas oublier les ":" en fin d'instruction, lesquels provoquent l'indentation (décalage) des lignes qui suivent.

j'avais en effet oublié de le mentionner, merci

Posté par
ZEDMAT
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 22:37

Bonsoir bbjhakan,

Je ne faisais que passer... tu gardes la main bien sûr.

D'ailleurs compte tenu de mon grand âge , je vais bientôt me retirer pour aller dormir.

Bonne nuit.

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 22:54

Merci beaucoup @Zedmat et bbjhakan. J'ai bien compris maintenant. J'essaie de faire la 2e question. Mais je voulais savoir est-ce-que c'est lié abec la 1ère question ? Et comment je peux comprendre si la clé est correcte ou pas?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:03

on vous donne 15 chiffres dont les 2 derniers constituent la clé: il faut extraire ses 2 chiffres
avec les 13 restants, on calcule la "vraie" clé grâce à la question 1
on vérifie si les 2 chiffres extraits et la clé calculée sont égaux

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:19

2) def contrôle(N):
    R= N%97
    C=97-R
      if C==2 chiffres extraits :
         return (True)
       else:
          return (False)

Est-ce-qu'il est correcte ? Mais comment je peux définir ses 2 chiffres extraits ?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:23

on y est presque dans le principe
ici on a plus N composé de 13 chiffres, mais composé des 15 chiffres complets
un nombre qui s'écrit abc est égal à 100a+10b+c
une idée pour avoir c (à partir de division euclidienne par exemple) ?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:35

excusez-moi je n'avais pas lu qu'il s'agissait d'une liste de 15 chiffres, ça change tout
comment récupérer les chiffres à partir d'une liste?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:41

Désolée. Je n'ai pas compris ce que vous avez dit tout à l'heure.

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:43

oubliez mon message de 23:23

à partir d'une liste comment avoir accès aux éléments de cette liste ?
par exemple si L=[0,3,7], quelle requête écrire pour avoir le chiffre 3 ?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:53

Est-ce-qu'il est return liste [1] pour avoir le chiffre 3?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 17-11-20 à 23:56

ici la liste s'appelle L donc il faut bien aller chercher L[1] en effet

dans une liste de 15 chiffres, comment avoir les deux derniers ?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 00:01

Ah okay. Donc pour les derniers deux de 15 chiffres est L[13, 14].

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 12:02

c'est plutôt L[13] et L[14]
à partir de ces deux chiffres, comment faire pour avoir la clé?

exemple:
L=[1,5,6,4,8,9,3,4,5,7,8,6,5,9,4]
on a L[13]=9 et L[14]=4, à partir de ces deux chiffres, comment obtenir le nombre 94 ?

d'ailleurs, il faudra revenir à la question 1 car il s'agissait aussi d'une liste N et non pas d'un nombre N mais on y reviendra une fois qu'on aura terminé cette question.

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 13:03

Pour obtenir 94, il faut écrire
return (L[13],L[14]), non?

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 13:18

non, pour écrire 94 le chiffre des dizaines est 9 et le chiffre des unités est 4 donc 94=910+41

comment faire à partir de L[13] et L[14] ?

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 13:23

Mais pourquoi onn ne peut pas écrire comme ça ?
Si 94= 9×10+ 4×1 alors avec L[13] et L[14]:
return (L[13]×10+L[14]×1)

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 13:55

car écrire (L[13],L[14]) retourne le couple (9,4) et non pas le nombre 94

ishaal @ 18-11-2020 à 13:23

(L[13]×10+L[14]×1)

c'est correct

maintenant pour revenir à l'algorithme,
bbjhakan @ 17-11-2020 à 23:03

on vous donne 15 chiffres dont les 2 derniers constituent la clé: il faut extraire ses 2 chiffres c'est ce que l'on vient de faire
avec les 13 restants, on calcule la "vraie" clé grâce à la fonction de la question 1
on vérifie si les 2 chiffres extraits et la clé calculée sont égaux

Posté par
ishaal
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 14:59

Comme N est une liste composée des treize chiffres, alors comment définir N comme une liste dans la 1ère question ?

Et pour 2)
def contrôle(N):
    R= N%97
    C=97-R
      if C== L[13]×10+L[14]×1
         return (True)
       else:
          return (False)

Posté par
bbjhakan
re : CLÉ DE CONTRÔLE D'UN NUMÉRO INSEE Python 18-11-20 à 15:54

c'est presque ça, sauf qu'il faut revoir le calcul de C car on a une liste et non pas un nombre
mais pour ce problème, on applique la fonction de la première question pour calculer C
en revanche, la donnée est une liste de 15 chiffres, or il nous en faut que 13 (on ne veut pas les 2 derniers car il s'agit de la clé) et alors on applique la fonction C = cle(liste sans les 2 derniers chiffres)
et on fait la vérification

pouvez-vous vérifier qu'il s'agit bien 'de liste" dans l'énoncé, car ça rend le programme bien plus difficile surtout que si vous êtes encore dans l'initiation à Python.

1 2 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !