Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
Den här utvecklingskatalogen är arkiverad. Du kan se filer och klona katalogen, men inte öppna ärenden eller genomföra push- eller pull-förfrågningar.
 
 
 
 
 
 

8.4 KiB

% Programmation avec Python (chapitre 1) % Dimitri Merejkowsky

Plan

  • La ligne de commande
  • Présentation et historique du langage
  • L’interpréteur interactif
  • Un jeu simple

\center \huge La ligne de commande

Pourquoi la ligne de commande?

  • Très puissant
  • Ancien, mais toujours d’actualité
  • Indispensable dans de nombreux cas
  • Écrire des programmes qui marche dans la ligne de commande est (relativement) simple
  • Possibilités infines, même si on ne fait que manipuler du texte

Les bases

On tape un commande, on appuie sur entrée, l’ordinateur interprète ce qui a été tapé et affiche un message:

  • cd
  • ls (ou dir sous Windows)
  • pwd

\center \huge Python

Petit détour: version d’un programme

  • Comme les versions d’un document
  • Si le nombre est plus grand, c’est plus récent
  • Souvent en plusieurs morceaux: 1.3, 1.4, 3.2.5. etc
  • Plus l'écart est grand, plus le programme a changé.
    • 3.2.5 -> 3.2.6: pas grand-chose
    • 1.5.1 -> 4.3: beaucoup de changements
  • On omet souvent le reste des numéros quand c’est pas nécessaire

Historique

  • Créé par Guido van Rossum. Conçu à la base pour l’enseignement.
  • Le nom vient des Monty Python (si, si)
  • Python 1: Sortie en 1991
  • Python 2: en 2000
  • Python 3: en 2008

Le grand schisme

La plupart des langages continuent à être compatibles d’une version à l’autre.

Ce n’est pas le cas pour Python3, et ça a causé beaucoup de confusion et de débats.

Heureusement, 10 ans plus tard, la situation s’est arrangée, et Python2 cessera d'être maintenu le premier janvier 2020.

Python3

Ce cours fonctionne donc uniquement avec Python3.

N’utilisez pas Python2, sinon certaines choses expliquées ici ne marcheront pas :/

Utilisation de Python

  • Aussi appelé “langage de script”, glue language

  • Bon partout, excellent nulle part

  • Exemples d’utilisation:

    • Sciences (physique, chimie, linguistique ...)
    • Animation (Pixar, Disney ...)
    • Sites web (journaux, youtube, ...)
    • Ligne de commande
    • ...

Installation

L’interpréteur interactif

Python 3.7.1 (default, Oct 22 2018, 10:41:28)
[GCC 8.2.1 20180831] on linux
Type "help", "credits" or "license" for more information.

Note

À partir de maintenant, recopiez les entrées sur les slides dans votre propre interpréteur.

Vous devez taper la même chose après l’invite de commande (‘»>’) et vous devez voir les mêmes réponses.

Si ce n’est pas le cas, prévenez moi!

Entiers et maths simples

>>> 1
1
>>> 2
2
>>> 1 + 2
3
>>> 2 * 3
6

Flottants

C’est le . qui fait le flottant

>>> 0.5
0.5
>>> 0.5 + 0.2
0.7
>>> 10 / 3
3.3333333333333335

Note: les flottants sont imprécis

Division entières et modulo

>>> 14 // 3
4
>>> 14 % 3
2

Le % n’a rien à voir avec un pourcentage!

Priorité des opérations

>>> 1 + 2 * 3
7
>>> (1 + 2) * 3
9

Les parenthèses permettent de grouper les expressions

Variables

>>> a = 2
>>> a
2
>>> b = 3
>>> a + b
5
  • On peut nommer des valeurs
  • On peut afficher la valeur d’une variable entrant son nom dans le REPL

Variables (2)

>>> a = 2
>>> a
2
>>> a = 3
>>> a
3
  • On peut changer la valeur d’une variable (d’où son nom)

Nom des variables

Préférez des noms longs et descriptifs

Toujours en minuscules

Séparez les “mots” par des tirets bas (underscore)

>>> score = 42
>>> age_moyen = 22

Les chaînes de caractères

Aussi appelées “string”.

Avec des simple quotes (')

>>> 'Bonjour monde!'
'Bonjour monde'

Marche aussi avec des double quotes (")

>>> "Bonjour, monde!"
'Bonjour monde'

Double et simple quotes

On peut mettre des simples quotes dans des double quotes et vice-versa.

>>> "Il a dit: 'bonjour' ce matin."
"Il a dit: 'bonjour' ce matin."

>>> 'Il a dit: "bonjour" ce matin'
'Il a dit: "bonjour" ce matin!'

Échappement

Avec la barre oblique inversée “backslash”

>>> 'Il a dit: "bonjour". C\'est sympa!'
'Il a dit: "bonjour". C\'est sympa!'

Concaténation

>>> name = "John"
>>> message = "Bonjour " + name + " !"
>>> message
"Bonjour John !"

Types

>>> a = 42
>>> message = "La réponse est: " + a
TypeError: can only concatenate str (not "int") to str

Notre premier message d’erreur !

On ne mélange pas les torchons et les serviettes!

Conversions

Entier vers string

>>> a = 42
>>> message = "La réponse est: " + str(a)
>>> message
'La réponse est 42'

String vers entier

>>> answer = int("42")
>>> answer
42

Notez les parenthèses autour des valeurs.

Booléens

True et False

En Python, elle sont en majuscules!

Assignation

On peut assigner des variables aux valeurs True et False

>>> la_terre_est_plate = False
...
>>> python_c_est_genial = True

Comparaisons

>>> a = 2
>>> b = 3
>>> a > b
False
>>> 2 + 2 == 4
True

Note: == pour la comparaison, = pour l’assignation

Comparaisons (2)

>>> a = 2
>>> b = 3
>>> a != b
True
>>> 2 + 2 >= 4
True

Comparaisons (3)

>>> a = 2
>>> a < 2
False
>>> 1 < a < 3
True

Non persistance

>>> a = 2
>>> quit()
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Du code dans un fichier

Aussi appelé: “code source”, ou “source”.

L’essence du logiciel libre :)

Installation d’un éditeur de texte simple

  • Linux; gedit, kate, ...
  • macOS: CotEditor
  • Windows: Notepad++

J’insiste sur simple. Inutile d’installer un IDE pour le moment.

Configuration

  • Police de caractères à chasse fixe
  • Indentation de 4 espaces
  • Remplacer tabulation par des espaces
  • Activer la coloration syntaxique

Notre premier fichier source

Insérez le code suivant dans votre éditeur de texte

# Affiche un message
print("Bonjour, monde")

Sauvegardez dans un fichier bonjour.py dans Documents/e2l/python par exemple

Démonstration avec kate

C’est l'éditeur que nous utiliserons pour nos ateliers.

  • Pour l’environement KDE, mais ça marche bien sous Gnome aussi
  • Coloration syntaxique
  • Auto-complétion

Lancer du code en ligne de commande

$ cd Documents/e2l/python/
$ python3 bonjour.py
Bonjour, monde
  • Les lignes commençant par dièse (#) ont été ignorées - ce sont des commentaires.
  • print() affiche la valeur, comme dans le REPL.

Note importante (1)

Vous avez juste besoin:

  • d’un éditeur de texte
  • de Python3 installé
  • d’une ligne de commande

Pas la peine d’installer quoique ce soit de plus pour le moment

Note importante (2)

À partir de maintenant, s’il y a marqué # à recopier en haut d’un exemple

  1. Recopiez le code affiché dans votre éditeur, à la suite du code déjà écrit
  2. Lancez le code depuis la ligne de commande
  3. Réparez les erreurs éventuelles
  4. Recommencez

Note importante (3)

C’est le meilleur moyen d’apprendre. Si vous restez passifs vous retiendrez beaucoup moins de choses et ne pourrez pas coder par vous-même.

Profitez qu’on soit là pour vous aider si vous avez des erreurs que vous ne comprenez pas!

Flot de contrôle

L’essence de la programmation!

while

Répéter tant qu’une condition est vraie

print("Bonjour, monde")
while True:
    print("spam!")

Notes:

  • deux points à la fin de la ligne
  • indentation après les deux points

Notre première boucle infinie

$ python bonjour.py
Bonjour, monde
spam!
spam!
spam!
....

CTRL-C pour interrompre

Conditions

a = 3
b = 4
if a == b:
    print("a et b sont égaux")
else:
    print("a et be sont différents")

Rappel:

  • deux points à la fin de la ligne
  • indentation après les deux points

Combiner while et if

Interrompt la boucle quand une condition devient vraie:

i = 0
while True:
    i = i + 1
    if i > 3:
        print("i est plus grand que 3, on arrête")
        break
    print("i =" + str(i))
    print("i est plus petit que 3, on continue")
i = 1
i est plus petit que 3, on continue
i = 2
i est plus petit que 3, on continue
i = 3
i est plus petit que 3, on continue
i est plus grand que 3, on arrête

Lire une entrée utilisateur

  • input() (encore des parenthèses ...)

    • interrompt le script
    • lit ce que l’utilisateur tape jusqu'à ce qu’il tape “entrée”.
    • renvoie une string

Le jeu

On fait deviner un nombre à l’utilisateur, en affichant ‘trop grand’, ‘trop petit’ jusqu'à ce qu’il trouve la valeur exacte.