nsi première bases de programmation en python - fiche1

11
NSI Première Bases de programmation en python - Fiche1- Fiche 1 Programmation - Page 1 sur 11 Programmer un ordinateur, c'est quoi ? 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. Le seul langage 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 : Les langages de bas niveau Ils sont très complexes à utiliser, car très éloignés du langage naturel, on dit que ce sont des langages « proches de la machine », en contrepartie ils permettent de faire des programmes très rapides à l'exécution. L'assembleur est le langage de bas niveau. Certains "morceaux" de programmes sont écrits en assembleur encore aujourd'hui. Les langages de haut niveau Ils sont eux plus « faciles » à utiliser, car plus proches du langage naturel. (exemple : si a=3 alors b=c). Exemples de langages de haut niveau : C, C++ , java, Qbasic, python... Pour cette année, nous allons apprendre les bases de la programmation en utilisant le langage Python. I. Introduction 1) Première Utilisation Sur votre espace réseau personnel de l’ENT, dans le dossier NSI (à créer si il n’existe pas), créer un sous dossier PROGRAMMATION et à l’intérieur un sous dossier Fiche1. Lancer le logiciel Pyzo. Vous obtenez la fenêtre suivante : La fenêtre est composée de deux parties principales : l’interpréteur et l’éditeur (On retrouve la même structure avec une autre interface)

Upload: others

Post on 22-Jun-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 1 sur 11

Programmer un ordinateur, c'est quoi ?

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. Le seul langage 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 :

Les langages de bas niveau Ils sont très complexes à utiliser, car très éloignés du langage naturel, on dit que ce sont des langages « proches de la machine », en contrepartie ils permettent de faire des programmes très rapides à l'exécution. L'assembleur est le langage de bas niveau. Certains "morceaux" de programmes sont écrits en assembleur encore aujourd'hui.

Les langages de haut niveau Ils sont eux plus « faciles » à utiliser, car plus proches du langage naturel. (exemple : si a=3 alors b=c). Exemples de langages de haut niveau : C, C++ , java, Qbasic, python...

Pour cette année, nous allons apprendre les bases de la programmation en utilisant le langage Python.

I. Introduction

1) Première Utilisation

Sur votre espace réseau personnel de l’ENT, dans le dossier NSI (à créer si il n’existe pas), créer un sous dossier PROGRAMMATION et à l’intérieur un sous dossier Fiche1.

Lancer le logiciel Pyzo.

Vous obtenez la

fenêtre suivante :

La fenêtre est composée de deux parties principales : l’interpréteur et l’éditeur

(On retrouve la même structure avec une autre interface)

Page 2: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 2 sur 11

L’interpréteur (ou console)

L’interpréteur, on le reconnait facilement.

C’est lui qui contient le triple chevron >>> qui est l’invite de Python (prompt en anglais) et qui signifie que

Python attend une commande.

L’esprit d’utilisation de l’interpréteur est un peu le même que celui d’une calculatrice.

Dans l’interpréteur, taper :

>>> 2 + 3 *5 Quel résultat obtient-on ? …………

On remarque au passage que la priorité des opérations est bien respectée.

>>> 4.6 / 2 Quel résultat obtient-on ? …………

>>> # une ligne qui ne fait rien Quel résultat obtient-on ? …………

Pour écrire des commentaires, il faut commencer par le caractère #.

L’éditeur

On peut y écrire des scripts, c’est-à-dire des programmes petits ou grands.

Pour l’instant contentons-nous de quelque chose de très simple :

Ecrire :

print(4.6 / 2) Ce tout petit script permet l’affichage du quotient de 4,6 par 2.

Il faut cliquer sur Run, puis « execute file ».

2) Mes premiers programmes

a) Traditionnellement, les "apprentis programmeurs" commencent leur "carrière" en écrivant

un programme qui permet d'afficher à l'écran le message "Hello World !".

Nous n'allons pas déroger à cette tradition.

Ce programme correspond, en langage algorithmique, à : Algorithme principal

Début

Afficher ("Hello World !")

Fin

Recopier la ligne : print("hello world !")dans la fenêtre « tmp1 » de Pyzo

Page 3: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 3 sur 11

Sauvegarder le texte source du programme dans un fichier d'extension .py .

(On sauvegarde ici le fichier hello.py dans le répertoire NSI /PROGRAMMATION/

Fiche1)

Ensuite on va exécuter le programme

(Vous devez voir le message « hello world ! » apparaître dans la fenêtre de

l’interpréteur)

Les exercices suivants seront sauvegardés dans le répertoire ISN /PROGRAMMATION/ TP1

Sous la formeTP1exo1.py, puis TP1exo2.py …

b) Ecrire un programme qui affiche le résultat ci-contre :

Le sauvegarder sous TP1exo1.py

L’exécuter

c) Taper le programme TP1exo2.py :

print ("4+3 =" , 4+3) …………………………………………………………………………………………..

print ("21-5 =" , 21-5) …………………………………………………………………………………………..

print ("6*7 =" , 6*7) …………………………………………………………………………………………..

print ("5^3 =" , 5 **3) …………………………………………………………………………………………..

print ("72/7 =" , 72.0/7.0) …………………………………………………………………………………………..

print (72//7) …………………………………………………………………………………………..

print (72%7) …………………………………………………………………………………………..

L’exécuter

Expliquer ce qu’affiche chacune de ces commandes.

II. Les variables

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.

***************** * * * HelloWorld! * * *

*****************

Page 4: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 4 sur 11

Une variable est constituée de 2 choses :

Elle a une valeur : c'est la donnée qu'elle stocke (par exemple le nombre 5)

Elle a un nom : c'est ce qui permet de la reconnaître.

Nous n'aurons pas à retenir l'adresse de mémoire, nous allons juste indiquer des noms de variables à

la place.

Il est possible de stocker différents types de valeur dans une variable (on parle du type d'une variable) :

il est possible de stocker « des nombres entiers » (integer en anglais, abréviation : int ),

par exemple 5

il est possible de stocker « des nombres à virgule flottante » (float en anglais), par exemple 7.4

il est possible de stocker « des chaînes de caractères » (string en anglais), par exemple « maison »

il est possible de stocker « une liste de nombres entiers caractères » (list en anglais), par exemple

[1,2,3,4,5]

il est possible de stocker « des booléens » (bool en anglais), Un VRAI ou FAUX

1. Avec python il est très facile de définir une variable.

Voyons comment nous pouvons définir une variable et lui affecter une valeur.

Les termes « affecter une valeur » ou « assigner une valeur » à une variable sont équivalents. Ils

désignent l’opération par laquelle on établit un lien entre le nom de la variable et sa valeur (son

contenu).

En Python comme dans de nombreux autres langages, l’opération d’affectation est représentée par le

signe égale «** =** ».

Grâce à cette ligne, nous avons défini une variable qui porte le

nom i et qui « contient » la valeur 12.

2. Les noms de variables sont des noms que l’on choisit librement.

Il faut s’efforcer cependant de bien les choisir : de préférence assez courts, mais aussi explicites que

possible, de manière à exprimer clairement ce que la variable est censée contenir.

Par exemple, des noms de variables tels que compteur, cmpt ou cpt conviennent mieux que x pour

exprimer un compteur.

Un bon programmeur doit veiller à ce que ses lignes d’instructions soient faciles à lire

Sous Python, les noms de variables doivent en outre obéir à quelques règles simples :

un nom de variable est une séquence de lettres et de chiffres (0 → 9), qui doit toujours

commencer par une lettre.

Seules les lettres ordinaires sont autorisées.

Les lettres accentuées, les cédilles, les espaces, les caractères spéciaux tels que $, #, @,etc. sont

interdits, à l’exception du caractère _ (souligné).

La casse est significative (les caractères majuscules et minuscules sont distingués).

Prenez l’habitude d’écrire l’essentiel des noms de variables en caractères minuscules (y compris la

première lettre).

Il s’agit d’une simple convention, mais elle est largement respectée.

Page 5: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 5 sur 11

N’utilisez les majuscules qu’à l’intérieur même du nom, pour en augmenter éventuellement la

lisibilité, comme dans tableDesMatieres.

En plus de ces règles, il faut encore ajouter que vous ne pouvez pas utiliser comme nom de

variables les 35 « mots réservés » ci-dessous (ils sont utilisés par le langage lui-même).

async await False None True and as assert break class continue def del elif else except

finally for from global if import in is lambda nonlocal not or pass raise return try

while with yield

Exo1. À l'aide de Pyzo, testez le code suivant :

Comme vous pouvez le constater, l'instruction print () permet d'afficher la valeur contenue

dans la variable point_de_vie.

Elle permet d’afficher n’importe quel nombre de valeurs fournies en arguments (c’est-à-dire

entre les parenthèses)

Attention ! On ne met pas de guillemets.

Retester cet exemple avec le code suivant : Alors, que se passe-t-il ?

Exo2. Écrire un programme dans lequel on attribue la valeur 12,18 à la variable pointDeForce.

La valeur de pointDeForce doit ensuite s'afficher à l'écran.

Testez votre programme à l'aide de Pyzo.

Exo3. Tester le code suivant :

Quel type de variable a – t -on utilisée

Exo4. Tester ce programme à l'aide de Pyzo

Comme vous pouvez le constater :

la variable a est de type "chaînes de caractères" (str pour string), la variable b est de type "nombre entier" (int pour integer) la variable c est de type "nombre à virgule flottante" (float).

3. Tester un égalité

Tester si une égalité est vraie ou fausse se fait en utilisant == .

Page 6: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 6 sur 11

Executer les exemples suivant dans la console :

>>> a = 13 >>> var = 12.5 >>> print(a) >>> var 13 12.5 >>> a == 13 >>> 49.3 True False

On remarque au passage que, dans l’interpréteur interactif, taper juste var a le même effet

que print(var) .

Attention !

Ce n’est pas le cas dans l’éditeur où l’on a besoin de l’instruction print pour afficher un résultat.

4. Le signe + et les chaînes de caractères

Par défaut, lors de l’utilisation de la fonction print ( ) , les valeurs seront séparées les unes des autres par un

espace, et le tout se terminera par un saut à la ligne.

Exo5 a) Qu'est-ce que le programme suivant va permettre d'afficher à l'écran ?

a = "Hello"

b = "World"

print (a,b) Validez votre réponse à l'aide de Pyzo

b) Qu'est-ce que le programme suivant va permettre d'afficher à l'écran ?

a = "Hello"

b ="World" monExpression = a+b

print(monExpression) Validez votre réponse à l'aide de Pyzo

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.

c) Qu'est-ce que le programme suivant va permettre d'afficher à l'écran ?

a = 15

b = "victoires" print (a,b) Validez votre réponse à l'aide de Pyzo

Page 7: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 7 sur 11

Qu'est-ce que le programme suivant va permettre d'afficher à l'écran ?

a = 15

b ="victoires" monExpression = a+b

print(monExpression) Validez votre réponse à l'aide de Pyzo

Que pensez-vous de ce cas de figure ?

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.

L'instruction «str (variable à convertir)» permet de convertir une variable de type int en

une variable de type string.

Modifier le programme pour qu’il fonctionne comme prévu.

A partir de Python 3.5, les "fstring" , permettent de résoudre ce problème de combinaison

variable-chaîne de caractères. Tester le code suivant dans la console :

mon_nombre = 5

res = f"Nombre de personnes : {mon_nombre}" print (res)

Notez la présence du "f" juste avant le guillemet et des accolades qui encadrent le nom de

la variable.

Il est possible, dans une même chaîne de caractères d'avoir plusieurs noms de variable.

5. Manipulation de chaînes de caractères

Une chaîne de caractères est considérée comme une suite de caractères. Cette suite ou liste de

caractères peut être vue comme un tableau de caractères dont le premier élément se trouve à

l'emplacement d'indice 0.

Ainsi la chaîne "Blabla bli bloubloublou." est représentée par le tableau de caractères suivant :

Le caractère "B" est à l'indice 0,

le "." à l'indice 23

et la longueur de la chaîne qui correspond à la taille du tableau est de 24.

Exo6

Exécuter les lignes de code suivantes dans la console.

Résultats

>>> montexte = "Blabla bli bloubloublou."

>>> len(montexte) ……………….

>>> montexte[0] ……………….

Page 8: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 8 sur 11

>>> montexte[1] ……………….

>>> montexte[23] ……………….

>>> "a" in montexte ……………….

>>> "z" in montexte ……………….

>>> montexte.index("B") ……………….

>>> montexte.index("b") ……………….

>>> montexte.index(".") ……………….

>>> montexte.count("b") ……………….

Donner la signification des commandes utilisées.

6. Voici un exemple d’algorithme qui permet de calculer des éléments mathématiques

Algorithme principal

Entrées : rayon, perim, aires de type réels

Initialisation : affecter à Pi la valeur 3.14159 Traitement :

Afficher("Entrer la rayon : ")

Saisir (rayon)

Affecter à perim la valeur 2 × rayon × Pi Affecter à aire la valeur Pi × rayon²

Sortie :

Afficher ("Périmètre du cercle de rayon ", rayon , ": ") Afficher (perim)

Afficher("Aire : ")

Afficher(aire)

Les signes utilisés sont classiques : +, - , * (multiplication), / (division), // (division euclidienne) ou encore % (modulo : reste d'une division euclidienne).

Il est aussi possible d'effectuer des calculs plus complexes en utilisant par exemple des exposants,

des racines carrées, des fonctions trigonométriques...

Pour utiliser ces fonctions mathématiques plus avancées, il est nécessaire d'ajouter une ligne au début

de votre programme : import math

Cette ligne permet d'importer (et donc d'utiliser) le module "math" (ce module contient toutes les

fonctions mathématiques "classiques").

Voici quelques exemples :

math.pow(x,a) permet de calculer x à la puissance a

math.cos(x) permet de calculer le cosinus de l'angle x (l'angle x doit être en radian) (nous

avons la même chose pour le sinus ou la tangente)

math.sqrt(x) permet de calculer la racine carrée de x

Page 9: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 9 sur 11

Si vous avez besoin d'autres fonctions mathématiques, je vous invite à consulter la documentation

de Python : https://docs.python.org/2/library/math.html

Travail

Ecrire un programme qui exécute cet algorithme.

Aide

L’instruction « input() » permet aux utilisateurs d'entrer des données.

Les valeurs obtenues grâce à l'instruction input sont toujours de type string.

Pour entrer un nombre, il faut utiliser : « int (input (…)) », « float (input (…)) ».

Tester ce programme à l'aide de Pyzo.

III. Les fonctions

Les fonctions permettent de décomposer un programme complexe en une série de sous-programmes plus simples. De plus, les fonctions sont réutilisables : si nous disposons d'une fonction capable de calculer une racine carrée, par exemple, nous pouvons l'utiliser un peu partout dans notre programme sans avoir à la réécrire à chaque fois. La notion de fonction en informatique est comparable à la notion de fonction en mathématiques.

Si nous avons y = 3x+2, pour une valeur donnée de x, nous aurons une valeur de y.

Exemple : x = 4 donc y = 14 (y = 3×4+2 =14).

La fonction en informatique est basée sur la même idée :

Voici la syntaxe employée en Python pour définir une fonction : (quelque soit le langage, le principe est le même)

def nomDeLaFonction(parametre): instruction_1 instruction_2 ........ return y

suite programme

La fonction retournera la valeur contenue dans la variable y.

Page 10: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 10 sur 11

Exemple Dans la console, Codons (y=3x+2) en créant une fonction "maFonction" : def maFonction(x):

y=3*x+2 return y

Pour "utiliser" la fonction "maFonction", il suffit d'écrire : maFonction (4) (dans ce cas précis, notre fonction renverra le nombre 14).

1. Tester le programme suivant, dans la console :

def maFonction(x): y=3*x+2 return y

resultat = maFonction(4) resultat

Il faut savoir qu'au moment de l'exécution de votre programme le code "maFonction(4)" sera systématiquement remplacé par la valeur retournée par la fonction (toujours dans notre exemple le "maFonction(4) sera remplacé par le nombre 14). Le programme ci-dessus affichera donc 14.

2. Soit le programme suivant :

def maFonction(x): y=3*x+2 return y

print(f"le résultat est : {maFonction(5)}")

Quel est le résultat attendu après l'exécution de ce programme dans la console ? Vérifiez votre réponse à l'aide de Pyzo. Remarque Il est possible d'écrire une fonction dans l'éditeur

et d'utiliser la console (après exécution du programme) pour obtenir la valeur renvoyée par une

fonction

Page 11: NSI Première Bases de programmation en python - Fiche1

NSI Première Bases de programmation en python - Fiche1-

Fiche 1 Programmation - Page 11 sur 11

Exo7 Coder en Python la fonction y = x2 + 2x + 10 et tester la fonction.

Il est possible de faire passer plusieurs paramètres à une fonction.

Quel est le résultat renvoyé par la fonction ci-dessous si l'on saisit dans la console :

une_autre_fonction(5, 3)

def uneAutreFonction(x,b): y=3*x+b return y

Les paramètres peuvent être des chaînes de caractères (ainsi que la valeur retournée)

1. Quel est le résultat attendu après l'exécution du programme ci-dessous

et la saisie dans la console de : ditBonjour("Loic",14)

ditBonjour('Pierre',17) ? def ditBonjour(nom,age):

phrase = f"Bonjour {nom}, vous avez {age} ans." return phrase

Attention : remarquez bien les guillemets ou ' autour des paramètres Loic et Pierre (ce sont des chaînes de caractères)

Les paramètres ne sont pas obligatoires.

Tester le programme suivant :

def maFon(): return "Pas besoin de paramètre pour afficher"

Il faut aussi savoir qu'une fonction ne retourne pas forcément de valeur (le mot clé return n'est pas obligatoire). Mais si elle ne retourne pas de valeur, que fait-elle ? Elle peut faire plein de choses, par exemple elle peut tout simplement afficher un texte. Sachez que dans certains langages, on utilise les termes méthode ou procédure pour qualifier une fonction "qui ne retourne rien".

Soit le programme suivant :

def ditBonjour(nom,age): phrase = f"Bonjour {nom}, vous avez {age} ans." print(phrase)

Exécuter ce programme et le tester dans la console pour les valeurs ci-dessous. ditBonjour('Baptiste',14) ditBonjour('Ninon',11)