Comment faire un programme de calcul simple en Python 3

introduction

Le langage de programmation Python est un excellent outil à utiliser pour travailler avec des nombres et évaluer des expressions mathématiques. Cette qualité peut être utilisée pour créer des programmes utiles.

Ce tutoriel présente un exercice d’apprentissage pour vous aider à créer un programme simple de calculateur en ligne de commande dans Python 3. Nous allons passer par une méthode possible pour créer ce programme, mais il existe de nombreuses possibilités d’améliorer le code et de créer une calculatrice plus robuste.

Nous utiliserons math opérateurs, https://www.digitalocean.com / community / tutorials / comment-utiliser-variables-en-python-3 [variables], https://www.digitalocean.com/community/tutorials/how-tw-write-conditional-statements-in-python- 3-2 [instructions conditionnelles], functions, et gérons les entrées de l’utilisateur pour créer notre calculatrice.

Conditions préalables

Pour ce tutoriel, Python 3 doit être installé sur votre ordinateur local et un environnement de programmation doit être configuré sur la machine. Si vous devez installer Python ou configurer l’environnement, vous pouvez le faire en suivant les https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local- programming-environment-for-python-3 [guide approprié pour votre système d’exploitation].

Étape 1 - Inviter les utilisateurs à entrer

Les calculatrices fonctionnent mieux lorsqu’un humain fournit des équations à résoudre par l’ordinateur. Nous allons commencer à écrire notre programme au moment où l’être humain entre les nombres avec lesquels il souhaite que l’ordinateur fonctionne.

Pour ce faire, nous allons utiliser la fonction + input () + intégrée de Python qui accepte les entrées générées par l’utilisateur à partir du clavier. Dans les parenthèses de la fonction + input () +, nous pouvons transmettre une string pour inviter l’utilisateur . Nous assignerons l’entrée de l’utilisateur à une variable.

Pour ce programme, nous souhaitons que l’utilisateur entre deux chiffres. Lançons l’invite du programme pour deux nombres. Lorsque vous demandez une entrée, vous devez inclure un espace à la fin de notre chaîne afin qu’il y ait un espace entre la saisie de l’utilisateur et la chaîne d’invite.

number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')

Après avoir écrit nos deux lignes, nous devrions sauvegarder le programme avant de le lancer. Nous pouvons appeler ce programme + calculator.py + et dans une fenêtre de terminal, nous pouvons exécuter le programme dans notre environnement de programmation en utilisant la commande + python calculator.py +. Vous devriez pouvoir taper dans la fenêtre du terminal en réponse à chaque invite.

OutputEnter your first number:
Enter your second number:

Si vous exécutez ce programme plusieurs fois et modifiez vos entrées, vous remarquerez que vous pouvez saisir ce que vous voulez, y compris des mots, des symboles, des espaces ou simplement la touche Entrée. En effet, + input () + prend les données sous la forme strings et ne sait pas que nous sommes chercher un numéro.

Nous souhaitons utiliser un nombre dans ce programme pour 2 raisons: 1) pour permettre au programme d’effectuer des calculs mathématiques et 2) pour valider que la saisie de l’utilisateur est une chaîne numérique.

En fonction de nos besoins en calculatrice, nous pouvons vouloir convertir la chaîne qui provient de la fonction + input () + en un entier ou en un flottant. Pour nous, les nombres entiers conviennent à nos besoins, nous allons donc envelopper la fonction + input () + dans la fonction + int () + à https://www.digitalocean.com/community/tutorials/how- to-convert-data-types-in-python-3 [converti] l’entrée dans les données integer type.

calculatrice.py

number_1 = input('Enter your first number: ')
number_2 = input('Enter your second number: ')

Maintenant, si nous entrons deux entiers, nous ne rencontrerons pas d’erreur:

OutputEnter your first number:
Enter your second number:

Mais si nous entrons des lettres, des symboles ou tout autre non-entier, nous rencontrerons l’erreur suivante:

OutputEnter your first number: sammy
Traceback (most recent call last):
 File "testing.py", line 1, in <module>
   number_1 = int(input('Enter your first number: '))
ValueError: invalid literal for int() with base 10: 'sammy'

Jusqu’à présent, nous avons configuré deux variables pour stocker les entrées utilisateur sous la forme de types de données entiers. Vous pouvez également expérimenter avec la conversion de l’entrée en float.

Étape 2 - Ajout d’opérateurs

Avant la fin de notre programme, nous ajouterons un total de 4 opérateurs mathematical: + pour addition, + - + pour soustraction, + * + pour multiplication et + / + pour division.

Au fur et à mesure que nous développons notre programme, nous voulons nous assurer que chaque composant fonctionne correctement. Nous allons donc commencer par configurer l’ajout. Nous allons ajouter les deux nombres dans une fonction d’impression pour que la personne qui utilise la calculatrice puisse voir le résultat.

calculatrice.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

Lançons le programme et saisissons deux chiffres lorsque vous êtes invité à vous assurer qu’il fonctionne comme prévu:

OutputEnter your first number:
Enter your second number:

La sortie nous montre que le programme fonctionne correctement, ajoutons donc un peu plus de contexte pour que l’utilisateur soit pleinement informé tout au long de l’exécution du programme. Pour ce faire, nous utiliserons string formateurs pour nous aider à formater correctement notre texte et fournir une réponse. Nous souhaitons que l’utilisateur reçoive une confirmation des numéros entrés et de l’opérateur utilisé aux côtés du résultat généré.

calculatrice.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))


print(number_1 + number_2)

À présent, lorsque nous exécuterons le programme, nous aurons un résultat supplémentaire qui permettra à l’utilisateur de confirmer l’expression mathématique exécutée par le programme.

OutputEnter your first number:
Enter your second number:
+  =

L’utilisation des formateurs de chaîne fournit aux utilisateurs davantage de commentaires.

À ce stade, vous pouvez ajouter le reste des opérateurs au programme avec le même format que celui utilisé pour l’addition:

calculatrice.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

# Addition
print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)

# Subtraction



# Multiplication



# Division

Nous avons ajouté les opérateurs restants, "+ - ", " * " et " / +" au programme ci-dessus. Si nous exécutons le programme à ce stade, le programme exécutera toutes les opérations ci-dessus. Cependant, nous souhaitons limiter le programme à une seule opération à la fois. Pour ce faire, nous utiliserons des instructions conditionnelles.

Étape 3 - Ajout d’instructions conditionnelles

Avec notre programme + calculator.py +, nous voulons que l’utilisateur puisse choisir parmi les différents opérateurs. Commençons donc par ajouter des informations en haut du programme, ainsi qu’un choix à faire pour que la personne sache quoi faire.

Nous écrirons une chaîne sur quelques lignes différentes en utilisant des guillemets triples:

'''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
'''

Nous utilisons chacun des symboles d’opérateur pour que les utilisateurs fassent leur choix. Par conséquent, si l’utilisateur souhaite que la division soit effectuée, il doit taper + / +. Nous pourrions cependant choisir les symboles de notre choix, tels que "1 pour addition +" ou " b pour soustraction +".

Comme nous demandons aux utilisateurs de saisir des informations, nous souhaitons utiliser la fonction + input () +. Nous allons insérer la chaîne dans la fonction + input () + et passer la valeur de cette entrée à une variable, que nous nommerons + operation +.

calculatrice.py

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

print('{} + {} = '.format(number_1, number_2))
print(number_1 + number_2)

print('{} - {} = '.format(number_1, number_2))
print(number_1 - number_2)

print('{} * {} = '.format(number_1, number_2))
print(number_1 * number_2)

print('{} / {} = '.format(number_1, number_2))
print(number_1 / number_2)

À ce stade, si nous exécutons notre programme, peu importe ce que nous entrons à la première invite, ajoutons donc nos instructions conditionnelles dans le programme. En raison de la façon dont nous avons structuré notre programme, l’instruction + if + 'sera celle où l’ajout est effectué. Il y aura 3 instructions else-if ou + elif + pour chacun des autres opérateurs, et l’instruction + else + ` sera mis en place pour traiter une erreur si la personne n’a pas saisi de symbole opérateur.

calculatrice.py

operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

number_1 = int(input('Enter your first number: '))
number_2 = int(input('Enter your second number: '))

if operation == '+':
   print('{} + {} = '.format(number_1, number_2))
   print(number_1 + number_2)

elif operation == '-':
   print('{} - {} = '.format(number_1, number_2))
   print(number_1 - number_2)

elif operation == '*':
   print('{} * {} = '.format(number_1, number_2))
   print(number_1 * number_2)

elif operation == '/':
   print('{} / {} = '.format(number_1, number_2))
   print(number_1 / number_2)

else:
   print('You have not typed a valid operator, please run the program again.')

Pour parcourir ce programme, il invite d’abord l’utilisateur à insérer un symbole d’opération. Nous dirons que l’utilisateur entre «+ * » pour se multiplier. Ensuite, le programme demande 2 chiffres et l'utilisateur entre ` 58 ` et ` 40 +`. À ce stade, le programme affiche l’équation effectuée et le produit.

OutputPlease type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division

Please enter the first number:
Please enter the second number:
*  =

En raison de la structure du programme, si l’utilisateur entre «+% +» lorsqu’il est demandé de procéder à une opération à la première invite, il ne recevra pas d’information en retour pour réessayer avant d’avoir entré des nombres. Vous voudrez peut-être envisager d’autres options possibles pour gérer diverses situations.

À ce stade, nous avons un programme entièrement fonctionnel, mais nous ne pouvons pas effectuer une deuxième ou une troisième opération sans exécuter le programme à nouveau, ajoutons donc quelques fonctionnalités supplémentaires au programme.

Étape 4 - Définition des fonctions

Pour gérer la possibilité d’exécuter le programme autant de fois que l’utilisateur le souhaite, nous allons définir certaines fonctions. Commençons par placer notre bloc de code existant dans une fonction. Nous nommerons la fonction + Calculate () + et ajouterons une couche d’indentation supplémentaire dans la fonction elle-même. Pour que le programme fonctionne, nous appellerons également la fonction située au bas de notre fichier.

calculatrice.py

# Define our function

   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

   number_1 = int(input('Please enter the first number: '))
   number_2 = int(input('Please enter the second number: '))

   if operation == '+':
       print('{} + {} = '.format(number_1, number_2))
       print(number_1 + number_2)

   elif operation == '-':
       print('{} - {} = '.format(number_1, number_2))
       print(number_1 - number_2)

   elif operation == '*':
       print('{} * {} = '.format(number_1, number_2))
       print(number_1 * number_2)

   elif operation == '/':
       print('{} / {} = '.format(number_1, number_2))
       print(number_1 / number_2)

   else:
       print('You have not typed a valid operator, please run the program again.')

# Call calculate() outside of the function

Ensuite, créons une deuxième fonction composée de plusieurs instructions conditionnelles. Dans ce bloc de code, nous voulons donner à l’utilisateur le choix de calculer à nouveau ou non. Nous pouvons baser cela sur les instructions conditionnelles de notre calculatrice, mais dans ce cas, nous n’aurons qu’un + if +, un + elif + et un + else + pour gérer les erreurs.

Nous nommerons cette fonction + again () +, et nous l’ajouterons sous notre bloc de code + def Calculate (): +.

calculatrice.py

...
# Define again() function to ask user if they want to use the calculator again


   # Take input from user





   # If user types Y, run the calculate() function



   # If user types N, say good-bye to the user and end the program



   # If user types another key, run the function again



# Call calculate() outside of the function
calculate()

Bien qu’il y ait quelques erreurs dans la commande else ci-dessus, nous pourrions probablement mieux accepter, par exemple, les minuscules + y + et + + n + en plus des majuscules + Y + et `+ N +. Pour ce faire, ajoutons la fonction string + str.upper () +:

calculatrice.py

...
def again():
   calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')

   # Accept 'y' or 'Y' by adding str.upper()
   if calc_again == 'Y':
       calculate()

   # Accept 'n' or 'N' by adding str.upper()
   elif calc_again == 'N':
       print('See you later.')

   else:
       again()
...

À ce stade, nous devrions ajouter la fonction + again () + à la fin de la fonction + Calculate () + afin de pouvoir déclencher le code qui demande à l’utilisateur s’il souhaite ou non continuer.

calculatrice.py

def calculate():
   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

   number_1 = int(input('Please enter the first number: '))
   number_2 = int(input('Please enter the second number: '))

   if operation == '+':
       print('{} + {} = '.format(number_1, number_2))
       print(number_1 + number_2)

   elif operation == '-':
       print('{} - {} = '.format(number_1, number_2))
       print(number_1 - number_2)

   elif operation == '*':
       print('{} * {} = '.format(number_1, number_2))
       print(number_1 * number_2)

   elif operation == '/':
       print('{} / {} = '.format(number_1, number_2))
       print(number_1 / number_2)

   else:
       print('You have not typed a valid operator, please run the program again.')

   # Add again() function to calculate() function


def again():
   calc_again = input('''
Do you want to calculate again?
Please type Y for YES or N for NO.
''')

   if calc_again.upper() == 'Y':
       calculate()
   elif calc_again.upper() == 'N':
       print('See you later.')
   else:
       again()

calculate()

Vous pouvez maintenant exécuter votre programme avec + python calculator.py + dans la fenêtre de votre terminal et vous pourrez calculer autant de fois que vous le souhaitez.

Étape 5 - Améliorer le code

Nous avons maintenant un beau programme entièrement fonctionnel. Cependant, vous pouvez faire beaucoup plus pour améliorer ce code. Vous pouvez ajouter une fonction de bienvenue, par exemple, qui accueille des personnes dans le programme en haut du code du programme, comme ceci:

def welcome():
   print('''
Welcome to Calculator
''')
...
# Don’t forget to call the function
welcome()
calculate()

Il est possible d’introduire plus de traitement des erreurs tout au long du programme. Pour commencer, vous pouvez vous assurer que le programme continue à s’exécuter même si l’utilisateur tape + plancton + lorsqu’il lui est demandé un numéro. Comme le programme est en ce moment, si + number_1 + et + number_2 + ne sont pas des entiers, l’utilisateur obtiendra une erreur et le programme cessera de s’exécuter. De plus, dans les cas où l’utilisateur sélectionne l’opérateur de division (+ / +) et tape '+ 0 + pour son deuxième numéro ( + number_2 + ), l’utilisateur recevra un signe + ZeroDivisionError: division par zéro + ` Erreur. Pour cela, vous voudrez peut-être utiliser la gestion des exceptions avec le `try + …​ sauf + `déclaration.

Nous nous sommes limités à 4 opérateurs, mais vous pouvez ajouter des opérateurs supplémentaires, comme dans:

...
   operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division


''')
...
# Don’t forget to add more conditional statements to solve for power and modulo

En outre, vous souhaiterez peut-être réécrire une partie du programme avec une instruction de boucle.

Il existe de nombreuses façons de gérer les erreurs, de modifier et d’améliorer chaque projet de codage. Il est important de garder à l’esprit qu’il n’existe pas de bonne façon de résoudre un problème qui nous est présenté.

Conclusion

Ce tutoriel décrit une approche possible pour construire une calculatrice en ligne de commande. Une fois ce didacticiel terminé, vous pourrez modifier et améliorer le code et travailler sur d’autres projets nécessitant la saisie de l’utilisateur sur la ligne de commande.

Nous sommes intéressés par vos solutions à ce simple projet de calculateur en ligne de commande! N’hésitez pas à poster vos projets de calculatrice dans les commentaires ci-dessous.

Ensuite, vous voudrez peut-être créer un jeu basé sur le texte, comme un ciseau à papier ou un ciseau à papier.

Related