Programmation Impérative Introduction Python et Variables

publicité
Historique de Python
Programmation Impérative
Introduction Python et
Variables
Début en 1989-1990
Écrit en C
Versions « précédentes »
1.5.2 : 1999
2.0 : 2000
2.7.10 : 2015
3.0 : 2008
3.5 : septembre 2015
salles de TP : version 3.2 (quelques différences)
De plus en plus utilisé dans le monde scientifiques
Tous types d'utilisations
faire des calculs, des statistiques
interfaces graphiques
jeux
sites webs (django, …)
6 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Notre Second Langage : Python 3
Langage tous usages
ordre (principal) = manipuler des variables, fonctions
bash ordre = lancer d'autres programmes
simple à apprendre mais complet
disponible sur Linux, Mac, Windows
beaucoup de "bibliothèques"
>_
Langage interprété (Python, bash, PERL, …)
écriture du programme dans un fichier
exécution de l'interpréteur sur ce fichier (textuel)
Programmation Impérative 3 : Plan
Historique de Python
Premiers programmes Python
Variables et types
Instructions conditionnelles
Listes de valeurs
Interaction avec l'utilisateur
exemple : python3 programme.py
Rappel : langage compilé (C, C++, Ada, …)
écriture du programme dans un fichier
lancement du compilateur sur ce fichier
lecture du fichier (textuel)
transformation vers du langage machine
sauvegarde dans un nouvel exécutable (binaire)
lancement de l'exécutable créé
1
2
3
4
5
6
7
8
9
7 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
8 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Premiers Programmes Python
Programmation Impérative 3 : Plan
Affichage et types
Historique de Python
print(42)
print(
42 )
print
( 42)
print("Hello bob")
print("Hello
bob")
print("42")
print("nombre =", 42)
print("")
print(42.42)
Premiers programmes Python
Commentaires
1
2
3
Variables et types
Instructions conditionnelles
Listes de valeurs
Interaction avec l'utilisateur
# toute cette ligne est un commentaire
print(42) # cette fin de ligne est un commentaire
# print(42) toute cette ligne est un commentaire
Opérations arithmétiques
1
2
3
4
5
6
7
8
print(40 + 2)
print(42*1.01)
print(42.42 / 1.01)
print(2+4 * 10) # priorité
print(42**2) # puissance : 42²
print(42**0.5) # racine ! : √42
print((2
+
4)*10) # parenthèses
print(41*1.01)
9 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
10 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Types et Variables
Toute valeur a un type
ex : 12 est un entier mais "12" est une chaîne de caractères
types principaux en python
int : entier
float : nombre réel (à virgule flottante)
complex : nombre complexes (a + b ⋅ j )
str : string, chaîne de caractères (simple ou double guillemets)
list : liste de valeurs
dict : dictionnaire, conteneur associatif
>_
bash
(toutes les valeurs sont des chaînes de caractères)
Variable : un nom pour une valeur
affectation de variable
a="tp1" , a = "tp1" , a = 12
dossier = 'tp1' , dep = 40 + 2
bash dossier=tp1
>_
utilisation de variables
print(dossier) , print(dep) , print(dep**dep)
bash texte par défaut, $ pour les variables : echo texte ${dossier}
variables par défaut, systématiquement des guillemets pour le texte
Exemple de Variables en Python
Programme du TP1
1
2
3
4
5
x = 1
y = 100
a = 0.2
res = x + a * y
print("res = ", res)
Carrés des nombres
1
2
3
4
5
6
7
8
9
10
11
12
i = 1
print(i,
i = 2
print(i,
i = 3
print(i,
i = 4
print(i,
i = 5
print(i,
i = 6
print(i,
"a pour carré", i*i)
"a pour carré", i*i)
"a pour carré", i*i)
"a pour carré", i*i)
"a pour carré", i*i)
"a pour carré", i*i)
>_
11 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
12 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Python : Typage Fort et Dynamique
Noms de Variables et Mots Clés
Typage dynamique en Python
Noms de variables :
ex : a truc objet2 maVariable ma_variable
ne contient que des lettres, chiffres et _
ne doit pas commencer par un chiffre
chaque valeur a un type
les variables ont le type des valeurs qu'on leur affecte
1 i = "bonjour" # type str
2 i = 42
# puis type int
3 print(type(i))
# <- type() pour obtenir le type
Mots clés
mots ayant une sémantique spéciale
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
Interdits comme nom de variable (ou fonction)
typage statique (C) : un type à chaque variable, une fois pour toutes
Typage fort en Python
certaines opérations entre types sont interdites
ex : "salut" / 42
elles causent des erreurs à l'exécution
les opérations permises dépendent des types, ex :
a * b permis ?
nb * nb ⇒ ok, ex : 40 * 1.05
str * int ⇒ ok, ex : "la" * 42
list * int ⇒ ok
str * str ⇒ non
13 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
14 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Programmation Impérative 3 : Plan
Instructions Conditionnelles if else
Historique de Python
Instruction conditionnelle
besoin d'exécuter une partie du programme ou une autre
selon une condition
Premiers programmes Python
Variables et types
Instructions conditionnelles
Listes de valeurs
Interaction avec l'utilisateur
Instructions if en Python
1
2
3
4
5
6
7
unites = 42
prixUnitaire = 9.50
if unites*prixUnitaire < 400:
reste = 400 - unites*prixUnitaire
print("C est bon, il te reste", reste)
print("Fin de la transaction")
Instructions if…else (si…sinon)
1
2
3
4
5
6
7
20 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
…
if unites*prixUnitaire < 400:
reste = 400 - unites*prixUnitaire
print("C est bon, il te reste", reste)
else:
print("Non....")
print("Fin de la transaction")
21 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Importance de l'Indentation en Python
Indentation : nombres d'espaces en début de ligne
Bonnes pratiques (tous languages)
l'identation reflète la structure du programme
chaque « bloc » est indenté par rapport à son parent
ex : les sous parties de if ont plus d'espaces
Logique Booléenne
“Mathématiquement”
12 < 13 est vrai (valeur booléenne V)
11 ≤ 10 est faux (valeur booléenne F)
Opérateurs booléens et, ou, non
F et F ... vaut ... F
V et F ... vaut ... F
V et V ... vaut ... V
En Python : indentation = bloc
obligation d'indenter correctement
le contenu du if (et else ) doivent avoir plus d'espaces
Conseils
F ou F ... vaut ... F
V ou F ... vaut ... V
V ou V ... vaut ... V
non V ... vaut ... F
non F ... vaut ... V
En Python
constante True et False , opérateurs booléens and , or , not
opérateurs de comparaison : == < > <= >= !=
indenter avec 4 espaces
ne jamais utiliser de tabulations
1 enPanne = False
2 carburant = 25.42
3
4 if carburant > 5 and not enPanne:
5
print("Tout va bien")
22 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
23 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Retour sur l'Instruction if de Python
Programmation Impérative 3 : Plan
Structure à suivre pour if
1 if «cond»:
2
«instr»
3
«instr»
4
…
5 …
1 if «cond»:
2
«instr»
3
…
4 else:
5
«instr»
6
…
7 …
#
#
#
#
si cond est True
si cond est True
si cond est True
après le if
# si cond est True
# si cond est True
Historique de Python
Premiers programmes Python
Variables et types
Instructions conditionnelles
Listes de valeurs
Interaction avec l'utilisateur
# si cond est False
# si cond est False
# apres le if
Où
«cond» est une condition booléenne
«instr» représente n'importe quelle instruction Python
les : sont obligatoire
l'indentation (devant «instr») est obligatoire
la désindentation marque la fin du if
24 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
25 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Listes en Python
Opérations sur les Listes : accès simple
Liste
peut aussi être appelée « tableau »
conteneur d'éléments
une liste contient des éléments
Exemples de listes
1 l1 = [10, 13, 9, 4, 15]
2 l1bis = [10,13,9,4,
15
]
3 l2 = ["bonjour", "salut", "hello", "hola"]
1 l3 = ["pi", 3.141592, "echap", 16777216]
2 listeVide = []
1
2
3
4
5
e = 2.7
x = 42.42
message = "hello"
l = [e, x, message, "autre", e, x*e]
...
26 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Accès à un élément : «variable» [ «indice» ]
(ex: l1bis[2] )
lecture/écriture
indices commençant à 0 !
1
2
3
4
5
6
7
l = ["premier", "second", "dernier"]
print(l[0])
# premier
print(l[2])
# dernier
l[1] = "DEUXIEME"
print(l[1])
# DEUXIEME
print(l)
# ['premier', 'DEUXIEME', 'dernier']
Longueur d'une liste, fonction len()
nombre d'éléments dans la liste
1 print( len(l) )
# 3
2 print( len([]) )
# 0
3 print( len( ["hello"] ) ) # 1
Test d'appartenance à une liste, mot clé in
1 l = ["un", "deux", "trois"]
2 print( 'un' in l, 'quatre' in l) # True False
27 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Opérations sur les listes
Concaténation de deux listes et répétition d'une liste
opérateur + : «liste» + «liste»
opérateur * : «liste» * «entier»
Ajout d'un élément à la fin
fonction append : «liste» .append( «element» )
Statistiques
fonctions sum / min / max : par ex. sum( «liste» ) , ...
1
2
3
4
5
6
7
8
9
10
11
12
13
A = [1,
B = [4,
print(A
print(B
2, 3]
5]
+ B)
* 3)
Programmation Impérative 3 : Plan
Historique de Python
Premiers programmes Python
Variables et types
Instructions conditionnelles
Listes de valeurs
Interaction avec l'utilisateur
# [1, 2, 3, 4, 5]
# [4, 5, 4, 5, 4, 5]
y = A + B
y.append(42)
print(y)
# [1, 2, 3, 4, 5, 42]
y[0] = 0
y = y + [3.14]
print(y)
print(max(y))
# [0, 2, 3, 4, 5, 42, 3.14]
# 42
28 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
32 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Entrée Utilisateur : la Fonction input
Lecture de Nombres : Conversions
input() renvoie une chaîne de caractères
But : rendre un programme interactif
Comment : demander à l'utilisateur de taper du texte
Fonction input(invite)
affiche l'invite à l'utilisateur
attend que l'utilisateur tape du texte et valide avec « entrée »
renvoie la chaîne tapée par l'utilisateur
1 nb = input("Entrez un nombre : ")
# 5
2 msg = input("Entrez un message : ") # Poum Tchak
3 print( nb * msg ) # erreur chaine*chaine
But : conversion string⇆nombre (pas limité au cas de input )
fonction int(chaine) renvoie un entier
fonction float(chaine) renvoie un flottant (réel)
fonction str(truc) renvoie une string
Exemple
1 nom = input("Entrez votre nom : ")
2 msg = input("Entrez un message : ")
3 print("Yo", nom, "! Tu as dit «", msg, "»")
Le programme est interactif !
Faut-il utiliser la fonction input ?
plus « fun »
mais moins automatisable
33 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
1 print( int("123") == 123 )
# True
2 print( float("42.12") == 42.1200) # True
3 print( int(nb) * msg) # ok!
1
2
3
4
age_string = input("Quel est votre age ? ")
suivant = int(age_string) + 1
suivant_str = str(suivant)
print("Vous allez avoir " + suivant_str + " ans !")
34 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Paramètres d'un Programme
But : l'utilisateur donne des paramètres au programme
>_
bash
bash creer-tp.bash tp1 tp2
accès aux paramètres avec ${1} , ${2} , ... et $@
python3 monprog.py poum tchak 5
Variables en programmation impérative
Types de base et variables en Python
Logique booléenne
importation du « module » sys (détails plus tard)
sys.argv contient une liste avec
Instruction conditionnelle ( if / else )
chaque paramètre est une chaîne de caractères
Fonctions prédéfinies len , sum , range , ...
le nom du fichier .py
puis les paramètres
1
2
3
4
5
6
7
8
9
10
Points Clés
import sys
Type liste et opération sur les listes
Fonctions de variables ma_liste.append(...)
print(sys.argv)
# ["monprog.py", "poum", "tchak", "5"]
print(len(sys.argv))
# 4 (le nom du fichier + 3 paramètres)
Entrée utilisateur avec la fonction input
Paramètre de programme avec la liste sys.argv
texte = sys.argv[1] + "-" + sys.argv[2] + " "
nb = int(sys.argv[3]) # conversion vers un entier
print(nb * texte)
35 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
36 / 36 − Rémi Emonet − Programmation Impérative Introduction Python et Variables
Téléchargement