Démo opensesame
Cours - TD - TPs intégrés
Exprimer un traitement dans un langage
Souvent: un calcul
En pratique: on a en plus des interactions avec l’environnement
Syntaxe: comment on (d)écrit les traitements
Sémantique: signification de ce qui est écrit
<html>
<head>
<title>Bonjour</title>
</head>
<body>
<h1>Une belle page</h1>
<p>Avec un paragraphe</p>
</body>
</html>
{
"enseignant": {
"nom": "Coquery",
"prenom": "Emmanuel"
},
"cours": {
"titre": "Introduction à la programmation",
"code": "STR1034M"
}
}
Nom,Prenom,Num,Note1,Note2
Spears,Alice,123456789,12.0,9.0
Booker,Bob,234567890,5.0,16.5
Barr,Sigourney,345678901,12.0,18.0
C:\Users\ecoquery>dir
Le volume dans le lecteur C n’a pas de nom.
Le numéro de série du volume est 2039-E686
Répertoire de C:\Users\ecoquery
10/11/2022 08:27 <DIR> .conda
10/11/2022 08:24 25 .condarc
10/11/2022 08:23 <DIR> .continuum
...
1 fichier(s) 25 octets
15 Rép(s) 240 001 818 624 octets libres
C:\Users\ecoquery>cd Music
C:\Users\ecoquery\Music>
☸ docker-desktop in ~
❯ ls
Applications Parallels
Applications (Parallels) Pictures
Desktop Public
...
☸ docker-desktop in ~
❯ cd Music
☸ docker-desktop in ~/Music
❯
SELECT nomEns, prenomEns
FROM cours
WHERE formation = 'M1-Sante'
ORDER BY nomEns
import csv
def valeurOk(v):
return v >= 0.0 and v <= 1.0
with open('monfichier.csv') as f:
for row in csv.reader(f):
if not valeurOk(float(row[2])):
print("Valeur erronnée:", row[2])
func valeurOk(v float64) bool {
return 0.0 <= v && v <= 1.0
}
func main() {
f, err := os.Open("monfichier.csv")
if err != nil {
fmt.Errorf("erreur de lecture")
}
r := csv.NewReader(f)
for {
record, err := r.Read()
if err == io.EOF {
break
}
val, _ := strconv.ParseFloat(record[2], 64)
if !valeurOk(val) {
fmt.Printf("Valeur erronée: %f", val)
}
}
}
Langage de programmation
On travaillera sur
int
(nombres sans virgule, “entiers”)1
, 2358
, etcfloat
(nombres à virgule ≠ réels)0.2
, 56.32
, 12.3E10
, etcstr
(texte, chaînes de caractères, string)"Bonjour"
, "Emmanuel"
, etcbool
(booléens, i.e. vrai ou faux)True
, False
$int\times int\rightarrow int$
+
, -
, *
,//
(division entière)**
(puissance)$\Rightarrow$ faire 2/3 calculs d’int
dans l’interpéteur Python
$float\times float\rightarrow float$
+
, -
, *
, /
, **
$\Rightarrow$ faire 2/3 calculs de float
dans l’interpéteur Python
$str\times str\rightarrow str$
+
.upper()
, .lower()
$\Rightarrow$ essayer de prédire l’effet de ces opérateurs sur des str
, puis vérifier dans l’interpréteur
$bool\times bool\rightarrow bool$
x | y | x and y |
x or y |
not x |
---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
Prédire puis vérifier le résultats des expressions suivantes:
En utilisant l’interpréteur, deviner le type résultat des opérateur suivants en fonction du type de leurs arguments
+
et *
avec $int\times float$/
avec $int\times int$+
avec $int\times str$*
avec $int\times str$Opérateurs de comparaison
==
, <
, >
, <=
, >=
<
entre booléens, essayer de le recoder avec les autres opérateursConvertir vers un type:
int(...)
, float(...)
, str(...)
, bool(...)
Typer chaque sous-expression, évaluer à la main, puis vérifier le résultat de
int(3*"3") // 111 == 3
math
import math
math.sin(...)
, math.floor(...)
, math.pi
Instruction = action à réaliser
Modifications de l’environnement
Brique de base de la programmation
Range une valeur dans une variable
Syntaxe
ma_variable = une expression
Exemple
sous_total = 5 + 3 * 12
On utilise simplement le nom de la variable dans une expression
Exemple
total = sous_total + 7
print(...)
Exemple
print("Le carré de 3 est " + str(3**2))
.py
#
exemple
# un commentaire seul sur une ligne
print("Salut") # cette instruction affiche Salut
import math
a = 1
b = -12
c = 35
delta = b ** 2 - 4 * a * c
# il faudrait tester delta ...
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
poly = str(a)+" x^2 + "+str(b)+" x + "+str(c)
print("Les solutions de "+poly+" sont "+str(x1)+" et "+str(x2))
une variable est créée à sa première affectation
lire une variable inexistante provoque une erreur:
print(toto+2) # si toto n'a jamais été affecté
changer la valeur d’une variable: refaire une affectation dessus
script boulangerie.py
prix_bombon = 0.10
prix_croissant = 1.0
prix_pain = 1.2
total = prix_bombon * 8
total = total + prix_croissant * 5
total = total + prix_pain * 2
print("Je dois "+str(total)+" euros")