Sciences Numériques et Informatiques

Lycée Edmé Bouchardon
Stéphane Jouaire

Utiliser la console python comme une calculatrice

Les opérations classiques

Les opérations classiques sont l'addition "+", la soustraction "-", la multiplication "*" et la division "/". A noter que le séparateur décimal est le point "." et non la virgule comme en France ! A noter ; Python interpétera un nombre avec une virgule comme un tuple, qu'on peut voir pour simplifier comme une liste de deux nombres.

Tuple Nombre à virgule sous python

Python respecte les priorités et 5x3+2 ne donnera pas le même résultat que 5x(3+2) ! A vérifier en tapant le calcul correspondant dans la console.
Remarque : pour python tous les opérateurs doivent être écrit : si pour les mathématiciens 5(3+2) a un sens (la multiplication entre le 5 et la parenthèse est implicite) pour python cela ne veut rien dire et entrainera une erreur !

Pour la division il existe deux opérateurs donnant la partie entière du quotiont et le reste de la division euclidienne. Ces opérateurs sont respectivement "//" (division entière) et "%" (modulo). Calculer par exemple 18/5, 18//5 et 18%5.

Les puissances de 10

Les puissances de 10 sont représentées par l'opérateur "e" suivant de l'exposant (entier). Cet opérateur doit forcément être précédé d'un nombre. A noter qu'un nombre écrit avec une puissance de 10 est vu par python comme un nombre à virgule (type float) et non comme un entier (type int). Cet opérateur est prioritaire sur les autres : calculer 1/2e-3 et (1/2)e-3 pour s'en assurer (attention : écrite comme cela python considèrera la puissance de 10 comme une erreur !).

Les puissances d'un nombre

Pour élever un nombre à une puissance quelconque l'opérateur à utiliser est "**". Par exemple 43 s'écrira en langage python 4**3. On pouurrait réécrire les puissances de 10 (mais je ne le conseille pas !) avec cette opérateur : 10-3 devient 10**-3 (pas besoin de parenthèses autour de -3).

Fonctions mathématiques avancées

L'interpréteur python ne dispose pas de fonctions mathématiques avancées comme par exemple les fonctions trigonométriques cosinus, sinus ou tangente. Il faut donc les définir en important le module math en entier ou seulement les fonctions nécessaires.

from math import *
#pour importer toutes les fonctions
from math import cos, sin, tan, radians, pi
#pour importer les fonctions cos(), sin(), tan(), radians() et la valeur de pi

Il existe d'autres façons d'importer des modules supplémentaires, mais cela change la manière d'appeler les fonctions.

import math

Il est également possible de renommer le module pour abréger son nom :

import math as m

Par exemple pour calculer le cosinus d'un angle (0 par exemple) on fera :

from math import *
cos(0)
import math
math.cos(0)
import math as m
m.cos(0)

Calculons le cosinus d'un angle droit donc 90°. Le résultat obtenu est donné en copie d'écran.

from math import cos
cos(90)
Valeur de cos(90)

Le résultat obtenu n'est pas celui attendu car cos(90) = 0 ! La raison est toute simple : la fonction cosinus du module math prend comme argument un angle en radians et non en degrés. Il faut donc faire la conversion et le plus simple est d'utiliser la fonction radians() du module math :

from math import cos, radians
cos(radians(90))

Le résultat est très proche de 0 mais pas totalement nul. Pour avoir un résultat plus correct il faut arrondir la valeur calculée par python par la fonction round() :

round(cos(radians(90)),2) #arrondi à 2 chiffres

Valeur arrondie de cos(90)

Calcul de la valeur d'une fonction ou d'une expression

Dans le cas où on doive répéter plusieurs fois le même calcul, il est intéressant de savoir définir une fonction sous python qui permet de ne pas avoir à répéter le calcul.

L'écriture d'une fonction se fait toujours de la même façon (Un exemple de fonction est donnée en illustration dans Thonny):

  • sur la première ligne la défintion de la fonction qui commence par def et finit par ":"
  • Ensuite le corps de la fonction : ensemble des lignes de code qui permettent d'arriver au résultat renvoyé par la fonction qui sont décalée à droite (indentation) par rapport à la ligne de définition
  • Sur la dernière ligne la valeur que doit renvoyer la fonction précéder de return

Exemple de fonction

Pour utiliser la fonction il faut d'abord l'exécuter dans l'IDE (le triangle banc dans un rond vert pour Thonny, un triangle vert dans Pyscripter) puis taper f(2) dans la console pour calculer la valeur obtenue pour x = 2.
Il est tout à fait possible de définir une fonction dans la console : Thonny comme Pyscripter ajoutent automatiquement l'indentation. Il faut juste appuyer deux fois sur la touche entrée à la fin de la fonction.

Graphiques sous python

Nuage de points

Pour tracer des graphiques avec python il faut utiliser un module dédié : pyplot faisant lui même partie du module matplotlib. Comme son nom est un peu long on va le renommer en plt (nom utilisé habituellement pour ce module, mais on peut en utiliser un autre...). La première ligne de code sera donc :

import matplotlib.pyplot as plt

Ensuite il faut donner les valeurs de x pour lesquels on va tracer le graphique. Ces valeurs sont données sous forme de liste entre crochets séparées par des virgules :

x=[0,1,2,3,4,5,6,7,8,9,10]

On calcule les valeurs de y correspondantes (ou on les saisit sous forme de liste si ce sont des mesures). On peut utiliser une fonction définie auparavant pour le faire.

y=[n**2+n+1 for n in x]

On trace les points avec la fonction scatter() :

plt.scatter(x,y)

Et on l'affiche

plt.show()

On peut préciser la couleur et la forme du marqueur en précisant marker = 'forme' et color = 'lettre' où forme et lettre peuvent être :

  • Le style de marqueur avec un symbole : +, x, *, o, ^ (triangle en haut), > (triangle à droite), < (triangle à gauche), s (carré)
  • La couleur par une lettre : b (bleu), g (vert), r (rouge), c(cyan), m (magenta) y (jaune), w (blanc) et k (noir)

Premier graphique sous python Premier graphique sous python

Tracé d'une courbe

Le principe est le même que précédemment sauf que la fonction à utiliser est la fonction plot() du module pyplot.

plt.plot(x,y)

Et on l'affiche

plt.show()

Par défaut il n'y a pas de points de tracé mais on peut les rajouter en précisant marker = 'forme' et choisir la couleur par color = 'lettre' où forme et lettre sont définis de la même façon que précédemment. On peut également préciser le style de ligne par linestyle='style'

  • Le style de ligne par les symboles : - (ligne continue), -- (ligne en tirets), : (ligne en pointillés), -. (ligne tirets pointillés)
On peut abréger les trois paramètres en mettant entre guillemets la lettre de couleurs, la forme du marqueur et le style de ligne. Par exemple pour une courbe et des marqueurs rouges en forme de + et une ligne en pointillés :

plt.plot(x,y,'r+-.')
Première courbe sous python Première courbe sous python

Les constantes de physique

On le sait les calculs de physique (et de chimie) font intervenir des constantes, comme la valeur de la constante universelle de gravitation G, les masses des particules élémentaires ou la vitesse de la lumière. Il existe des modules qui intègrent des valeurs précises de ces constantes, comme par exemple le module constants faisant partie du module scipy.

from scipy import constants as cst

Dans ce module on trouve par exemple :

  • La vitesse de la lumière c : cst.c
  • La constante universelle de gravitation : cst.G
  • L'intensité de champ de pesanteur terrestre g : cst.g
  • La constante d'Avogadro NA : cst.N_A
  • La masse du proton mP : cst.m_p
  • La masse du neutron mN : cst.m_n
  • La masse de l'électron me : cst.m_e

Constantes de physique dans scipy Constantes physiques dans le module Scipy

Quelques notions utiles pour finir

  • Variable
    On peut voir les variables comme des boîtes dans lesquelles on peut ranger différentes choses (on parle de type pour la programmation). Pour reconnaître les boîtes entre elles on leur donne un nom (en collant une étiquette dessus par exemple).

    nom_variable_1 = 12 #on place le nombre 12 dans la variable (boîte) nommée nom_variable_1

    nom_variable_2 = "texte" #on place le mot 'texte' dans la variable (boîte) nommée nom_variable_2

    Pour récupérer le contenu d'une variable on utilise simplement son nom. L'opération suivante permet de multiplier par 2 le contenu de la variable (boîte) nom_variable_1 :

    nom_variable_1 * 2 #prend le contenu de la variable nom_variable_1 et le multiplie par 2

  • Pour afficher un texte, une valeur, un résultat on utilise la fonction print

    print("le contenu de la variable est : ", nom_variable_1) #affiche le texte entre guillemets et le contenu de la variable

  • Pour demander à l'utilisateur de saisir une valeur, on utilise la fonction input("texte") qui renvoie une valeu de type texte à stocker dans une variable

    saisie = input("veuillez saisir quelque chose") #stocke la saisie au clavier de l'utilisateur dans la variable saisie

Exercices à réaliser pour appliquer les notions abordées plus haut au format pdf : voir l'énoncé.

(c) Stéphane Jouaire, SNT 2019-2022