Programmer, c'est créer des programmes (suite d'ordres donnés à l'ordinateur) ! Un ordinateur sans programme ne sait rien faire. Il existe différents langages qui permettent de programmer un ordinateur, mais le seul directement utilisable par le processeur est le langage machine (suite de 1 et de 0), aussi appelé binaire. Aujourd'hui (presque) plus personne ne programme en binaire (trop compliqué).
Les informaticiens utilisent des instructions (mots souvent en anglais) en lieu et place de la suite de 0 et de 1. Ces instructions, une fois écrites par le programmeur, sont « traduites » en langage machine. Un programme spécialisé assure cette traduction. Ce système de traduction s'appellera interpréteur ou bien compilateur, suivant la méthode utilisée pour effectuer la traduction.
Il existe 2 grandes familles de langages de programmation :
Pour commencer cette année, nous allons apprendre les bases de la programmation en utilisant un langage nommé Python (langage de haut niveau).
Voici un lien permettant de télécharger une version portable de python.
Pour écrire des programmes en python nous utiliserons le logiciel IDLE. Celui-ci offre deux possibilités pour exécuter du code python :
La console, qui est un mode interactif. on saisit une commande à la suite de l'invite de commande (>>>) et en appuyant sur "Entrée" la commande est exécutée. Ce mode est très pratique pour tester des commandes ou des programmes très courts.
L'éditeur de scripts : accessible grâce au menu 'file'. Les instructions sont écrites les unes à la suite des autres (une ligne par commande) dans un fichier texte que l'on sauvegarde avec l'extention .py. On peut ensuite exécuter notre programme en appuyant tout simplement sur la touche F5.
Pour organiser votre travail, vous allez créer un dossier ICN qui contiendra un dossier python. Ce dernier contiendra plusieurs sous-dossiers activite_1, activite_2... qui contientront les scripts : script1.py pour le "à faire vous même n°1" etc...
Dans la console python, tapez ce qui suit puis tapez sur entrée.
print("hello world!")
Bravo, vous venez d'exécuter votre première commande python !
Familiarisons-nous maintenant avec l'éditeur de script : allez dans le menu File puis sur New File recopiez la commande précédente puis sauvegardez le en le nommant script1.py. Allez ensuite dans le menu Run sur Run Module ou plus simplement appuyez sur la touche F5 pour exécuter le script ainsi sauvegardé.
Bravo, vous venez d'écrire votre premier programme ! Notez qu'il est possible d'utiliser '...' à la place de "..." autour du texte à afficher.
Définition du mot ordinateur d'après "Le Petit Larousse" :
« Machine automatique de traitement de l'information, obéissant à des programmes formés par des suites d'opérations arithmétiques et logiques. »Qui dit "traitement de l'information", dit donc données à manipuler. Un programme "passe" donc son temps à traiter des données. Pour pouvoir traiter ces données, l'ordinateur doit les ranger dans sa mémoire (RAM - Random Access Memory). La RAM se compose de cases dans lesquelles nous allons ranger ces données (une donnée dans une case). Chaque case a une adresse (ce qui permet au processeur de savoir où sont rangées les données). Alors, qu'est-ce qu'une variable ? Eh bien, c'est une petite information (une donnée) temporaire que l'on stocke dans une case de la RAM. On dit qu'elle est "variable" car c'est une valeur qui peut changer pendant le déroulement du programme. Une variable est constituée de 2 choses :
i=12
Grâce à la ligne ci-dessus, nous avons défini une variable qui porte le nom i et qui «contient» la valeur 12.
Dans la console, testez le code suivant :
var = 15
print(var)
Comme vous pouvez le constater, l'instruction print permet d'afficher la valeur contenue dans la variable var
. J'attire votre attention sur l'absence de guillemets, vous pouvez retester cet exemple avec le code suivant :
print("var")
Alors, que se passe-t-il ?
Un ordinateur est bien évidemment capable d'effectuer des opérations mathématiques (arithmétiques).
Les signes utilisés sont classiques : +, - , * (multiplication), / (division), // (division euclidienne) ou encore % (modulo : reste d'une division euclidienne).
Il est tout à fait possible d'effectuer des opérations directement avec des nombres, mais il est aussi possible d'utiliser des variables.
Complétez le programme suivant (à sauvegarder sous script3.py) pour qu'il affiche la somme des variables a et b.
a=15
b=4
...............
print(resultat)
Essayez d'écrire un programme script4.py qui affiche le résultat de la division du nombre $a$ par le nombre $b$. Que constatez-vous ?
Testez maintenant le code ci-dessous :
a=15.0
b=4.0
resultat=a//b
print(resultat)
Pour terminer, testez ce code :
a=15.0
b=4
resultat=a%b
print(resultat)
a=11
print(a)
a=a+1
print(a)
Vérifier votre réponse grâce à la console.
Détaillons ce qui se passe :
La suite est un peu plus complexe, mais très importante à comprendre. Il va falloir lire la ligne a=a+1 de droite à gauche, décortiquons cette ligne :
Ce raisonnement peut être généralisé pour éviter des erreurs parfois difficiles à corriger : dans une égalité, commencer toujours par évaluer l'expression se trouvant à droite du signe égal.
maChaine="Bonjour le monde !"
print(maChaine)
Les variables peuvent donc contenir des types de données différents, pour l'instant nous en avons vu deux :
En Python les variables ont un type, mais le programmeur n'est pas obligé de préciser ce type.
Il existe beaucoup de langage (C++, Java...) où l'utilisateur doit absolument définir le type d'une variable avant de pouvoir l'utiliser, faute de quoi cela entraînera une erreur.
L'instruction type
vous permet de connaître le type d'une variable.
Testez dans la console ce qui suit :
a="Salut !"
b=567
c=5.87
d='42'
print(type(a))
print(type(b))
print(type(c))
print(type(d))
L'utilisation du signe + ne se limite pas à l'addition. Il est aussi utilisé pour la concaténation. D'après Wikipédia :
« Le terme concaténation (substantif féminin), du latin cum («avec») et catena(«chaîne, liaison»), désigne l'action de mettre bout à bout au moins deux chaînes. »
Comme vous avez pu le deviner en lisant la définition ci-dessus, la concaténation va concerner les chaînes de caractères.
a="Hello"
b=" World"
monExpression=a+b
print(monExpression)
Qu'est-ce que ce programme va permettre d'afficher à l'écran ? Validez votre réponse en l'exécutant.
Soit une variable a de type string, une variable b de type int et une variable c=a+b. Dans ce cas précis, le signe + est-il le signe de la concaténation ou de l'addition ? La variable c est-elle de type string, de type int ou d'un autre type ? Éssayez de répondre à ces questions.
input
¶Ne trouvez-vous pas que pour l'instant cela manque un peu d'interactivité ? En effet, l'utilisateur de vos programmes est plutôt passif !
Heureusement l'instruction input
va permettre aux utilisateurs d'entrer des données.
Ecrivez un programme scrip9.py contenant le code suivant et testez-le :
age=input("Quel est votre âge ?")
print("vous avez "+age+" ans")
Écrivez un programme script10.py qui demande son prénom à l'utilisateur puis l'affiche sous la forme "bonjour, Toto" (si Toto est le prénom entré par l'utilisateur !).
Écrivez un programme script11.py qui demande à l'utilisateur d'entrer 2 nombres entiers et affiche le résultat de l'addition de ces 2 nombres. Tester ce programme.
Problème : si l'utilisateur entre 25 puis 12 le résultat affiché est 2512 !
Avez-vous une idée du problème ?
Pour vous aider dans votre recherche, modifier votre programme pour qu'il affiche le type de a et le type de b.
Alors ?
Les valeurs obtenues grâce à l'instruction input
sont forcément de type string. Nous avons donc ici une concaténation et non pas une addition.
La fonction int()
permet de convertir une variable de type string en une variable de type int.
a=int(b)
(avec b de type string et a de type int).
Modifier votre programme pour qu'il fonctionne normalement.
str()
. Cela peut être utile notamment pour effectuer une concaténation.
Tester le programme suivant :
age=12
print("Bonjour, j'ai "+str(age)+" ans.")