INFO-H-100 - TP1

Presenter Notes

Organisation

Travaux pratiques :

  • 18 séances
  • Sur papier et sur machine (toujours en salle machine)

Site web :

Assistants :

Presenter Notes

Guidances

Les élèves assistants sont disponibles pour vous certains midis de 12h30 à 13h30 au local UB4.130 (Salle Socrate). Consultez le site web pour savoir quand ils sont disponibles.

Ils sont là pour répondre à vos questions sur :

  • les machines des salles
  • les exercices de programmation
  • les projets
  • l'installation de Python chez vous
  • ...

Presenter Notes

Evaluation

  • Deux projets (un par semestre)
  • Interrogation de janvier (théorie et pratique)
  • Examen de juin (théorie et pratique)
  • Pondération en première session :
    • 20% projets
    • 20% interrogation de janvier
    • 60% examen de juin
  • Pondération en seconde session :
    • 20% projets
    • 80% examen de septembre

Presenter Notes

Introduction à Python

Presenter Notes

Grammaire

  • Python est un langage formel
    • La syntaxe est stricte
    • On va définir une notation pour décrire la grammaire

Exemple

<phrase> = <sujet> <verbe> <complément> | <sujet> <verbe>
<sujet> = je | il
<verbe> = mange | vole
<complément> = une pomme | un camion

Presenter Notes

Grammaire

<phrase> = <sujet> <verbe> <complément> | <sujet> <verbe>
<sujet> = je | il
<verbe> = mange | vole
<complément> = une pomme | un camion

Cette grammaire définit huit phrases :

  • Je mange une pomme
  • Je vole une pomme
  • Je mange un camion
  • Je vole un camion
  • Il mange une pomme
  • ...

La grammaire sera utilisée de manière informelle.

Presenter Notes

Valeurs et types

Une valeur est un des éléments de base d'un programme, comme un nombre, une lettre ou une chaine de caractère. Toute valeur possède un type :

Type Exemple Explication
str "Hello" Chaîne de caractères (string) identifiable grâce aux guillemets
int 2 Entiers (integer)
float 2.0 Nombres réels (floating-point number)

Presenter Notes

Variables et assignation

Une variable est un nom qui permet de faire référence à une valeur.

L'assignation est l'instruction qui permet d'associer une valeur à une variable. Si la variable n'existe pas dans le contexte, elle est créée.

Syntaxe :

<identifiant> = <valeur>

Exemple :

poids = 82.7
taille = 1.78
nombre_enfants = 3
nom = "Dupuis"

Presenter Notes

Variables et assignations

  • Un identifiant est une suite de caractères parmi les lettres (majuscules et minuscules), les chiffres et le caractère _; il ne peut pas commencer par un chiffre.
  • Une valeur peut pour le moment être un entier (4), un nombre à virgule (5.3) ou une chaîne de caractères ("bonjour").
  • Autres types de valeurs (que l'on verra plus tard) : fonction, liste, dictionnaire, tuple, etc.

Presenter Notes

Variables

  • Une variable préexistance peut se voir assigner une nouvelle valeur.
a = 5
# Ici, a désigne 5
a = 8
# Ici, a désigne 8
a = "Bonjour"
# Ici, a désigne "Bonjour"
  • Le caractère # introduit un commentaire. Le reste de la ligne sera ignorée par l'ordinateur (et ne sert donc que pour un lecteur humain du code)
  • Il est important de donner à vos variables des noms qui ont du sens dans le contexte où elles sont utilisées.
  • Remarque : Python est un langage dit typé dynamiquement. Cela signifie que le type est associé à la valeur et pas à la variable. De manière général, on considèrera que changer le type associé à une variable (comme ci-dessus) est une mauvaise pratique.

Presenter Notes

Variables

  • Veillez à donner à vos variables des noms qui ont du sens : average, sum, message, ...
  • Attention à la casse : totalPrice est différent de totalprice.
  • Problème : on ne peut pas utiliser d'espaces dans les identifiants.
    • Les "underscores" : les mots sont séparés par un _ (total_price)

Presenter Notes

Opérateurs

Les opérateurs suivants sont présents dans le langage :

  • +, *, -, / : sémantique usuelle
  • ** : exposant
  • % : modulo (reste de la division entière)

La priorité des opérateurs est la même qu'en arithmétique. Les parenthèses peuvent également être utilisées.

a = 4 + 5
# a désigne 9

Presenter Notes

Expression

Une expression est un morceau de code qui renvoie une valeur. Cette valeur peut ensuite être récupérée dans une variable ou réutilisée directement. Les opérations arithmétiques sont des expressions.

Exemples :

a = 4 + 5
# a désigne 9
b = (4 + 5) * 4
# b désigne 36
c = a + b
# c désigne 45

Un identifiant utilisé ailleurs que dans la partie gauche d'une assignation est une expression qui renvoie la valeur associée à l'identifiant.

Presenter Notes

Affichage

La fonction print affiche le résultat d'une expression.

print(3 + 8)
# Affiche "11" à l'écran

Vous pouvez maintenant communiquer avec l'utilisateur.

Presenter Notes

Type de valeur

La fonction type donne le type d'une valeur :

>>> type(2.0)
<type 'float'>

Presenter Notes

Valeurs et types

De manière générale, un appel de fonction se fait de la manière suivante :

<identifiant>(<arguments>)

Presenter Notes

Lancement d'un programme

Pour lancer un programme, il faut enregistrer le code dans un fichier texte et demander à l'interpréteur python d'exécuter le fichier.

  • Un fichier texte est un fichier compatible avec notepad.exe
    • Pas un fichier Word
  • Pour invoquer l'interpréteur python, il faut aller dans le terminal et taper python3 <nom du fichier>
    • Il faut être dans le bon dossier

Voir séance d'introduction aux salles pour l'utilisation du terminal.

Presenter Notes

Chaînes de caractères

Les valeurs peuvent être des chiffres, mais aussi des chaînes de caractères, c'est-à-dire du texte préparé dans le but de l'afficher à l'utilisateur.

nom = "Gary"
print("Bonjour " + nom)

Les chaînes de caractères supportent plein d'opérations. Pour le moment :

  • <str> + <str> : concatène ("mets bout à bout") deux chaînes de caractères
  • <str> * <int> : répète <int> fois la chaîne <str>

Presenter Notes

Notion d'algorithme

Un algorithme est une recette de calcul. Il existe par exemple un algorithme de résolution d'une équation du second degré a x^2 + b x + c :

  • Calculer le delta avec la formule b ^ 2 - 4 a c
  • En fonction de la valeur de delta :
    • Si delta est négatif : il n'y a pas de solution
    • Si delta est nul : il y a une double solution - b / (2 a)
    • Si delta est positif : il y a deux solutions, (-b+racine(delta))/2a) et (-b-racine(delta)/2a)

Presenter Notes

Langage de programmation

Un langage de protrammation comme Python est un langage formel dont le but est d'exprimer des algorithmes. L'algorithme précédent s'écrirait en Python (en supposant prédéfinies les variables a, b et c) :

delta = (b ** 2) - (4 * a * c)
if delta < 0:
    x1 = None
    x2 = None
elif delta == 0:
    x1 = -b / (2 * a)
    x2 = x1
else:
    d = delta ** 0.5
    x1 = (-b + d) / (2 * a)
    x2 = (-b - d) / (2 * a)

Presenter Notes

Conditions

Comme vous venez de le voir, Python permet d'exprimer la notion de condition : si une certaine condition est remplie, on fait quelque chose, sinon on fait autre chose.

Syntaxe :

<bloc de code 0>
if <condition 1>:
    <bloc de code 1>
elif <condition 2>:
    <bloc de code 2>
else:
    <bloc de code 3>
<bloc de code 4>

Il peut y avoir autant de elif que nécessaire. Chaque bloc peut contenir toutes les instructions vues jusqu'à présent (y compris d'autres if).

Presenter Notes

Conditions

La condition du if doit être une expression booléenne, c'est-à-dire une expression dont la valeur est soit True soit False. Les opérateurs qui renvoient des valeurs booléennes sont == (qui teste l'égalité), < (qui teste si la valeur à gauche est plus petite que la valeur à droite), et >.

Les valeurs comparées par < et > doivent être de type compatible.

Presenter Notes

Version

La version de Python enseignée dans ce cours est la 3.2

Dans le terminal, il faut donc taper python3 et non python. Faites également attention à la version que vous installez chez vous.

Presenter Notes