Connection Menu Contenu

1788
membres
01h02
06
février
2012

Pseudo

Mot de passe

Accueil FORUM
repère : ROMMY Prod > Le tutoriel PYTHON 3.0 > Les variables

Les variables

Dans ce chapitre, vous allez découvrir ce qu'est une variable et leur utilité. Savoir ce que c'est, c'est bien mais si vous savez vous en servir, c'est encore mieux. Je vais donc aussi vous apprendre à les utiliser.

A partir de ce chapitre, vous allez utiliser le langage python (dans le premier, je parlais de la majorité des langages). Vous devez donc télécharger ce langage en cliquant ici et en l'installant. Voici le site officiel du langage
Une fois installer, vous devez utiliser "IDLE (Python GUI)" pour programmer. Puis faites "File/New Window" et vous pourrez demarré votre programme. Pour le tester, vous devez le sauvegarder avec un nom terminant par ".py" puis en faisant "Run/Run Module" ou F5.

Les variables

Alors qu'est-ce qu'une variable ???
Une variable est comme son nom l'indique quelque chose qui varie. En fait une variable va contenir une valeur (une information) et c'est celle-ci qui va être modifiée au cours du temps.
reponse = 5
Un exemple de variable.
En bleu, c'est le nom de la variable, c'est par ceci que nous utilisons les variables.
En rouge, c'est la valeur qu'elle contient.

Le égale sert à donner une valeur à la variable. Dans cet exemple, la valeur de la variable sera 5 et ne changera pas jusqu'a ce que la variable en reçoive une nouvelle par le "égale".

Elles vous seront très utiles dans tous vos programmes car même le plus simple des programmes en comportera au moins une.

Affichage d'une variable

Maintenant que la notion de variables est acquise, on va les utiliser. Surtout les afficher, car c'est beau de lui donner une valeur mais si on ne peut pas la voir, c'est embêtant. Bien sûr, certaines variables que vous allez utiliser n'auront aucune utilité à être affichée.
Comment va-t'on bien pouvoir l'afficher ?

Le langage python comme tous les autres langages dispose d'un mot déjà prédéfini pour faire ceci. En python, ce mot est print.
On l'utilise de la manière suivante : print (suivi de ceux qui est à afficher).
Vous pouvez mettre autant de variables ou texte pour le même print en les séparant par une virgule. Sachez que chaque ligne du code est une nouvelle instruction, donc si vous mettez un 2eme print sur une autre ligne, le programme va afficher une deuxième ligne.
print ("quel age à tu ?")
age = 18
print ("tu as donc", age, "ans")
A la première ligne, on demande l'âge.
La deuxième, on initialise (crée) la variable age avec une valeur égale à 18.
La troisième, on affiche la variable entre deux textes.

Le résultat est ...
Si vous avez fait le test, vous devez avoir découvert que c'est : tu as donc 18 ans.

S'il vous a demandé lors du test d'inscrire dans votre programme # -*- coding: cp1252 -*- ou quelque chose de ce genre, c'est parce que j'ai utilisé un accent dans ma question. Normalement il ne doit rien vous proposer, il détecte automatiquement le codage.

print en détail

Un peu au dessus, j'ai dit "A chaque print, l'affichage va à la ligne."
Ceci n'est pas vraiment exacte, car en fait on peut indiquer à "print" de rester sur la même ligne au prochain affichage.
Par exemple avec le code qui suit :
age = 18
print ("j'ai", age)
print ("ans")
Celui-ci affichera :
j'ai 18
ans

Avouez que ceci n'est pas très beau visuellement. Alors pour avoir la phrase "j'ai 18 ans" en une seule ligne, on ajoutera en fin du premier print la partie suivante : , end="X" où X est le(s) caractère(s) affiché(s) entre les 2 print
exemple :
age = 18
print ("j'ai", age, end=" ")
print ("ans")


Autre point que l'on peut remarquer, c'est que chaque virgule dans un print insére un espace. Ceci est une valeur par défaut.
En insérant en fin de print la partie suivante : , sep="X" où X est le(s) caractère(s) affiché(s) qui sera ou seront inséré(s) par virgules, on peut spécifier ce que va remplacer la virgule.

Par exemple le code suivant affichera j'aiX18Xans:
age = 18
print ("j'ai", age, "ans", sep="X")



Bon!!! vous me direz, ce n'est pas utile car je n'ai pas 18 ans !!!
Hé bien! je n'ai moi non plus pas 18 ans et c'est pour ça que je vais vous apprendre à demander quelque chose à l'utilisateur et de récupérer sa réponse.

Récupérer une entrée au clavier

Et à votre avis où va atterrir la réponse ???
Dans une variable bien sûr !!!

Pour cela on ne va pas utiliser print mais "input" qui est déjà un mot défini. Il s'utilise de la manière suivante: variable = input("question à pauser")
age = input("quel age à tu ?")
print (age)
Vous voyez qu'on obtient notre réponse dans la variable et que l'on peut par la suite l'afficher.
On obtient un chiffre, mais en fait ce n'en est pas un, c'est du texte qui à été récupéré.
Tapez ce code pour en avoir la preuve :
age = input("quel age à tu ?")
print (type(age))
Il affiche <class 'str'> qui veut dire que la variable de de type texte (str pour string).

Les différents types de variables

Chaque variable a un type. Ce peut être un chiffre, du texte, etc...
Python contrairement à d'autre langage repère automatiquement le type de la variable, ce n'est pas à vous de le dire au programme. Mais vous devez quand même porté une attention aux types quand vous manipulez des variables pour faire des additions par exemple, car on ne peut pas additionner un chiffre avec du texte.
Voici les différents types :
TYPE : description :
int (long) nombres entiers :
ex:-50   360 ...
float nombres décimaux :
ex: 2.5
booléen Prend deux valeurs vrai/faux :
True ou False
str Texte ou caractère :
ex: "salut" ou 'a'

Revenons à l'affichage, input est du type str donc du texte.
Comme l'on attend un chiffre (l'age), il va donc falloir transformer notre texte en chiffre.
Pour celà on va utiliser l'une des transformation suivante :
à utiliser : pour transformer :
int(x) float en int
exemple: int(2.5) -> 2
float(x) int en float
exemple: float(2) -> 2.0
str(x) int, float en str
exemple: str(2.0) -> "2.0"
eval('x') (chiffre sous la forme)str en int, float
exemple: eval('2.0') -> 2.0
ord('x') str en int ASCII
exemple: ord('a') -> 97
chr(x) int ASCII en str
exemple: chr(97) -> 'a'

Pour ord(), on voit que le caractère 'a' est transformer en 97. Ce nombre correspond au code ASCII. C'est à dire que chaque caractère correspond à un nombre. Tous les caractères y sont présent même les accents. Le caractère 'A' vaut 65, 'B' vaut 66 etc...
chr() est l'inverse de ord(), tout comme eval('x') est l'inverse de str(x)

Pour avoir notre age en chiffre, on tapera donc le code suivant :
age = eval (input ("quel age à tu ?"))
print (type(age))
Pour en finir avec l'exemple, si l'on aurait laissé sous forme de texte, il aurait été impossible d'utiliser les opérateurs ci-dessous. Concrètement si on ajoute le chiffre 1 à un nombre sous forme de texte (de type str), on obtient une erreur et non une addition.

Les opérateurs

Avoir des nombres, c'est bien mais si on pouvait les utiliser, ça serait encore mieux. Voici donc les opérateurs qui vont vous permettre de manipuler des nombres.
OPERATEUR : Utilité :
+ Addition
exemple: print 5+2 -> 7
- Soustraction
exemple: print 5-2 -> 3
* Multiplication
exemple: print 5*2 -> 10
/ Division
exemple: print 5/2 -> 2.5
% Modulo (reste de division)
exemple: print 5%2 -> 1
** Puissance
exemple: print 5**2 -> 25
+= Rajouter à la variable
exemple: age = 15
age += 1
print age -> 16
-= Enlever à la variable
exemple: age = 15
age -= 1
print age -> 14
*= Multiplication de la variable
exemple: age = 15
age *= 2
print age -> 30
/= Division de la variable
exemple: age = 15
age /= 5
print age -> 3
Pour les opérateurs " += -= *= /= ", la variable est modifiée, ce n'est donc pas une nouvelle qui se crée.

Ces opérateurs fonctionnent aussi avec des variables :
Exemple 1 :
2 pommes et 5 poires
Il y a 2 pommes et 5 poires sur la table.
poire = 5
pomme = 2
nombre_fruit = poire + pomme
print ("Il y a", nombre_fruit, "fruits.")
Le programme nous dit qu'il y a 7 fruits


Exemple 2 :
nombre = 3
nombre *= nombre
print ("Le carré est égale à", nombre)
Dans cet exemple, on multiplie le nombre par lui-même, ce qui correspond au carré. Et le carré de 3 est 9, c'est ce que le programme affiche.

Affectations multiples

Tout au long de ce chapitre, nous avons vu comment initialiser et affecter des variables.
Nous faisons de cette manière :
poire = 5
pomme = 5
Mais ce code peut être amélioré. La valeur qui sera affectée à ces variables est de 5.
Comme cette valeur est identique, nous pouvons faire une affectation multiple.
poire = pomme = 5
Vous devez voir ça comme : on affecte 5 à la variable pomme puis on affecte la variable pomme à la variable poire. Comme la variable est affectée par une autre variable, elle prend donc sa valeur.

On serait tenté de vouloir affecter de cette manière plusieurs variables ayant des valeurs différentes.
Par exemple en faisant ceci :
poire = pomme = 5 = 3
Mais avec l'explication que j'ai fourni juste au dessus, c'est impossible.
On affecte 3 à 5, mais que veut dire affecter un nombre à un nombre ??? Rien
De même on aurait pu penser à : on affecte 3 à la variable 5, mais une variable commençant par un chiffre est interdit.

Affecter en même temps deux variables recevant deux valeurs différentes est donc impossible.
En fait ceci est valable pour la plupart des langages, mais python permet quand même d'affecter plusieurs variables qui recevront des variables différentes.
Pour cela, il faut utiliser la syntaxe suivante :
poire , pomme = 5 , 3
Dans cette exemple, 5 affectera la variable poire et 3 affectera la variable pomme.
Vous devez donc indiquer les variables séparées par une virgule et ensuite leur affectation qui sera aussi séparer par une virgule.

Conclusion

Vous venez de découvrir une notion très importante de la programmation qui vous permet de récupérer des données (informations) et de les manipuler.
Dans le chapitre qui suit, vous allez découvrir une deuxième notion importante, c'est-à-dire "les fonctions".

chapitre precedent Exercices sommaire chapitre precedent
repère : ROMMY Prod > Le tutoriel PYTHON 3.0 > Les variables
Qui suis-je ? Contact Charte du site
Plan du site Accessibilité du site

Copyright © ROMMY Production
Le cours, les jeux et les logiciels sont la propriété de son auteur.
Toute reproduction totale ou partielle du cours est interdite sans l'accord de l'auteur.
La modification des jeux et logiciels est interdite sans l'accord de l'auteur.