begin process at 2012 02 08 13:26:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > CALCULATRICE (AIDE SUR LES FONCTIONS EN PYTHON)

CALCULATRICE (AIDE SUR LES FONCTIONS EN PYTHON)


 Information sur la source

Note :
2,33 / 10 - par 3 personnes
2,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Classé sous :calculatrice, fonctions, tutorial, additions, soustractions Niveau :Débutant Date de création :08/07/2010 Date de mise à jour :08/07/2010 17:03:40 Vu :2 196

Auteur : matad0r

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Petit calculatrice très simple pour vous montrer comment utiliser les fonctions en Python.
Seul le début du code et le moment où l'on appelle la fonction sont intéressants !
Il faudrait aussi, normalement, mettre un bloc "try except" pour éviter une erreur si on ne rentre pas un int.

/!\ Ce code n'a d'intérêt que pour montrer comment utiliser les fonctions en Python. /!\

Source

  • import os
  • def additionner(nombre1, nombre2): # Définit la fonction "additionner" qui prend comme options deux nombres.
  • return nombre1 + nombre2 # La fonction retournera l'addition des deux options.
  • def soustraire(nombre1, nombre2): # Définit la fonction "soustraire" qui prend comme options deux nombres.
  • return nombre1 - nombre2 # La fonction retournera la soustraction des deux options.
  • def multiplier(nombre1, nombre2): # Définit la fonction "multiplier" qui prend comme options deux nombres.
  • return nombre1 * nombre2 # La fonction retournera la multiplication des deux options.
  • def diviser(nombre1, nombre2): # Définit la fonction "diviser" qui prend comme options deux nombres.
  • return nombre1 / nombre2 # La fonction retournera la division des deux options.
  • def modulo(nombre1, nombre2): # Définit la fonction "modulo" qui prend comme options deux nombres.
  • return nombre1 % nombre2 # La fonction retournera le modulo des deux options.
  • def exposant(nombre1, nombre2): # Définit la fonction "exposant" qui prend comme options deux nombres.
  • return pow(nombre1, nombre2) # La fonction retournera la puissance des deux options (pow = puissance). Que remarquez-vous ? Hé oui, pow est une fonction aussi ! :)
  • def table(nombre1, nombre2, nombre3):
  • print("")
  • while nombre1<nombre2: # Tant que le nombre de départ est inférieur au nombre d'arrivée :
  • print(nombre1, "x", nombre3, "=", nombre1 * nombre3) # On écrit : nombre à multiplier "qui change" x nombre a multiplier "statique" = au résultat ^^
  • nombre1 += 1 # On rajoute 1 au nombre à multiplier "qui change" pour que la prochaine multiplication ne soit pas identique.
  • print("================ Calculatrice Universelle ================") #
  • print("|| ||") #
  • print("|| 1) Additionner ||") #
  • print("|| 2) Soustraire ||") #
  • print("|| 3) Multiplier ||") # Affichage du menu.
  • print("|| 4) Diviser ||") #
  • print("|| 5) Modulo ||") #
  • print("|| 6) Puissance ||") #
  • print("|| 7) Tables ||") #
  • print("|| ||") #
  • print("==========================================================") #
  • choix = input() # Prend la saisie de l'utilisateur.
  • choix = int(choix) # La convertit en int.
  • if choix == 1:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • resultat = additionner(nombre1, nombre2) # Apelle la fonction "additionner" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print(nombre1, "+", nombre2, "=", resultat) # Affiche le résultat.
  • elif choix == 2:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • resultat = soustraire(nombre1, nombre2) # Apelle la fonction "soustraire" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print(nombre1, "-", nombre2, "=", resultat) # Affiche le résultat.
  • elif choix == 3:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • resultat = multiplier(nombre1, nombre2) # Apelle la fonction "multiplier" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print(nombre1, "x", nombre2, "=", resultat) # Affiche le résultat.
  • elif choix == 4:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • if nombre1 == 0 or nombre2 == 0:
  • print("On ne peut pas diviser par zéro ! :p")
  • os._exit(0)
  • resultat = diviser(nombre1, nombre2) # Apelle la fonction "diviser" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print(nombre1, "/", nombre2, "=", resultat) # Affiche le résultat.
  • elif choix == 5:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • resultat = modulo(nombre1, nombre2) # Apelle la fonction "modulo" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print("Le reste de la division de", nombre1, "par", nombre2, "est", resultat) # Affiche le résultat.
  • elif choix == 6:
  • print("Nombre n° 1.")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Nombre n°2.")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • resultat = exposant(nombre1, nombre2) # Apelle la fonction "exposant" et le retour (return xxx) sera stocké dans la variable "resultat".
  • print("")
  • print(nombre1, "exposant", nombre2, "=", resultat) # Affiche le résultat.
  • elif choix == 7:
  • print("Du nombre :")
  • nombre1 = input()
  • nombre1 = int(nombre1)
  • print("Au nombre :")
  • nombre2 = input()
  • nombre2 = int(nombre2)
  • nombre2 += 1
  • print("A multiplier par :")
  • nombre3 = input()
  • nombre3 = int(nombre3)
  • table(nombre1, nombre2, nombre3) # Apelle la fonction "exposant" et le retour (return xxx) sera stocké dans la variable "resultat".
  • else:
  • print("Choix invalide.")
import os

def additionner(nombre1, nombre2):  # Définit la fonction "additionner" qui prend comme options deux nombres.
    return nombre1 + nombre2        # La fonction retournera l'addition des deux options.

def soustraire(nombre1, nombre2):   # Définit la fonction "soustraire" qui prend comme options deux nombres.
    return nombre1 - nombre2        # La fonction retournera la soustraction des deux options.

def multiplier(nombre1, nombre2):   # Définit la fonction "multiplier" qui prend comme options deux nombres.
    return nombre1 * nombre2        # La fonction retournera la multiplication des deux options.

def diviser(nombre1, nombre2):      # Définit la fonction "diviser" qui prend comme options deux nombres.
    return nombre1 / nombre2        # La fonction retournera la division des deux options.
 
def modulo(nombre1, nombre2):       # Définit la fonction "modulo" qui prend comme options deux nombres.
    return nombre1 % nombre2        # La fonction retournera le modulo des deux options.

def exposant(nombre1, nombre2):     # Définit la fonction "exposant" qui prend comme options deux nombres.
    return pow(nombre1, nombre2)    # La fonction retournera la puissance des deux options (pow = puissance). Que remarquez-vous ? Hé oui, pow est une fonction aussi ! :)


def table(nombre1, nombre2, nombre3):
    print("")
    while nombre1<nombre2:    # Tant que le nombre de départ est inférieur au nombre d'arrivée :
        print(nombre1, "x", nombre3, "=", nombre1 * nombre3) # On écrit : nombre à multiplier "qui change" x nombre a multiplier "statique" = au résultat ^^
        nombre1 += 1 # On rajoute 1 au nombre à multiplier "qui change" pour que la prochaine multiplication ne soit pas identique.
    

print("================ Calculatrice Universelle ================")  #
print("||                                                      ||")  #
print("||                    1) Additionner                    ||")  #
print("||                    2) Soustraire                     ||")  #
print("||                    3) Multiplier                     ||")  # Affichage du menu.
print("||                    4) Diviser                        ||")  #
print("||                    5) Modulo                         ||")  #
print("||                    6) Puissance                      ||")  #
print("||                    7) Tables                         ||")  #
print("||                                                      ||")  #
print("==========================================================")  #

choix = input()     # Prend la saisie de l'utilisateur.
choix = int(choix)  # La convertit en int.

if choix == 1:             
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    resultat = additionner(nombre1, nombre2)  # Apelle la fonction "additionner" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print(nombre1, "+", nombre2, "=", resultat) # Affiche le résultat.
    

elif choix == 2:
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    resultat = soustraire(nombre1, nombre2)  # Apelle la fonction "soustraire" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print(nombre1, "-", nombre2, "=", resultat)  # Affiche le résultat.
    

elif choix == 3:
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    resultat = multiplier(nombre1, nombre2)   # Apelle la fonction "multiplier" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print(nombre1, "x", nombre2, "=", resultat)  # Affiche le résultat.
    

elif choix == 4:
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    if nombre1 == 0 or nombre2 == 0:
        print("On ne peut pas diviser par zéro ! :p")
        os._exit(0)
    
    resultat = diviser(nombre1, nombre2)   # Apelle la fonction "diviser" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print(nombre1, "/", nombre2, "=", resultat)  # Affiche le résultat.
    

elif choix == 5:
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    resultat = modulo(nombre1, nombre2)  # Apelle la fonction "modulo" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print("Le reste de la division de", nombre1, "par", nombre2, "est", resultat) # Affiche le résultat.
    
elif choix == 6:
    print("Nombre n° 1.")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Nombre n°2.")

    nombre2 = input()
    nombre2 = int(nombre2)

    resultat = exposant(nombre1, nombre2)  # Apelle la fonction "exposant" et le retour (return xxx) sera stocké dans la variable "resultat".

    print("")
    print(nombre1, "exposant", nombre2, "=", resultat) # Affiche le résultat.

elif choix == 7:
    print("Du nombre :")

    nombre1 = input()
    nombre1 = int(nombre1)

    print("Au nombre :")

    nombre2 = input()
    nombre2 = int(nombre2)
    nombre2 += 1

    print("A multiplier par :")

    nombre3 = input()
    nombre3 = int(nombre3)

    table(nombre1, nombre2, nombre3)  # Apelle la fonction "exposant" et le retour (return xxx) sera stocké dans la variable "resultat".

    
else:
    print("Choix invalide.")



 Historique

08 juillet 2010 16:10:53 :
Fautes d'orthographe et modification de la description.
08 juillet 2010 16:18:02 :
Re-modification de la description.
08 juillet 2010 16:50:51 :
Ajout des fonctions : tables et puissances.
08 juillet 2010 17:03:40 :
Ajout de la gestion d'erreur de division par zéro.

 Sources du même auteur

Source avec une capture HTTP FORWARDER

 Sources de la même categorie

CALCULATRICE, INTRODUCTION AU LAMBDA par xeolin
UTILISATION DES PROPRIÉTÉS EN PYTHON par FloZix
UNIX - MODULE TIME : TEMPS D'UNE FONCTION ALGORITHMIQUE AVEC... par loupmagic
Source avec Zip TUTORIEL - INTRODUCTION À WXPYTHON par aera group
Source avec Zip TUTORIEL - COMPILATION AVEC PY2EXE par aera group

 Sources en rapport avec celle ci

CALCULATRICE LIGNE DE COMMANDE - CALCUL EXACT par Clempython
Source avec Zip Source avec une capture LE CALCULATOR DE RAYGOLD VERSION 3.1 par raygold
CALCULATRICE, INTRODUCTION AU LAMBDA par xeolin
Source avec Zip CALCULATRICE SIMPLICISTE SOUS TKINTER par elnabo
MA PREMIERE CALCULATRICE EN PYTHON!! par djisse95

Commentaires et avis

Commentaire de PlugnPlay666 le 08/07/2010 22:15:50 4/10

Des commentaires oui, trop de commentaires non . . . Tes commentaires de définition de fonctions sont inutiles.

Ensuite, pour ton menu, connaît tu les triples quotes ? (""")

Car tu peux le simplifier énormément en ceci : http://pastebin.com/zdbkRWPj

De plus, Modulo pour quelqu'un qui n'a jamais programmé ça ne veux strictement rien dire . . .
Je te passe la fonction qui permet de faire une vrai division comme les gens les connaissent, je te laisse le soin de faire quelque chose pour afficher le résultat de la division entière avec le reste un peu après (sous la forme R = reste)

Sinon, par rapport à la factorisation, les lignes 42 et 43 tu peux les remplacer par choix = int(input())
Pareil pour tous les autres moments où tu désires que l'utilisateur rentre un nombre.
Sinon, comme tu l'as dit dans ta description, il faudrait rajouter des gestions d'exceptions, mais si tu ne le fait pas, les débutants vont faire des codes qui vont bugger tout le temps car il n'auront pas mis ceci dans leurs codes, par conséquent tu te dois de le faire.
J'ai également vu quelque chose d'absolument horrible dans ton code juste avant l'affichage du résultat, tu met un print(""), au lieu de faire cette atrocité, met un \n au début de ta ligne suivante, tu verras que ton code s'allègera. C'est ça la factorisation, réduire les lignes de code le plus possible (bien évidemment, pas au détriment de la lisibilité)

Bon, voilà j'en ai fini, bon courage ;)

PS: C'est une critique constructive que j'ai essayé de faire.

Commentaire de matad0r le 09/07/2010 08:22:50

Merci de ton commentaire, cependant je l'ai précisé, ce code est uniquement pour comprendre comment marchent les fonctions et leurs retours plus que pour une calculatrice.
Je vais cependant l'améliorer suite à tes conseils, merci !

Commentaire de Julien39 le 09/07/2010 16:19:54 administrateur CS 2/10

Je pense que tes fonctions sont très mal choisies, elles n'apportent rien et au contraire, ton code devient plus compliqué, il est plus simple et plus intuitif d'utiliser directement n1 + n2 que additionner(n1, n2).

En revanche, tu pourrais faire des fonctions qui te permettent de gérer l'affichage qui n'est pas très bon,

Pour la remarque du modulo, ca existe aussi en mathématiques, mais modulo n'est pas un opérateur, l'opérateur est la congruence. Ou tu peux l'appeler division euclidienne.

Commentaire de aera group le 09/07/2010 19:02:24

1 + 1 ? 0 [2] !!!!

Commentaire de aera group le 09/07/2010 19:08:31

pas marrent CodeS-SourceS prend pas le signe congrus ...

Bon alors en moi strict : 1 + 1 = 0 [2] !!!! ("un plus un congrus à zéro modulo deux")

Commentaire de Julien39 le 10/07/2010 07:55:07 administrateur CS

oui, 1 + 1 = 0 [2] et alors ?

Commentaire de aera group le 10/07/2010 10:36:24

Rien c'était juste pour montrer à notre ami Plug & Play ce que voulait dire modulo ... Rien d'important. :)

Commentaire de matad0r le 10/07/2010 14:33:20

Ami Plug & Play ?

Commentaire de aera group le 11/07/2010 20:00:34

"Ami Plug & Play ?"

Façon de parlé ;)

Commentaire de PlugnPlay666 le 11/07/2010 22:52:31

@Aera > Je crois qu'il se demandait de qui tu parlais.
@Matad0r > Il parlait de moi ;)

Au fait Aera, je n'ai pas encore étudié les modulos en cours (je passe en seconde) c'est pourquoi je pensais que les modulos n'étaient utilisés qu'en programmation . . .

Sinon, il serait bien de faire des commentaires sur la source hein ! ^^
C'est quand même le but =P

Commentaire de matad0r le 13/07/2010 17:53:30

Aaaaah oui d'accooord ! :)
J'avais pas vu ton pseudo. :p

Commentaire de megabraker le 13/07/2010 21:41:08

python implémente une calcule par deffaut :/
Try eval.....

Commentaire de xeolin le 06/09/2010 18:35:58 1/10

trash code.

voila la version 2.0 de ton code :

while 1 : print eval(raw_input(">>>"))


et puis franchement ;

print("Du nombre :")
nombre1 = input()
nombre1 = int(nombre1)

écrit le comme ça :

nombre1=int(input("Du nombre :"))


deplus le int est inutile puisque input renvoit TOUJOURS un integer. (sauf dans py 3.0 que tu as pas.)

et puis franchement... Essaie d'avoir des qualités dans ton programme. (oui, c'est exactement ce que je veut dire.)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Calculatrice qui trace les fonctions du second degré [ par micha_jonathan ] Bonjour, je suis actuelement entrain de cr&#233;er une calculatrice en python qui permet de tracer les fonction du second degr&#233;. J'ai r&#233;alis Débutant, complètement perdu... [ par Mgiv64 ] Bonjour à tous,  J'ai programmé une petite application qui réalise des backup d'un fichier de données (d'une application comptable).Mon programme loca Probleme de "Package" [ par elnabo ] Bonjour, voila comme vous avez peut-être vu j'ai codé une petite calculatrice basique (code, ici: [url=http://www.pythonfrance.com/codes/CALCULATRICE- Comment créer des includes ou réutiliser des fonctions [ par judre ] Bonjour, Je viens du php.&nbsp; Pour r&#233;-utiliser les fonctions, il s'agit grossi&#232;rement de mettre le code dans un fichier et d'appeler ce f


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales