Cours Python : 2.Les variables,les conditions et les boucles

Moderator: Mod

Cours Python : 2.Les variables,les conditions et les boucles

Postby Manu404 » Sat Mar 15, 2008 3:15 am

Vous savez maintenant comment affecter des valeurs à des variables et comment les afficher à l'ecran mais passons maintenant à comment les utiliser ainsi que les boucles.
[b:0003e4c156][size=16:0003e4c156]
COURS[/size:0003e4c156][/b:0003e4c156]
[b:0003e4c156][size=14:0003e4c156]
II - LES OPERATEURS MATHEMATIQUES[/size:0003e4c156][/b:0003e4c156]

Les opérateurs les plus basiques sont :
[b:0003e4c156]
+ additions
- soustraction
* multiplication
/ divisions
**x exposants x
% modulo[/b:0003e4c156]

Petite précision sur les deux derniers, pour calculer un exposant, il suffit de faire par exemple :

[code:1:0003e4c156] <<<a=7**3[/code:1:0003e4c156]

Ce qui revient à écrire : a est égale a 7³

Le modulo permet de donner le reste d'une division entière, c'est à dire sans virgule par exemple :

[code:1:0003e4c156] <<<a=5%2[/code:1:0003e4c156]

a sera dans ce cas égale a 1 car 2 va 2fois entierement dans 5 et il reste donc 1.
Autre exemple:

[code:1:0003e4c156] <<<a=20%12[/code:1:0003e4c156]

12 vas 1fois dans 20 et il reste 8, a est donc égale a 8...

Cet opérateur qui semble insignifiant vous permettra de vous sortir de pas mal de problèmes et est plus utile qu'il n'en a l'air...
(Cet opérateur apparait dans la plupart des autres langages et a le même but et la même ecriture en générale)

Crééons maintenant un programme qui va par exemple calculer 7*3+5-2

[code:1:0003e4c156] <<<a=7*3+5-2
<<print a[/code:1:0003e4c156]

Le resultat est 14.
tapez maintenant
[code:1:0003e4c156]
<<<a=5-2+7*3
<<<print a[/code:1:0003e4c156]

Le resultat est toutjours égal à 14, ce simple calcul permet de mettre en évidence le fait que Python respecte de lui même la priorité des opérateurs, c'est a dire qu'il calculera d'abord :

1 - Les parenthèses
2 - Les exposants
3 - Les multiplications est les divisions
4 - Les additions et les soustractions

Donc pour calculer 5 moins 2 plus 7 fois 3 il faut ecrire :

[code:1:0003e4c156] <<<a=(5-2+7)*3[/code:1:0003e4c156]

Verifiez toujours vos calculs et utiliser au maximum les parenthéses, cela facilite la relecture et evite beaucoup d'erreurs
Ainsi, il vaut mieux ecrire (7+5)*(5*3)+(1-5) plutot que (7+5)*5*3+1-5
Le premier est évidemment plus lisible que le second et evite beaucoup d'erreurs...

Nous pouvons aussi faire des calculs qui intégre d'autre variables comme ceci :

[code:1:0003e4c156] <<<a=5
<<<b=8**2
<<<c=5%2
<<<resultatA = (a+b)*c
<<<resultatB = a+b*c
<<<priint resultatA
<<<print resultatB[/code:1:0003e4c156]

dans ce cas, cela revient à écrire :

[code:1:0003e4c156] <<<resultatA = (8+(8**3))*(5%2)
<<<resultatB = 8+((8**2)*(5%2))
<<<priint resultatA
<<<print resultatB[/code:1:0003e4c156]

Le gains en lisibilé est plus que conséquent et cela facilte de plus l'optimisation et la mise à jours du code et encore une fois cela permet d'eviter des erreurs de semantique !


[b:0003e4c156][size=14:0003e4c156]
LES CONDITIONS[/size:0003e4c156][/b:0003e4c156]

Examinons le code ci-dessous :

[code:1:0003e4c156] <<<a=50
<<<if (a<50) :
... print "a est supérieur à 50"
... print a
... else :
... print "a est inférieur à 50 "
<<<print "fin du programme"[/code:1:0003e4c156]


if est une fonction qui signifie "si", et la condition est inscrite dans la parenthèse qui la précéde.
Ainsi le code signifie : Si a est supérieur a 50 executer ce qui suit les 2points précédent la parenthése.
Afin de savoir ce qui correspond à ceci on utlise les tabulations, ainsi, tout ce qui est decalé par rapport à if est ce qui doit être fait si la condition est respecter. Ceci remplace les crochets par exemple.
Pour taper une fonction qui doit être executée independamment, il suffit de revenir au niveau de if.
Else, quand a lui, dit ce qui doit être fait si la conditions n'est pas respecter.
En générale on parle de condition testé afin de parler de ce qui est inscrit dans les parenthése.
Voici les differnt signe utilisé dans la parenthése afin de tester les conditions :


[code:1:0003e4c156]x == y x est égal à y
x != y x est différent de y
x > y x est plus grand que y
x < y x est plus petit que y
x >= y x est plus grand que, ou égal à y
x <= y x est plus petit que, ou égal à y[/code:1:0003e4c156]


Essayons par exemple de créé un programme effectuant les actions suivantes :

1 - Créé une variable
2 - Testé la variable afin de savoir si elle est ou non un nombre pair
2.1 ->Si positif afficher un texte le disant
2.2 ->Si negatif afficher un texte le disant

Essayez d'abord, avant de lire le code, de le réaliser par vous même.

Le code donnera ceci

[code:1:0003e4c156] <<<a=21
<<<if (a%2==0) :
... print a,"est pair"
... else :
... print a," n'est pas pair"[/code:1:0003e4c156]



[b:0003e4c156][size=14:0003e4c156]
LES BOUCLES[/size:0003e4c156][/b:0003e4c156]

Une boucle est un ensemble de fonctions qui se répètent tant que les conditions téstées au debut de celle-ci ne sont pas respectées.
Exemple de boucle qui consiste à multiplier le nombre a par lui même un nombre de fois egal a b :

[code:1:0003e4c156]
<<<a=5
<<<b=5
<<<y=0
<<<while (y<b)
... print a
... a=a*a
... y=y+1
[/code:1:0003e4c156]

Comme vous le remarquez, comme pour 'if", les tabulations jouent le rôles de délimiteurs.

Dans cet exemple la variable "y" sert de compteur afin de faire connaitre à la boucle le nombre de fois que la répétitions à eu lieu, si vous ometez de rajouter "1" à "y" a la fin de la boucle celle ci sera infinie et peut provoquer un plantage du systéme car contrairement au C par exemple, en Python la valeur d'un nombre peut être infinie et comme vous le savez, la valeur d'une variable est stockée dans la mémoire vive de l'ordinateur, et plus ce nombre est important, plus il occupe d'espace dans cette derniére (cette technique peut étre utilisée avec de grands nombres afin de faire crasher un pc mais ces techniques sont de techniques utilisé par les Lamerz, ce que vous n'êtes pas ;) )

Donc verifier toujours que vos boucles sont capables à un moment ou l'autre de se terminer.
Revenons maintenant à nos moutons, nous allons utiliser cette fois ci "if" dans la boucle afin de connaitre la Xième valeur de la suite de fibonaci (on peut le faire uniquement avec le boucle)
a correspondra à la valeur première de la suite.
b correspondra à la valeur précédente étant donné que la suite est : le nombre plus le précedent
y sera la compteur
x sera la xéme valeur de la suite

[code:1:0003e4c156] <<<a=1
<<<b=1
<<<y=0
<<<x=5
<<<while (y<x) :
... a,b,y=a+b,a,y+1
... if (y==x) :
... print a
... else :
... print ".",[/code:1:0003e4c156]


Vous obtiendrez ceci :

[code:1:0003e4c156]. . . . 13[/code:1:0003e4c156]

Les boucles et les conditions sont les fondements même de la programmations quelque soit le langage, la machines, ou sa complexité du programme.
Par exemple un pc passe sont temp à tester en boucle le fait qu'il y ai ou non du courant qui ricule, du courant signifie 1 et pas de courant signifie 0.
Toute l'informatique est fondé sur cela et donc ces notions doivent être PARFAITEMENT maitrisées.

Mais rassurez vous quand vous aurez compris comment ils fonctionnent dans un langage vous l'aurez compris pour tout les autres...
De plus vous pouvez deja commencer à programmer vos premiers programmes et avec uniquement ces 2 fonctions vous pouvez deja programmer des applications trés complexes.
Créez-vous des problémes de plus en plus complexe et essayer de les resoudres, vos capacitées d'analyste -programmeurs n'en seront que fortifié.
Pour vous donner quelques exemples :

- Calculer le xéme rang d'un table de multiplications et donner son rang
ex = 7*3 = 21 21 est le 3éme rang de la table par 7
-??crivez un programme qui affiche une table de conversion de sommes d'argent exprimées
en euros, en dollars qui ira jusqu'a 500??? en les affichant comme ceci
- 1??? est egale a 1.65 $
- 2??? est egale a 3.30 $
- etc.....

-Ecrivez un programme qui affiche x nombre qui sont chaqun egale au quadruple du précédent
Ces exemples sont normalement assez facile à résoudre et demandes juste un peut de logique.


-Si vous maitrisez bien ces derniers, essayez ceci mais il faudra faire vraiment fonctionner vos neuronnes
-Résolutions d'equations à 1 inconnues
-Résolutions d'equations à 2 inconnues
Bienvenue dans la cours des grands, le code sera beaucoup plus long que pour les précedents et il y a moyen grace à quelques astuces de le faire mais cela vous demandera beaucoup de reflexion et de patiente (j'ai fait tester ces deux tutoriaux à un ami pourtant deja habitué au C, il lui a fallut 3-4 jours pour trouver la bonne procédure...)


Sur ce...
A bon entendeur...
Salut ! By Manu404 and </Skorm>
[b:0003e4c156][/b:0003e4c156]
User avatar
Manu404
 
Posts: 2219
Joined: Tue Feb 26, 2008 3:44 pm
Location: ::1:

Return to Python

Who is online

Users browsing this forum: No registered users and 1 guest

cron