Python est un langage de programmation développé à partir de 1989 par Guido van Rossum.
Son langage de programmation est :
Dans un langage interprété : le code que vous écrivez est interprété, en gros, ligne à ligne, par un logiciel qu'on appelle interpréteur. Celui-ci va utiliser le code source et les données d'entrée pour calculer les données de sortie.
D'autres langages (comme le C, ...) sont compilés : le code que vous écrivez est d'abord compilé par un logiciel qu'on appelle compilateur en une succession de 0 et de 1. Le système d'exploitation utilise ce code compilé ainsi que les données pour calculer les données de sorties.
L'intérêt principal d'un langage interprété est la portabilité de votre programme : il marche quelle que soit la configuration de votre ordinateur. Le principal défaut est que l'exécution d'un programme interprété est souvent plus lente que le même programme écrit dans un langage complié.
Il existe de nombreux environnements de travail pour programmer en Python. En voici deux :
Pendant l’exécution d’un programme, les données que ce dernier manipule sont stockées en mémoire centrale. En nommant ces
données, on peut les manipuler beaucoup plus facilement.
Les variables nous permettent donc de manipuler ces données sans avoir à se
préoccuper de l’adresse explicite qu’elles occuperont effectivement en mémoire. Pour cela, il suffit de leur choisir un nom
ou identificateur.
L’interpréteur est un programme qui traduit les lignes de code en langage Python en un langage directement compréhensible par l'ordinateur : le langage machine. L'interpréteur s’occupe d’attribuer une adresse à chaque variable et de superviser tous les éventuels futurs changements d’adresse.
Une variable peut etre assimiler a une boite aux lettres portant un nom.
En langage Python, l'affectation sera notée à l'aide du symbole égal : =. On note ainsi l'affectation de 5 à x : x = 5
Attention ! En écrivant ceci, on n'exprime pas une égalité mais l'interpréteur exécute les actions suivantes :
Ainsi, en python, on peut lire x=5 comme : "x est lié à un objet de type int dont la valeur est 5".
Même si Python est un langage non typé, on peut tout de même préciser le type directement ainsi : x:int = 5.
De même, l'instruction: >>>x = x+1
est très fréquente en informatique en revanche, elle est inacceptable en mathématiques.
De plus, à chaque variable correspond un identifiant, un numéro qui identifie une case mémoire. En Python, il est possible de connaître :
1ère case: Saisir le code
L'identification n'est pas la meme entre chaque eleves qui a executer le code
2eme case: Saisir le code
3eme case: b est un entier
4eme case: Saisir code
5, 6, 7 cases: b est une chaine de charactere
La fonction print permet d'afficher les éléments mis entre parenthèses.
La fonction print peut prendre plusieurs arguments séparés par une virgule ,
Cela permet ainsi d'afficher un mélange de texte et de contenu de variables.
Exemple
Transformer les espaces:
Vous avez dû remarquer avec l'exemple précédent qu'à l'exécution, un espace ' '
ou " " est automatiquement ajouté entre chaque argument de la fonction print.
Ce comportement peut être modifié par l'ajout d'un argument identifié par le
nom sep, de type chaîne de caractères (str en Python).
Exemple : on teste l'instruction suivante

Aller à la ligne dans un print:
Le chaîne de caractères \n sert à passer à la ligne lors de l'affichage. Ainsi,
dans l'utilisation suivante, les arguments affichés sont placés les uns en dessous
des autres :
Exemple
Exercice : Réaliser l'affichage suivant en n'utilisant qu'un seul \n :
Mots, et, valeur, 3.14159, à afficher.
input
La fonction input permet d'obtenir une saisie depuis le clavier.
Exercice 3: tester chaque code suivant

Attention ! La fonction input renvoie toujours une chaîne de caractères (son type est bien str) même si un nombre (entier ou réel) a été saisi. Pour pouvoir utiliser le renvoi dans un calcul, il est parfois nécessaire de changer son typage à l'aide des fonctions int ou float qui permettent de transformer respectivement une chaîne de caractères correspondant à un nombre en nombre entier ou nombre réel (un flottant pour être précis).
Fonctions en informatique
En informatiques, les fonctions servent à mieux structurer votre code. Par exemple, elles permettent d'éviter de répéter plusieurs fois des portions de codes identiques. Ainsi, une fonction peut être vu comme un «petit» programme :
Une fonction qui modifie des variables mais sans renvoyer de résultat est appellée une procédure. Le langage Python ne fait pas de différence dans la syntaxe entre fonction et procédure.
Une fonction qui renvoie un booléen est aussi appelé un prédicat.
Fonctions en python
En Python, une fonction est définie (= être créée) en suivant toujours le même formalisme :
Voici visuellement la structure d'une fonction en Python :
Exemple: Voici la fonction carrée :

Appel de fonction
Une fonction est utilisée comme une instruction quelconque. Un appel de fonction est constitué du nom de la fonction suivi entre parenthèses des valeurs des paramètres d'entrée. Cet appel peut être fait :
Remarque
Il peut vous être utile d'utiliser les deux opérateurs // et % définis ainsi :
a // b renvoie le quotient de la division euclidienne de a par b.
Par exemple: 13 // 5 renvoie 2 car 13 = 5 × 2 + 3.
a % b renvoie le reste de la division euclidienne de a par b.
Par exemple: 13 % 5 renvoie 3 car 13 = 5 × 2 + 3.
Le langage Python est plus aisé pour démarrer la programmation pour la concision des codes écrits et pour la gestion automatique du typage par l'interpréteur. Cependant, le but est que vous puissiez à terme être capable de faire basculer vos compétences acquises en NSI sur Python vers d'autres langages de programmation.
Comme la plupart des langages de programmation nécessitent la spécification du typage des variables, à terme, on vous demandera d'écrire en Python, une fonction en précisant le type de chaque antrée et sortie en suivant le même formalisme que ci-dessous :
La convention PEP8 donne l'habitude de nommer les fonctions (comme les variables) avec des lettres minuscules des tirets bas (celui du "8") _. Pour clarifier la fonction, il est conseillé d'utiliser un verbe dans son nom (obtenir, donner, get, set, ...).
Il est important de documenter vos fonctions, c'est-à-dire de décrire en quelques phrases le rôle de la fonction, de donner des informations sur la fonction, le lien entre les entrées et la sortie.
Pour cela, juste en dessous de la première ligne définissant la fonction, il suffit de mettre ses informations entre """ et """ ; c'est ce que l'on appelle en franglais le docstring de la fonction). En reprenant l'exemple précédent (sans le typage), on peut écrire :
Exemple
L'intérêt de l'auto-documentation d'une fonction par un texte est double :
Exemple
Nous avons déjà vues les fonctions print et input. Ce sont deux fonctions prédéfinies dans le langage Python, On appelle ce type de fonction des
fonctions natives au langage Python , elles sont directement utilisables.
D'autres fonctions ont été développées et testées par différents programmeurs mais ne sont pas directement utilisables. Ces fonctions sont regroupées dans des
modules, appelés aussi bibliothèques. En terminale, vous apprendrez même à en créer par vous même !
Pour pouvoir utiliser ces fonctions, il faut d'abord importer ces modules. Pour cela, il y a plusieurs méthodes :



Il faut faire la différence entre les
variables utilisé dans le programme (variables globales)
et les variables utilisées dans une fonction (variables locales).
Vous allez comprendre cela à l'aide des exemples de l'exercice suivant :
Normalement vous avez dû détecter un problème : il y a une fonction qui ne peut pas être interprétée !
Il faut privilégier les variables locales. La première écriture, celle de carre est la définition à privilégier.
Vous pouvez utiliser des variables globales, comme mais dans carre3, des cas qu'il faudra bien définir en amont.
Le danger des variables globales est quelle peuvent être modifiée à différents endroits d'un programme ce qui plus difficile la prévision du comportement du programme, dès que celui-ci devient assez conséquent.
En résumé, pour l'instant, pas de variables globales .
Exercice 8
1.Voici une fonction augmenter_score qui prend comme paramètre d'entrée les points à rajouter
et renvoie le nouveau score obtenu.
Combien de variables apparaissent dans la fonction nouveau_score ? De quel type ?
2.Exécuter le script suivant :

Rajouter un paramètre à la fonction peut-être très utile pour supprimer une variable globale.
Voici le code en Python d'une fonction nommée get_unite qui prend comme paramètre un nombre entier et qui renvoie son chiffre des unités.
Une documentation a été donnée afin d'expliciter le bon usage de la fonction. Mais on ne pas être certain qu'un utilisateur de la fonction respectera les contraintes implicites ou explicites de la documentation et du typage. Voici quelques exemples d'appel de la fonction :
On voit que l'appel conduit à une réponse à chaque fois, mais que celle-ci ne correspond pas toujours à ce qui est attendu. Pour rendre
"robuste" la fonction précédente, on doit vérifier au début de celle-ci certaines contraintes de bon usage que l'on appelle précondition .
Dans l'exemple précédent, ces préconditions sont :
Pour cela, le langage Python possède l'instruction assert qui permet un mécanisme d'assertion. Les deux préconditions précédentes s'ajoutent à la fonction précédente ainsi :
Vous pouvez retrouver ici une petite vidéo qui synthétise les appels de modules, les docstring et les assert
Souvent les fonctions sont appelées au cours de programme ; le type et la qualité du résultat renvoyé est important pour ne pas conduire à un plantage. Des contraintes sur la variable renvoyée sont souvent nécessaires : on les appellent les postconditions.
Reprenons l'exemple précédent :
Voici le résultat de quelques appels effectués :
Comme le résultat renvoyé doit être un nombre entier compris entre 0 et 9, on va rajouter les postconditions suivantes :
On utilise encore l'instruction assert, juste avant le return pour écrire ces postconditions comme montré ci-dessous :
Si vous rencontrez des difficultés sur l'utilsation de Jupyter pour :
La possibilité de stocker un entier dans une variable stockant initialement une chaîne de caractères est possible en Python car c'est un langage non typé : l'interpréteur gère automatiquement le typage. Attention ! Dans beaucoup d'autres langages de programmation, cela n'est pas possible.
La longueur d'une chaîne de caractères (c'est-à-dire le nomnbre de caractères) nommée chaine en Python s'obtient avec la commande len(chaine).
QCM 1
QCM 2
QCM 3
QCM4
QCM5
Exercice 28/09 a ranger
Exercice 2 15/10
Écrire une procédure table_multiqui reçoit en entrée un nombre entier n compris entre 0 et 10 et affiche en sortie la table de multiplication de ce nombre.
Exercice 3
À la naissance de Crésus, son grand-père Midas, lui ouvre un compte bancaire. Ensuite, à chaque anniversaire, le grand père de Crésus verse sur son compte 100 €, auxquels il ajoute le double de l’âge de Crésus. Par exemple, lorsqu’elle a deux ans, son grand-père lui verse 104 € ce qui fait un total versé de 100+102+104=306 € à la deuxième année. Écrire une fonction tresor() qui en entrée reçoit un entier n et en sortie renvoie la somme présente sur le compte de Crésus à sa n ième année écoulée entièrement.
Exercice 17
Écrire un code qui affiche toutes les manières possibles d’obtenir un euro avec des pièces de 2 cents, 5 cents et 10 cents. Faire aussi afficher combien de possibilités ont été ainsi trouvées.
Exercice 5
Que fait le code?
Puis transformer le code pour qu'il compte le nombre de i.
Exercice 6
1. Écrire une fonction est_dans_liste qui prend en paramètres une liste lst et un entier n et qui renvoie True si l'entier est dans la liste et False sinon.
2. Tester la fonction est_dans_liste, entre autres, est_dans_liste([8,4,7,2,5,4],6) renvoie False et est_dans_liste([8,4,7,2,5,4],4) renvoie True.
3. Proposer au moins deux autres tests pour valider cette fonction sous forme de postconditions.
Exercice 19
Écrire une fonction produit qui prend comme paramètre un entier naturel n et renvoit le produit de tous les nombres entiers compris entre 1 et n. Exemple : pour produit(4) renvoie 24 car P= 1 × 2 × 3 × 4 = 24.
02/11
Exercice 8
05/11
Exemple 10
En utilisant une boucle while, écrire une fonction est_dans_liste2 qui prend en paramètres une liste lst et un entier n et qui renvoie True si l'entier est dans la liste et False sinon.
Exercice 11
Vous allez programmer un jeu de nombre à deviner contre un ordinateur. Pour commencer l'ordinateur va choisir au hasard un nombre compris entre 1 et 100. Ensuite, l'utilisateur doit alors deviner ce nombre comme ceci : l'utilisateur propose un nombre, l'ordinateur lui dit s'il est trop petit ou trop grand, et ainsi de suite jusqu'à ce que l'utilisateur ait trouvé le bon nombre.
Exercice 9
Une association militant pour la sauvegarde d'une espèce protégée fait appel à un financement participatif. Cette association a besoin de 13500€ pour mener à bien sa campagne annuelle. Elle aimerait savoir combien de jours seront nécessaires pour obtenir la somme de 13500€ en fonction de la somme moyenne recueillie sur le site. Elle fait appel à vous afin que vous lui créiez un programme répondant à la question.
QCM 09/11
QCM 4
QCM 5
voici d'autre exemple 09/11