IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

une calculette simple


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Par défaut une calculette simple
    Créer une calculette simple qui réalisera les opérations addition et multiplication sur des entiers.

    Ce script prendra les arguments suivants :
    opération (add ou mult) entier1 entier2 ... entierN
    et renverra le résultat de l'opération demandée.

    Exemple :
    $ ./calculette.py add 1 2 3 4 5
    resultat=15

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Nous avons pour politique de ne pas faire les exercices d'école à la place des étudiants.

    Mais nous acceptons d'aider, donc montre-nous ce que tu as déjà fait et explique où tu bloques.

    Éventuellement, si tu as un message d'erreur copie-le ici dans son intégralité.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Par défaut
    j'ai essayer de faire ce script:

    ******************

    Code bash : 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
    #!/bin/bash
     
    taille="$#-2"
    entier=0
     
    if [$1="add"];then
    {
        for(1=0;1<taille;i--);do
     
            entier=$entier+$1
            shift
         done
         echo "resultat=$entier"
    }
    elif [$1="mult"];then
    {
        for(1=0;1<taille;i--);do
     
            entier=$entier*$1
            shift
        done
        echo "resultat=$entier"
    }
    else
        echo "operation impossible"
    fi

    ******************

    Mais ça ne marche pas.

  4. #4
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    premièrement :
    deuxièmement : c'est pas du python donc bon ... si j'ai bien compris le bute de l'exercice (que je trouve très moyen) est de produire du python

    bon, il faut que vous faut faire (en python bien sûr)
    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
    créez une fonction qui prend n argument (regardez sys.argv)
    	vérifier que le 1er arg est add ou mult
    		vérifier que la fonction prend bien plusieurs arguments (>=2)
    			vérifier que arg<sub>2</sub>, arg<sub>3</sub>, ..., arg<sub>n</sub> soit des nombres
    				si 1er argument vaut add
    					...
    					afficher résultat
    				sinon si 1er argument vaut mult
    					...
    					afficher résultat
    			sinon
    				afficher un message d'erreur expliquant à l'utilisateur comment utiliser le script
    		sinon
    			afficher un message d'erreur expliquant à l'utilisateur comment utiliser le script
    	sinon
    		afficher un message d'erreur expliquant à l'utilisateur comment utiliser le script
    je vous est mâcher le travail de réflexion sur le code (après tout vous avez fait l'effort d'une production, même si elle n'est pas en python), mais je pense que vous allez vous mordre les doigts sur certains points que j'ai omis de préciser.
    Bien sur il est possible de faire plus concis, mais chaque chose en son temps
    Bon courage.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Citation Envoyé par bkam20 Voir le message
    1 = 0 ??
    Avec les maths modernes je suis perdu.

  6. #6
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par VinsS Voir le message
    1 = 0 ??
    Avec les maths modernes je suis perdu.
    C'est peut-être la lettre L minuscule...

  7. #7
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Eh !
    Ne regardez pas si vous n'avez pas trouvé une solution pas vous-même, sinon j'irai hanter et faire boguer vos codes python pour l'éternité en leur jetant des mauvais sort avec quelques Exceptions aléatoires.

    Deux simples exemples, l'un utilisant itertools, l'autre les méthodes de float.
    Code python : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    import itertools
    import operator
     
    def operation(type_, *nums) :
        try :
            res = tuple(itertools.accumulate(nums, getattr(operator, type_)))
        except ZeroDivisionError :
            res = 'La tête à toto 0÷0',
            #res = 'nan',
        except Exception as e :
            res = e.args
        if res :
            return res[-1]
        else :
            return 0
     
    def operationF(type_, *nums) :
        res = float(nums[0])
        try :
            for n in nums[1:] :
                res = getattr(float, type_)(res, n)
        except ZeroDivisionError :
            res = 'La tête à toto 0÷0'
        return res
     
    if __name__ == '__main__' :
        import sys
     
        operateurs = {
            ('+', 'add', 'plus', 'a', 'additionner',):'__add__',
            ('-', 'sub', 'moins', 's', 'soustraire',):'__sub__',
            ('x', 'mul', 'fois', 'm','multiplier', '×'):'__mul__',
            ('/', 'div', 'quotient', 'd', 'diviser', '÷'):'__truediv__',
        }
     
        help = '({}) numérique, numérique, (numerique, ...)'.format(
            ', '.join([n[0] for n in operateurs])
        )
        print(help)
     
        if len(sys.argv) > 3 :
            for o in operateurs:
                if sys.argv[1] in o:
                    try:
                        nums = tuple(float(n) for n in sys.argv[2:])
                    except ValueError :
                        res = (
                            'Impossible d\'effectuer une opération'
                            ' avec des valeurs non numériques.'
                        )
                    else :
                        #res = operation(operateurs[o], *nums)
                        res = operationF(operateurs[o], *nums)
                    break
            else:
                res = 'Opérateur {} non supporté.'.format(sys.argv[1])
            print('>>>', res)


    Que j'estime pas trop mal, jusqu'à ce wiztricks vienne casser mon trip pour torcher ça avec 1 ou 2 lambdas et une boucle voir une liste en intention

    Je m'ennuyais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. InputMismatchException dans une calculette simple
    Par nevoa dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 12/06/2014, 17h54
  2. le meilleur SGBD pour une application simple
    Par nousss77 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 23/09/2005, 07h45
  3. [C#] Redirection d'une frame vers une page simple
    Par st0j dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/06/2005, 15h42
  4. Conseils sur une API simple pour Windows
    Par alejandro dans le forum Choisir un environnement de développement
    Réponses: 4
    Dernier message: 28/04/2005, 18h12
  5. Réponses: 4
    Dernier message: 28/12/2003, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo