Exercice python : numéro client à partir du prénom, nom, numéro de téléphone [Résolu]

Signaler
-
Messages postés
29493
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2021
-
Bonjour,

je dois rendre ce programme vendredi seulement je ne comprends absolument rien. Pourriez vous m'aidé. merci

carnetAdresses=[]

def nom()->str:
    """
    le nom doit être écrit en majuscules
    """
    return input("nom du client?\n")

def prénom()->str:
    """
    le prénom doit être avoir sa première lettre écrite en majuscule
    et deux lettres au minimum
    """
    return input("prénom du client?\n")

def numeroTelephone()->int:
    """
    le numéro de téléphone doit être composé de 10 chiffres
    """
    return input("numéro de téléphone du client?\n")

def numeroClient(n,p,nt)->str:
    xxxxxxxxxxxxx
    xxxxxxxxxxxxx
    xxxxxxxxxxxxx
    return yyyyyy

    """
    le numéro client doit être composé
      deux lettres du nom
    + deux lettres prénom
    + deux derniers chiffres n° téléphone
    """

def ajoutClient(carnetAdresses):
    n=nom()
    p=prénom()
    nt=numeroTelephone()
    nc=numeroClient(n,p,nt)

    return carnetAdresses.append([n, p,nt,nc])

def choixAjout():
    a= input("Voulez vous rajouter un client?")
    if a== "o":
        ajoutClient(carnetAdresses)
        choixAjout()
    return

def afficheListeClients(liste):
    for i in range (len(liste)):
        déco(liste)
        for j in (liste[i]):
            print("|\t",j,"\t|",end='')
        print()

def déco(liste):
    max=0
    taille=0
    for i in range (len(liste)):
        for j in liste[i]:
            taille+=len(j)
        if taille>max:
            max=taille
        taille=0
    print("-_"*max)


def progPrincipal():
    choixAjout()
    afficheListeClients(carnetAdresses)

progPrincipal()

2 réponses

Messages postés
13826
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 janvier 2021
776
Messages postés
29493
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2021
7 010
Bonjour,

1) Visiblement tu dois écrire la fonction numeroClient qui prend en paramètre le nom (n), le prénom (p) et le numéro de téléphone (nt).

def numeroClient(n, p, nt)->str:
   ...
    """
    le numéro client doit être composé
      deux lettres du nom
    + deux lettres prénom
    + deux derniers chiffres n° téléphone
    """


Le commentaire de cette fonction t'indique clairement quelle opération est à réaliser.

2) Pour apprendre à les faire, tu peux regarder les opérations que python permet de faire sur les chaînes de caractères, en particulier :

3) Ensuite, tu peux regarder quel est le type des variables n, nt, p et leur type :

def numeroClient(n, p, nt)->str:
    print(n, type(n))
    print(p, type(p))
    print(nt, type(nt))

    return yyyyyy

    """
    le numéro client doit être composé
      deux lettres du nom
    + deux lettres prénom
    + deux derniers chiffres n° téléphone
    """


Pour finir, quelques remarques. l'exercice est un peu scolaire car une telle fonction de hashage risque fortement d'engendrer des collisions alors qu'il s'agit de personnes différentes, donc on écrirait directement :

def numeroClient(n, p, nt)->str:
    return hash(n, p, nt)

    """
    le numéro client doit être composé
      deux lettres du nom
    + deux lettres prénom
    + deux derniers chiffres n° téléphone
    """


... mais ce n'est pas ce qui est demandé dans ton exercice :) De plus, je déconseille l'utilisation d'accent dans les noms de fonction, c'est une excellente manière d'avoir des problèmes.

Et enfin, comme indiqué par yg_be :

Bonne chance