Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Exercice sur les Tuples


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Exercice sur les Tuples
    Bonjour à tous,

    J'ai bientôt un examen d'informatique, sur un ancien sujet une question me pose problème.
    En fait j'ai réussi à trouver un programme qui fonctionne mais il n'est absolument pas pertinent.
    Je n'arrive pas à trouver un programme plus efficace! (au niveau de la fonction decouper()) Ca me perturbe grandement.

    Ainsi, je viens ici pour vous demander de l'aide si vous le voulez bien. Voici le sujet:



    Voici mon programme:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
     
    def tranche_de_droite(n):
        return n%100
     
    def autres_tranches(n):
        return n//100
     
    def decouper(n):
     
        tupl=()
        tupl2=()
     
        while n >= 10:
     
            tupl = tupl + (tranche_de_droite(n),)
            n = int ((n - (n%100) ) / 100)
     
        if(n != 0):
            tupl = tupl + (n,)
     
        for m in range (len(tupl)-1, -1, -1):
            tupl2 = tupl2 + (tupl[m],)
     
        return tupl2
     
     
        return tupl2


    Je vous remercie infiniment de prendre le temps de me répondre.

  2. #2
    Expert éminent
    Salut,

    C'est bon mais il faut utiliser les deux fonctions précédentes et crée d'abord une liste, tu pourras ajouter à gauche chaque nouvelle valeur.
    Dans le genre:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> def decouper(n):
    ...     l = []
    ...     while n:
    ...             d, n = tranche_de_droite(n), autres_tranches(n)
    ...             l.insert(0, d)
    ...     return tuple(l)
    ... 
    >>> decouper(254786241)
    (2, 54, 78, 62, 41)

  3. #3
    Nouveau membre du Club
    Salut à toi Vinss,

    Le seul soucis c'est qu'on a pas encore vu les listes en Python, on a juste vu les tuples, les boucles, les structures conditionnelles et les variables.

    Merci pour ton aide.

  4. #4
    Expert éminent sénior
    Salut,

    Citation Envoyé par shurkan Voir le message
    Le seul soucis c'est qu'on a pas encore vu les listes en Python, on a juste vu les tuples, les boucles, les structures conditionnelles et les variables.
    Ben, vous récupérez l'algo. de VinsS et vous remplacez la liste par un tuple.
    La seule différence est dans l'accumulation des restes dans la boucle while: on est obligé de créer un nouveau tuple à chaque itération en ajoutant le nouveau reste au tuple de l'itération précédente.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé
    Bonjour,

    Attention aux détails. Dans les questions 2 et 3, l'énoncé n'interdit pas que n soit négatif.
    Or, -210%100 == 90 et -210//100 == -3.

    Cela dit, il s'agit peut-être d'un oubli de l'auteur de l'énoncé.

  6. #6
    Nouveau membre du Club
    @ Wiztricks, ça marche, merci bien.

    @pyramidev: bonjour, en effet vous avez raison je n'y avais pas songé.

###raw>template_hook.ano_emploi###