Midilibre.fr
Tous les blogs | Alerter le modérateur| Envoyer à un ami | Créer un Blog

11/10/2008

[python] - Programmation débutante sous linux

Nous allons nous lancer dans une série qui va apprendre à faire des petits programmes en Python.

Pré-requis - Créons notre fichier :

Grâce à cette série sur la programmation, nous allons également aborder la "console"... sous kde vous pouvez lancez konsole et sous gnome gnome-terminal

Vous vous trouvez devant un terminal qui va nous permettre de donner des ordres à l'ordinateur.

Ce que nous voulons faire :

1- créer un dossier, pour cela vous devez taper mkdir python et valider avec la touche entrée, vous venez de créer un dossier python dans votre dossier utilisateur (qui est l'emplacement par défaut du terminal) mkdir signifie make directory (créer un répertoire), vous pouvez allez voir dans gestionnaire de fichiers graphique il est bien là.

2- nous déplacer dedans, tapez cd python ce qui signifie que vous êtes dans le répertoire python (Change Directory).

3- créer un fichier,nous allons maintenant lancer notre éditeur de texte pour taper le programme. Sous kde, tapez kate bonjour et sous gnome gedit bonjour (vous l'aurez compris bonjour sera le nom de notre programme) une fois cela fait tapez :

#!/usr/bin/python
print "Bonjour"

C'est tout simple, la première ligne indique où se trouve python, elle sera systématiquement présente dans tous vos programmes, et la deuxième indique qu'il faut afficher le mot bonjour.Enregistrez votre programme.

4- le rendre exécutable, de retour dans notre terminal nous allons rendre notre programme exécutable : chmod +x bonjour voilà il ne nous reste plus qu'à lancer notre joli programme ./bonjour (le ./au début indique qu'il faut lancer le fichier bonjour dans le répertoire dans lequel on se trouve)

5- voir le rendu :

e9a80eef16adc6c85e2b9a06d63f787e.png

Notre programme nous dit bonjour, vous avez crée votre premier programme,.Nous allons maintenant rendre le programme plus évolué et plus poli, nous allons faire en sorte qu'il nous demande notre nom, et qu'il nous réponde bonjour "votre nom".

Réeditez votre programme (inutile de tout retaper, utilisez les flèches du clavier vers le haut pour revenir au moment  ou vous avez tapé kate bonjour ou gedit bonjour) et rajoutez les éléments en vert

#!/usr/bin/python
nom = raw_input('Votre nom : ')
print "Bonjour" + nom

lancez votre programme en tapant   ./bonjour et voyez la différence.....

f9b6230bfe02b85b64ca5df2d851a6f5.png
En fait vous avez stocké le nom dans ce qu'on appelle une variable, qui ici s'appelait nom, et nous l'avons appelé au moment de dire bonjour.
Un peu de calcul....
Travailler sur des chaînes c'est bien mais un peu de calcul ne fait pas de mal. Supposons que vous multipliez encore les chiffres par 6.55957 (allez savoir pourquoi...) nous allons créer un programme convertir.py (sur la même base que ci dessus) qui va récupérer un chiffre que nous allons donné à la suite du programme pour nous afficher la conversion :

#!/usr/bin/python
from string import atoi

valeur = raw_input('Montant : ')
combien = atoi(valeur)
multiplication = combien * 6.55957

print valeur + " en francs fait " + str(multiplication) + " Francs"

Automatiquement votre programme vous converti votre valeur en francs. Analysons un peu le code. une nouveauté  la deuxième ligne : nous avons besoins de convertir ce que vous allez rentré en chiffre (sinon cela s'appelle un string : autrement dit du texte) il est donc nécessaire d'appeler en renfort  des modules qui vont nous permettre de faire cela automatiquement en l'occurrence atoi d'ou le "from string import atoi".
la 3eme ligne vous demande le champs comme nous l'avons vu. et la quatrième permet de convertir votre texte (string) en chiffre (ici un int c'est à dire un chiffre sans virgule, si vous tapez 15.2 vous aurez une erreur). la variable combien converti donc votre texte (string) en chiffre entier (int). la variable multiplication elle, permet de multiplier "combien"
par 6.55957... et la vous me direz mais y'a une virgule là?

Et oui effectivement, 6.55957 est un flottant (float), mais python fait le nécessaire pour vous et converti automatiquement votre "combien" (qui est un int) en float. d'où le résultat que vous obtenez avec le print.

Un programme plus probant serait d'autoriser la saisie de variable avec virgule(en fait des points), pour cela il suffit de remplacer à la ligne 2 et 5 les atoi en atof pour convertir notre texte (string) en flottant (float).

Pour réaliser des opérations de calcul, vous avez à votre disposition : + pour les additions,  - pour les soustractions, * pour les multiplications et / pour les divisions.

Les conditions
Notre programme était jusqu'à  présent très linéaire, il suivait le programme de la première ligne jusqu'à  la dernière, nous allons introduire un nouveau concept : les conditions. Admettons que vous ayez dans votre portefeuille un certains montant et que vous souhaitiez acheter un objet. Nous allons demander à python de vérifier si vous avez assez pour vous faire plaisir.

#!/usr/bin/python
from string import atof

combien_sur_vous = atof(raw_input('Combien avez vous : '))
objet_desire = atof(raw_input('Montant de votre achat : '))

if combien_sur_vous < objet_desire:
print "Rentrez a la maison"
else:
print "ok vous pouvez achetez"

On rècupèrer donc le module atof (il est possible que quelques centimes traînent au fond de la poche et donc engendre des virgules).

Petite nouveauté vous constatez que l'on a placé atof et raw_input sur la même ligne, on gagne de la place en en-capsulant les variables, atof converti directement le retour de raw_input. On prends donc les deux variables (combien_sur_vous et objet_desire)
Nota: jamais d'espace ni d'accent dans les noms de variables ... attention.
et nous commencons notre conditions if combien_sur_vous < objet_desire: qui signifie tout simplement SI combien_sur_vous est inférieur à la variable objet_desire, on demande à l'ordinateur d'afficher une petite phrase nous demandant de rentrez chez nous plutôt que de faire du leche vitrine. dans le cas inverse ELSE (sinon) on demande d'afficher l'accord.

NOTE IMPORTANTE : python structure son code sur les espaces ou les tabulations, c'est à dire qu'aprés le IF et le ELSE vous avez notez que j'ai rajouté une tabulation, en fait chaque tabulation correspond à un niveau d'ordre dans les blocs de conditions.
Donc si vous avez 10 lignes dans un IF il vous faudra indenter (mettre le même nom d'espace ou de tabulation entre le bord et le début de votre texte) de la même manière chacune des 10 lignes). C'est un concept propre à Python mais qui permet d'avoir un code finalement  propre.