Programmation en Python

FULLSTACK : Algorithmique et programmation

Xavier Crégut Prenom.Nom@enseeiht.fr

1 Les bases de Python

Cette partie a pour but de présenter les bases de Python. Elle permet ensuite d’écrire deux petits programmes. Cette partie est découpée en :

Remarques : Quelques ajouts ont été faits sur le cours de cette partie. Ils sont listées dans la partie “Ajouts” à la fin.

2 Installation de virtualenv et PyCharm

Suivre les instructions en HTML et en pdf

Remarque : il est plutôt conseillé d’utiliser vscode (Visual Studio Code).

3 Les sous-programmes

Cette partie traite des sous-programmes (fonctions en Python) et des modules. Ce sont deux outils qui permettent de structurer

4 Les collections

Dans cette partie, nous allons voir d’autres structures de données classiques présentes en Python : pile, file, ensemble, dictionnaire.

5 La programmation objet

Cette partie est une introduction à la programmation objet en Python.

6 Quelques corrigés

Voici les premiers niveaux de raffinages du jeu du devin.

R0: Faire deviner un nombre

MAX = 999   -- limite supérieure pour le nombre à trouver

Principe : La machine choisit un nombre et le fait deviner à l'utilisateur

R1: Comment « Faire deviner un nombre »
   | Choisir un nombre compris entre 1 et MAX       nb_choisi: out
   | Faire deviner le nombre choisi         nb_choisi: in, nb_essai: out
   | Féliciter l'utilisateur                proposition, nb_essais: in

R2 : Comment « Faire deviner le nombre choisi »
   | nb_essais <- 0                 nb_essais: out
   | Répéter
   |  | Saisir la proposition de l'utilisateur      proposition: out
   |  | nb_essais <- nb_essais + 1          nb_essais: in out
   |  | Donner un indice à l'utilisateur (trop grand, trop petit)   proposition, nb_choisi: in
   | JusquÀ nombre trouvé               proposition, nb_choisi: in
R0: Deviner un nombre choisi par l'utilisateur

Principe : La machine devine le nombre choisi par l'utilisateur en utilisant
une recherche par dichotomie.

R1: Raffinage De « Deviner un nombre choisi par l'utilisateur »
   | Demander à l'utilisateur de choisir un nombre
   | Deviner le nombre choisi par l'utilisateur nb_essais: out, nb_choisi: out
   | Annoncer le vainqueur          proposition, nb_essais: in

R2 : Comment « Deviner le nombre choisi par l'utilisateur »
   | nb_essais <- 0             nb_essais: out
   | Initialiser l'intervalle de recherche  inf, sup: out
   | Répéter
   |  | Choisir un nombre           proposition: out
   |  | Proposer ce nombre          proposition: in
   |  | nb_essais <- nb_essais + 1      nb_essais: in out
   |  | Demander un indice à l'utilisateur  proposition: in ; indice: out
   |  | Réduire l'intervalle de recherche   indice: in; inf, sup: in out
   | JusquÀ nombre trouvé           indice: in
R0:  Jouer au devin en devinant ou faisant deviner

R1: Raffinage De « Jouer plusieurs fois au devin en devinant ou faisant deviner »
    | Répéter
    |   | Afficher un menu
    |   | Demander son choix à l'utilisateur
    |   | Lancer le jeu choisi
    | JusquÀ choix = QUITTER

R2 : Comment « Afficher un menu »
    | ÉcrireLn("1- L'ordinateur choisit un nombre et vous le devinez")
    | ÉcrireLn("2- Vous choisissez un nombre et l'ordinateur le devine")
    | ÉcrireLn("0- Quitter")

7 Partie UML (Culture 2.0)

8 Rendu des exercices demandés

Le travail demandé devra être rendu via SVN.

Pour créer localement une copie du dépôt, faire :

svn co http://cregut.svn.enseeiht.fr/2018/fs/algo/$USER

$USER à remplacer par votre identifiant INP.

Les commandes SVN à connaître sont :

Consignes pour rendre le travail demande :

9 Autres ressources