• Aucun résultat trouvé

Introduction `a l’algorithmique et `a la programmation

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction `a l’algorithmique et `a la programmation"

Copied!
176
0
0

Texte intégral

(1)

Introduction `a l’algorithmique et `a la programmation

SHNU, 2019 – 2020

Anthony Labarre

Anthony.Labarre@u-pem.fr

(2)

– Avant de commencer... –

I En cas de probl `eme, n’h ´esitez pas `aposer des questions;

我没听懂、可以说一遍吗?

−→“Je n’ai pas compris ; pouvez-vous r ´eexpliquer ?”

《老师说得太快了》

−→“Pouvez-vous parler / r ´eexpliquer plus lentement ?” 不懂X、可以一遍吗?

−→“Je n’ai pas compris X, pouvez-vous r ´eexpliquer ? Pouvez-vous donner un exemple ?”

很简单、都明白了》

−→ 太好了!现在你可以去帮你的同学了!

(3)

– Avant de commencer... –

I En cas de probl `eme, n’h ´esitez pas `aposer des questions;

我没听懂、可以说一遍吗?

−→“Je n’ai pas compris ; pouvez-vous r ´eexpliquer ?”

《老师说得太快了》

−→“Pouvez-vous parler / r ´eexpliquer plus lentement ?” 不懂X、可以一遍吗?

−→“Je n’ai pas compris X, pouvez-vous r ´eexpliquer ? Pouvez-vous donner un exemple ?”

很简单、都明白了》

−→ 太好了!现在你可以去帮你的同学了!

(4)

– Avant de commencer... –

I En cas de probl `eme, n’h ´esitez pas `aposer des questions;

我没听懂、可以说一遍吗?

−→“Je n’ai pas compris ; pouvez-vous r ´eexpliquer ?”

《老师说得太快了》

−→“Pouvez-vous parler / r ´eexpliquer plus lentement ?”

不懂X、可以一遍吗?

−→“Je n’ai pas compris X, pouvez-vous r ´eexpliquer ? Pouvez-vous donner un exemple ?”

很简单、都明白了》

−→ 太好了!现在你可以去帮你的同学了!

(5)

– Avant de commencer... –

I En cas de probl `eme, n’h ´esitez pas `aposer des questions;

我没听懂、可以说一遍吗?

−→“Je n’ai pas compris ; pouvez-vous r ´eexpliquer ?”

《老师说得太快了》

−→“Pouvez-vous parler / r ´eexpliquer plus lentement ?”

不懂X、可以一遍吗?

−→“Je n’ai pas compris X, pouvez-vous r ´eexpliquer ? Pouvez-vous donner un exemple ?”

很简单、都明白了》

−→ 太好了!现在你可以去帮你的同学了!

(6)

– Avant de commencer... –

I En cas de probl `eme, n’h ´esitez pas `aposer des questions;

我没听懂、可以说一遍吗?

−→“Je n’ai pas compris ; pouvez-vous r ´eexpliquer ?”

《老师说得太快了》

−→“Pouvez-vous parler / r ´eexpliquer plus lentement ?”

不懂X、可以一遍吗?

−→“Je n’ai pas compris X, pouvez-vous r ´eexpliquer ? Pouvez-vous donner un exemple ?”

很简单、都明白了》

−→ 太好了!现在你可以去帮你的同学了!

(7)

– Aspects pratiques –

Organisation :

I Quelques s ´eances de cours + exercices (papier) ;

I Quelques s ´eances sur les ordinateurs ;

I Et l’examen `a la fin ;

Ressources :

I http://igm.univ-mlv.fr/˜alabarre/teaching.php, section SHNU — ou 百度: Anthony Labarre

I PythonTutor :http://pythontutor.com/; permet de visualiser du code Python ;

(8)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(9)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(10)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(11)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(12)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(13)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(14)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(15)

– Correction des exercices –

I Pas de solutions toutes faites ;

I Pour les exercices sur papier :

I vous corrigez certains exercices au tableau ;

I on v ´erifie ensemble ces corrections ;

I Pour les exercices sur ordinateur :

I vous recevrez desdoctestspour v ´erifier vos r ´eponses ;

I on verra plus tard ce que c’est et comment les utiliser ;

Encore une fois : posez des questions pendant la s ´eance ou par e-mail ;

(16)

– Installer Python –

I On utilise dans ce cours Python 3 ; attention, Python 2 n’estpascompatible !

I Pour l’installer :

I Ubuntu / Debian :sudo apt-get install python3

I Windows : suivez le programme d’installationmais ajoutez python `a la variable PATH !

Sinon, vous ne pourrez pas taperpythondans le terminal ; http://www.python.org/

(17)

– Installer Python –

I On utilise dans ce cours Python 3 ; attention, Python 2 n’estpascompatible !

I Pour l’installer :

I Ubuntu / Debian :sudo apt-get install python3

I Windows : suivez le programme d’installationmais ajoutez python `a la variable PATH !

Sinon, vous ne pourrez pas taperpythondans le terminal ; http://www.python.org/

(18)

– Installer Python –

I On utilise dans ce cours Python 3 ; attention, Python 2 n’estpascompatible !

I Pour l’installer :

I Ubuntu / Debian :sudo apt-get install python3

I Windows : suivez le programme d’installationmais ajoutez python `a la variable PATH !

Sinon, vous ne pourrez pas taperpythondans le terminal ; http://www.python.org/

(19)

– Installer Python –

I On utilise dans ce cours Python 3 ; attention, Python 2 n’estpascompatible !

I Pour l’installer :

I Ubuntu / Debian :sudo apt-get install python3

I Windows : suivez le programme d’installationmais ajoutez python `a la variable PATH !

(20)

– Quelques environnements de d ´eveloppement –

Les ´editeurs suivants rendent le d ´eveloppement Python plus facile ; choisissez celui que vous pr ´ef ´erez :

Geany https://www.geany.org/

PyCharm https://www.jetbrains.com/pycharm/

Notepad++ https://notepad-plus-plus.org/

Kate http://kate-editor.org/

SublimeText https://www.sublimetext.com/

...

(21)

– Plan d’aujourd’hui –

Variables, types et op ´erations

Instructions et blocs

Instruction conditionnelle (if)

Structures it ´erables et bouclesfor

(22)

– Pourquoi un langage ? –

I L’ordinateur ne comprend que le langage binaire ;

I trop difficile pour les humains (en g ´en ´eral) ;

I pas compatible d’une machine `a l’autre !

CPU

. . . 010101101101 110101100010. . .

CPU

humain Est-ce que 210 et 1024 sont ´egaux ?

humain

2 ** 10 == 1024

True

I Il nous faut donc un langage commun pour se comprendre (Python, C, Java, ...) ;

(23)

– Pourquoi un langage ? –

I L’ordinateur ne comprend que le langage binaire ;

I trop difficile pour les humains (en g ´en ´eral) ;

I pas compatible d’une machine `a l’autre !

CPU

. . . 010101101101 110101100010. . .

CPU humain

Est-ce que 210 et 1024 sont ´egaux ?

humain 2 ** 10 == 1024

True

I Il nous faut donc un langage commun pour se comprendre (Python, C, Java, ...) ;

(24)

– Pourquoi un langage ? –

I L’ordinateur ne comprend que le langage binaire ;

I trop difficile pour les humains (en g ´en ´eral) ;

I pas compatible d’une machine `a l’autre !

CPU

. . . 010101101101 110101100010. . .

CPU

humain

Est-ce que 210 et 1024 sont ´egaux ?

humain

2 ** 10 == 1024

True

I Il nous faut donc un langage commun pour se comprendre (Python, C, Java, ...) ;

(25)

– Pourquoi un langage ? –

I L’ordinateur ne comprend que le langage binaire ;

I trop difficile pour les humains (en g ´en ´eral) ;

I pas compatible d’une machine `a l’autre !

CPU

. . . 010101101101 110101100010. . .

CPU

humain

Est-ce que 210 et 1024 sont ´egaux ?

humain 2 ** 10 == 1024

True

(26)

– Introduction sur un exemple –

Un exemple de programme enPython 3:

if __name__ == '__main__':

date = input(

"Bonjour! Quelle est votre date "

"de naissance (jj/mm/aaaa)? "

)

jour_naissance = int(date.split("/")[0]) mois_naissance = int(date.split("/")[1]) annee_naissance = int(date.split("/")[2]) age = 2019 - annee_naissance

if mois_naissance > 10:

age = age - 1

if mois_naissance == 10 and jour_naissance > 21:

age = age - 1

print("Vous avez", age, "ans")

C’est un programme un peu avanc ´e. . .mais essayons de comprendre ce qu’il fait.

(27)

– La coloration syntaxique –

if __name__ == '__main__':

date = input(

"Bonjour! Quelle est votre date "

"de naissance (jj/mm/aaaa)? "

)

jour_naissance = int(date.split("/")[0]) mois_naissance = int(date.split("/")[1]) annee_naissance = int(date.split("/")[2]) age = 2019 - annee_naissance

if mois_naissance > 10:

age = age - 1

if mois_naissance == 10 and jour_naissance > 21:

age = age - 1

print("Vous avez", age, "ans")

I Certains mots sont en couleurs : c’est lacoloration syntaxique;

I Elle varie selon l’ ´editeur utilis ´e ;

I Elle rend le programme plus lisible.

(28)

– La coloration syntaxique –

if __name__ == '__main__':

date = input(

"Bonjour! Quelle est votre date "

"de naissance (jj/mm/aaaa)? "

)

jour_naissance = int(date.split("/")[0]) mois_naissance = int(date.split("/")[1]) annee_naissance = int(date.split("/")[2]) age = 2019 - annee_naissance

if mois_naissance > 10:

age = age - 1

if mois_naissance == 10 and jour_naissance > 21:

age = age - 1

print("Vous avez", age, "ans")

I Certains mots sont en couleurs : c’est lacoloration syntaxique;

I Elle varie selon l’ ´editeur utilis ´e ;

I Elle rend le programme plus lisible.

(29)

– La coloration syntaxique –

if __name__ == '__main__':

date = input(

"Bonjour! Quelle est votre date "

"de naissance (jj/mm/aaaa)? "

)

jour_naissance = int(date.split("/")[0]) mois_naissance = int(date.split("/")[1]) annee_naissance = int(date.split("/")[2]) age = 2019 - annee_naissance

if mois_naissance > 10:

age = age - 1

if mois_naissance == 10 and jour_naissance > 21:

age = age - 1

print("Vous avez", age, "ans")

I Certains mots sont en couleurs : c’est lacoloration syntaxique;

(30)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?" ...

I Nos variables ne sont pas colori ´ees ;

(31)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?" ...

I Nos variables ne sont pas colori ´ees ;

(32)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?" ...

I Nos variables ne sont pas colori ´ees ;

(33)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?" ...

I Nos variables ne sont pas colori ´ees ;

(34)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?"

...

I Nos variables ne sont pas colori ´ees ;

(35)

– La coloration syntaxique –

I La couleur d’un mot indique sa cat ´egorie ; ici, on a entre autres :

I des fonctions int ´egr ´ees de Python envert: input= entr ´ee ,int= entier

I des mots-cl ´es de Python envert gras: if= si ,print= imprimer (afficher)

I des op ´erateurs enmauve gras: and= et

I des chaˆınes de caract `eres enrouge:

"Quelle est votre date de naissance?"

..

(36)

– L’indentation –

if__name__=='__main__':

date=input(

"Bonjour! Quelle est votre date "

"de naissance (jj/mm/aaaa)? "

)

jour_naissance=int(date.split("/")[0]) mois_naissance=int(date.split("/")[1]) annee_naissance=int(date.split("/")[2]) age= 2019 -annee_naissance

ifmois_naissance> 10:

age=age- 1

ifmois_naissance== 10andjour_naissance> 21:

age=age- 1

print("Vous avez", age,"ans")

ILes lignesne commencent pas toutes au m ˆeme endroit.

ICe n’est pas un d ´etail ! ILe positionnement (on dit l’indentation) des lignes est important pour leur signification.

Modifier l’indentation modifie le comportement du programme — et peut m ˆeme l’emp ˆecher de fonc- tionner.

(37)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code

1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(38)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code

1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(39)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code

1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(40)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code

1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(41)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code 1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(42)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code 1. qui fonctionne ;

2. qui est facile `a comprendre ;

3. qui est facile `a modifier ;

(43)

– La structure –

I Les programmes Python doivent ˆetrestructur ´es(cf.

modele.pysur la page du cours) ;

I On y reviendra ; pour l’instant, retenez qu’il faut commencer parif name == ’ main ’:

I Lescommentaires(# ...) expliquent le code ;

I Notre but : ´ecrire du code 1. qui fonctionne ;

2. qui est facile `a comprendre ; 3. qui est facile `a modifier ;

(44)

– La partie “__main__” –

N’utilisez jamais le mod `ele 0 (on expliquera pourquoi plus tard) : Mod `ele 0 (mauvais)

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 1 (mieux)

if __name__ == "__main__":

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 2 (encore mieux) def main():

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

if __name__ == "__main__": main()

(45)

– La partie “__main__” –

N’utilisez jamais le mod `ele 0 (on expliquera pourquoi plus tard) : Mod `ele 0 (mauvais)

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 1 (mieux)

if __name__ == "__main__":

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 2 (encore mieux) def main():

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

if __name__ == "__main__": main()

(46)

– La partie “__main__” –

N’utilisez jamais le mod `ele 0 (on expliquera pourquoi plus tard) : Mod `ele 0 (mauvais)

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 1 (mieux)

if __name__ == "__main__":

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

Mod `ele 2 (encore mieux) def main():

prenom = input("Quel est votre pr´enom? ") print("Bonjour, ", prenom, "!")

if __name__ == "__main__":

main()

(47)

– Ex ´ecuter du code Python –

I Deux options :

1. utiliser l’interpr ´eteur :

tapezpython3dans le terminal ;

2. ex ´ecuter un programme nomm ´efichier.py: tapezpython3 fichier.pydans le terminal ;

(48)

– Erreurs en Python –

I Python signale les erreurs quand on ex ´ecute du code ;

I Quand une erreur se produit :

I dans l’interpr ´eteur : on peut continuer `a ex ´ecuter du code ;

I dans un programme en cours : il s’arr ˆete et il faut le relancer ;

I Les messages sont tr `es explicites (TypeError,

IndexError, ...) ; il est important de les comprendre pour corriger son code ;

(49)

Python pas `a pas

Variables, types et op ´erations

(50)

– Types de valeurs –

I Lesvaleurs de baseposs `edent untype;

I Letyped ´etermine entre autres ce qui se passe quand on fait uneop ´erationsur des valeurs ;

Les principauxtypes(on en verra d’autres) sont :

Type En Python Exemples

entier(∈Z) int 12, -4, 123545, . . .

r ´eel(∈R) float 3.14159, -1.5, 12., 4.56e12, . . .

bool ´een bool True(vrai) ouFalse(faux)

ind ´efini, rien None None

chaˆıne de caract `eres str 'bonjour',"SHNU", . . .

Les majuscules/minuscules sont impor- tantes :

True6=true

(51)

– Types de valeurs –

I Lesvaleurs de baseposs `edent untype;

I Letyped ´etermine entre autres ce qui se passe quand on fait uneop ´erationsur des valeurs ;

Les principauxtypes(on en verra d’autres) sont :

Type En Python Exemples

entier(∈Z) int 12, -4, 123545, . . .

r ´eel(∈R) float 3.14159, -1.5, 12., 4.56e12, . . .

bool ´een bool True(vrai) ouFalse(faux)

ind ´efini, rien None None

chaˆıne de caract `eres str 'bonjour',"SHNU", . . .

Les majuscules/minuscules sont impor-

(52)

– Op ´erations sur les nombres –

I Les op ´erations math ´ematiques que vous connaissez existent en Python ;

I Le type du r ´esultat d ´epend du type des donn ´ees de d ´epart :

+,−, int float int int float float float float

I Attention : la division (/) donne toujours unfloat;

I On a aussi :

math python exemple

x mod y x % y 19 % 43 xy x ** y 3 ** 327 bx/yc x // y 19 // 44

(53)

– Op ´erations sur les nombres –

I Les op ´erations math ´ematiques que vous connaissez existent en Python ;

I Le type du r ´esultat d ´epend du type des donn ´ees de d ´epart :

+,−, int float int int float float float float

I Attention : la division (/) donne toujours unfloat;

I On a aussi :

math python exemple

x mod y x % y 19 % 43 xy x ** y 3 ** 327 bx/yc x // y 19 // 44

(54)

– Op ´erations sur les nombres –

I Les op ´erations math ´ematiques que vous connaissez existent en Python ;

I Le type du r ´esultat d ´epend du type des donn ´ees de d ´epart :

+,−, int float int int float float float float

I Attention : la division (/) donne toujours unfloat;

I On a aussi :

math python exemple

x mod y x % y 19 % 43 xy x ** y 3 ** 327 bx/yc x // y 19 // 44

(55)

– Op ´erations sur les nombres –

I Les op ´erations math ´ematiques que vous connaissez existent en Python ;

I Le type du r ´esultat d ´epend du type des donn ´ees de d ´epart :

+,−, int float int int float float float float

I Attention : la division (/) donne toujours unfloat;

I On a aussi :

math python exemple

x mod y x % y 19 % 43

(56)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens:

and(∧) False True False False False

True False True

or(∨) False True False False True True True True not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens :

math python

a=b? a == b ab? a <= b ab? a >= b

math python a6=b? a != b a<b? a < b a>b? a > b

(57)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens: and(∧) False True

False False False True False True

or(∨) False True False False True True True True not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens :

math python

a=b? a == b ab? a <= b ab? a >= b

math python a6=b? a != b a<b? a < b a>b? a > b

(58)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens: and(∧) False True

False False False True False True

or(∨) False True False False True True True True

not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens :

math python

a=b? a == b ab? a <= b ab? a >= b

math python a6=b? a != b a<b? a < b a>b? a > b

(59)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens: and(∧) False True

False False False True False True

or(∨) False True False False True True True True not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens :

math python

a=b? a == b ab? a <= b ab? a >= b

math python a6=b? a != b a<b? a < b a>b? a > b

(60)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens: and(∧) False True

False False False True False True

or(∨) False True False False True True True True not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens :

math python

a=b? a == b ab? a <= b ab? a >= b

math python a6=b? a != b a<b? a < b a>b? a > b

(61)

– Op ´erations sur les bool ´eens –

I On a lesop ´erations logiques sur les bool ´eens: and(∧) False True

False False False True False True

or(∨) False True False False True True True True not(¬)

False True True False

I Utilisation :a and b,a or b,not c, ...

I Lescomparaisonsproduisent des bool ´eens : math python

a=b? a == b

math python a6=b? a != b

(62)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

I Et aussi plein de fonctions math ´ematiques (cos,log, . . . ) ;

(63)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

I Et aussi plein de fonctions math ´ematiques (cos,log, . . . ) ;

(64)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

I Et aussi plein de fonctions math ´ematiques (cos,log, . . . ) ;

(65)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

I Et aussi plein de fonctions math ´ematiques (cos,log, . . . ) ;

(66)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

I Et aussi plein de fonctions math ´ematiques (cos,log, . . . ) ;

(67)

– Op ´erations sur les chaˆınes de caract `eres –

I Seuls+et*marchent sur les chaˆınes ;

I +r ´ealise laconcat ´enationde deux chaˆınes : 'SH' + 'NU''SHNU'

I *concat `enenexemplaires de la chaˆıne : 'SHNU' * 3'SHNUSHNUSHNU'

I Les comparaisons (<,<=, ...) fonctionnent et se basent sur l’ordre alphab ´etique ('a...' < 'b...' < 'c...' < ...) : 'SH' < 'NU'False

I Il existe beaucoup d’autresop ´erations sur les chaˆınes;

(68)

– Variables –

I Unevariableest unnomqui r ´ef ´erence une valeur en m ´emoire ;

I On peut s’en servir dans les calculs ;

I Elle a lem ˆeme typeque la valeur qu’elle r ´ef ´erence ;

– Affectation –

I L’affectationd’une variable lie unnom `a unevaleur;

I La syntaxe :nom= expression, o `uexpressionest unevaleur ou uncalculqui produit une valeur ;

(69)

– Variables –

I Unevariableest unnomqui r ´ef ´erence une valeur en m ´emoire ;

I On peut s’en servir dans les calculs ;

I Elle a lem ˆeme typeque la valeur qu’elle r ´ef ´erence ; – Affectation –

I L’affectationd’une variable lie unnom `a unevaleur;

I La syntaxe :nom= expression, o `uexpressionest unevaleur ou uncalculqui produit une valeur ;

(70)

– Variables –

I Unevariableest unnomqui r ´ef ´erence une valeur en m ´emoire ;

I On peut s’en servir dans les calculs ;

I Elle a lem ˆeme typeque la valeur qu’elle r ´ef ´erence ; – Affectation –

I L’affectationd’une variable lie unnom `a unevaleur;

I La syntaxe :nom= expression, o `uexpressionest unevaleur ou uncalculqui produit une valeur ;

Références

Documents relatifs

Bu alanlar, vücut, toplum ve birey bakış açılarından, iki liste halinde tanımlanmıştır: (1) Vücut İşlevleri ve Yapıları; ve (2) Etkinlikler ve Katılım 2

Bien sˆ ur les ´ ecritures des deux signataires devront apparaˆ ıtre de mani` ere significative dans la copie. Probl`

Pour chacune des questions, une seule des propositions est correcte.. L’espace est rapport´e ` a un

En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il le plus faible.. En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il relativement

En d’autres termes, pour tout nombre premier p, il existe ` a isomorphisme pr` es un et un seul groupe d’ordre p, qui est le groupe cyclique (donc ab´ elien) C

Dans un anneau principal, tout id´ eal premier non-nul est maximal (et donc, pour les id´ eaux non-nuls, les notions de premier et de maximal

Écrire une fonction syracuse(n) qui prend en entrée un entier n, et qui effectue l’algorithme de Syracuse répétitivement jusqu’à obtenir 1, affichant tous les nombres

6 Equations du premi` ere ordre.