ArithmĂ©tique et variablesâïž
ArithmĂ©tiqueâïž
Opérations mathématiques
Les opérations mathématiques de base s'écrivent ainsi en Python :
En math | En Python |
---|---|
\(x+y\) | x + y |
\(x-y\) | x - y |
\(x\times y\) | x * y |
\(x:y\) | x / y |
\(x^2\) | x**2 |
\(x^3\) | x**3 |
\(x^y\) | x**y |
Python respecte les priorités de calcul.
Par exemple, l'expression \(\dfrac{5\times(7-4)}{2}\) s'Ă©crit (5 * (7-4)) / 2
.
>>> (5 * (7-4)) / 2
7.5
>>> (3 + 4 + 5 + 6)**2
324
Nombre décimaux
En Python, les nombres décimaux s'écrivent avec un ".
" à la place de la virgule. Dans l'exemple précédent le premier résultat est décimal.
Python distingue les nombres entiers et décimaux. Ainsi, 2.0
est un nombre décimal, alors que 2
est entier.
Exercice 3
Traduire en Python les expressions suivantes et déterminer leur valeur. Vous pouvez utiliser le terminal situé en dessous.
- \(3^2+2^3\)
- \(\dfrac53\times\dfrac92+12\)
- \(\left(\dfrac{36}{25}\right)^2\)
Solutions
- \(3^2+2^3 = 17\). L'expression s'Ă©crit
3**2 + 2**3
en Python. - \(\dfrac53\times\dfrac92+12=19,5\). L'expression s'Ă©crit
5/3 * 9/2 + 12
en Python. Les espaces n'ont pas d'importances sur les priorités mais servent surtout à apporter de la lisibilité. On pouvait aussi écrire(5/3) * (9/2) + 12
. - \(\left(\dfrac{36}{25}\right)^2 = 2,0736\). L'expression s'Ă©crit
(36 / 25)**2
en Python.
Expressions et espaces
Dans les exemples précédents, on peut remarquer qu'il y a parfois des espaces dans les expressions et parfois non. Ces espaces sont optionnels. Pour Python, les expressions suivantes sont équivalentes et ne font aucune différence pour l'interpréteur :
2 + 3 * 4
2+3*4
2 + 3*4
2+3 * 4
2
+
3 *
4
Les espaces sont vraiment là pour le lecteur humain et n'indiquent en rien les priorités de calcul pour Python. En particulier, 2 + 3*4
et 2+3 * 4
donnent bien le mĂȘme rĂ©sultat.
Dans la pratique, on met un espace avant et aprÚs chaque opérateur (+
, -
, ...) mais qu'en cas de priorité différentes, on ne mettra pas d'espaces autour des opérateurs les plus prioritaires. C'est pourquoi, on préférera 2 + 3*4
aux autres Ă©critures.
Division euclidienne
Pour faire une division euclidienne, c'est-Ă -dire la division sur les nombres entiers, il faut Ă©crire x // y
pour le quotient et x % y
pour le reste.
Le reste de la division euclidienne, aussi appelé modulo est trÚs utilisé en programmation.
>>> 17 / 5 # Division sur les réels
3.4
>>> 17 // 5 # Quotient de la division euclidienne
3
>>> 17 % 5 # Reste de la division euclidienne
2
NSI et mathématiques
Pour ceux qui auraient un doute, je vous rassure, NSI n'est pas un enseignement mathématique, mais bien un enseignement scientifique. Et comme toutes les sciences, l'informatique repose beaucoup sur les mathématiques. Néanmoins, les calculs que nous venons de faire n'ont que pour but d'illustrer le fonctionnement de Python. Nous n'aurons d'ailleurs probablement plus jamais des calculs aussi complexes que ceux de l'exercice 3 à écrire.
Plus gĂ©nĂ©ralement, une bonne connaissance des mathĂ©matiques peut ĂȘtre un avantage pour un programmeur, tout comme une bonne connaissance de la programmation peut ĂȘtre un vrai plus pour un mathĂ©maticien. Mais pour rĂ©ussir en NSI, il faut juste savoir traduire les formules de base en Python et pas vraiment trouver les formules mathĂ©matiques permettant de rĂ©soudre le problĂšme.
On rappelle que les ordinateurs s'appellent computers en anglais, ce qui veut litĂ©rallement dire calculateurs. Faire de l'informatique c'est donc faire des calculs, d'une maniĂšre ou d'une autre. Et mĂȘme en français, ordinateur vient de ordre. Et nous verrons plus tard que mettre des donnĂ©es dans l'ordre est une opĂ©ration trĂšs importante en informatique. LĂ aussi, les mathĂ©matiques ne sont pas trĂšs loin.
Variablesâïž
Affecter une valeur Ă une variable
Faire un calcul, c'est bien, mais faire quelque chose avec le résultat c'est mieux.
Pour pouvoir exploiter les rĂ©sultats calculĂ©s, on peut les garder en mĂ©moire. Afin de pouvoir utiliser cette valeur, il faut donner un nom Ă l'endroit oĂč il se trouve en mĂ©moire. On appelle cela une variable. Lorsqu'on associe une valeur Ă une variable, on dit qu'on affecte cette valeur Ă la variable. Pour faire une affectation, il suffit d'Ă©crire : variable = expression
.
>>> une_variable = 0
>>> UneAutreVariable = "Bonjour"
>>> _une_3eme = 7
>>> _4_fois_3 = 12
LĂ aussi, les espaces autour de =
sont optionnels mais conseillés pour plus de lisibilité.
Syntaxe des noms de variables
On ne peut pas Ă©crire n'importe quoi pour le nom d'une variable. En Python, ce nom doit respecter les rĂšgles suivantes :
- commencer par une lettre ou un
_
; - contenir des lettres, des chiffres et des
_
.
Exercice 4
Parmi les noms suivants, déterminer ceux qui sont des noms valides de variables en Python.
-
variable
-
une variable
-
apollo13
-
_
-
N_S_I
-
2fois3
-
vOITure
-
variable
-
une variable
: Il y a un espace, ce qui est interdit. -
apollo13
-
_
: On l'appelle la variable anonyme. Elle est utilisĂ©e dans certains cas particuliers oĂč sa valeur n'a pas d'importance. -
N_S_I
-
2fois3
: Une variable ne peut pas commencer par un chiffre. -
vOITure
Utilisation d'une variable
Pour obtenir la valeur dâune variable il faut juste taper son nom dans le terminal. On peut aussi utiliser la fonction print
:
>>> a = 1
>>> a
1
>>> print(a)
1
Une fois la variable affectĂ©e, on peut lâutiliser dans des opĂ©rations.
>>> a + 2
3
>>> b = a + 1
>>> b
2
Il est aussi possible de modifier la valeur dâune variable.
>>> a = 5
>>> a
5
>>> b
2
On remarque que la valeur de b
nâa pas Ă©tĂ© modifiĂ©e. Une fois quâune variable est affectĂ©e, sa valeur ne dĂ©pend plus des variables utilisĂ©es dans lâexpression de lâaffectation.
On peut Ă©galement obtenir la valeurs de plusieurs variables en mĂȘme temps en les sĂ©parant par des virgules ou en utilisant une nouvelle fois la fonction print
:
>>> a, b
(5, 2)
>>> print(a, b)
5 2
Utiliser la valeur précédente d'une variable pour calculer sa nouvelle valeur
On peut utiliser la valeur actuelle dâune variable pour lui en donner une nouvelle.
>>> a = 5
>>> a = a + 1
>>> a
6
>>> a = a + 1
>>> a
7
Il faut donc bien penser que la partie de droite de l'affectation est évaluée avant de faire l'affectation. AprÚs la premiÚre affectation a
vaut 5
. Pour la deuxiÚme affectation, l'interpréteur commence par calculer a+1
, qui vaut 6
, et l'affecte ensuite Ă a
qui vaut donc 6
.
Affectations et opérations simultanées
Pour ajouter une valeur Ă une variable, il est possible dâutiliser l'instruction variable += expression
.
Cela correspond Ă variable = variable + expression
.
>>> score = 0
>>> score += 10
>>> score
10
>>> score += 20
>>> score
30
De la mĂȘme maniĂšre, on peut aussi Ă©crire :
variable -= expression
variable â= expression
variable /= expression
variable //= expression
variable %= expression
Attention, ces opérations nuisent souvent à la lisibilité du programme. Il vaut mieux se contenter de +=
et Ă©ventuellement de -=
lorsqu'on ajoute ou retranche une constante.
Exercice 5
On considĂšre le programme suivant :
-
DĂ©terminer la valeur de
secret
aprÚs l'exécution de ce programmeSolution
Il suffit de taper
secret
ouprint(secret)
dans le terminal aprÚs avoir exécuté le programme.On peut aussi ajouter
print(secret)
Ă la fin du secret. -
RĂ©Ă©crire ce programme pour qu'il n'utilise que des affectations simples.
C'est-Ă -dire qu'il faut remplacer toutes les affectations comme
//=
,+=
... par des affectation simples :secret = ...
.Par exemple, cela reviendrait Ă remplacer
a += 3
para = a + 3
.Solution
public = 2695 secret = public**2 secret = secret // 135 secret = secret - 65 secret = secret % 53 secret = secret + 126
Variables et casse
Les noms en Python sont sensibles à la casse. Cela veut dire que Python fait la différence entre majuscule et minuscule. Ainsi nom
, NOM
, Nom
ou nOm
sont considérés comme des noms différents.
Erreur de variable
Lorsqu'on se trompe sur le nom d'une variable, ou qu'on essaie d'utiliser sa valeur avant de lui en avoir affecté une, on obtient un message d'erreur : NameError: name 'varialbe_inconnue' is not defined
.
Cela veut dire que le nom, ici varialbe_inconnue
, ne correspond Ă aucun nom connu par Python pour la session actuelle. En gĂ©nĂ©ral, c'est qu'on a mal Ă©crit le nom de la variable. Dans cet exemple, c'Ă©tait peut-ĂȘtre variable_inconnue
que l'ont voulait Ă©crire.
# Tests
(insensible Ă la casse)(Ctrl+I)