[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
7 vues44 pages

Introduction au Cours de Python

Transféré par

diadiou17
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues44 pages

Introduction au Cours de Python

Transféré par

diadiou17
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours de Python en

Licence
• Séquence 1 : Pourquoi programmer ? Notions d’architecture matérielle
• Séquence 2 : Constantes, variables, types, expressions, entrées-sorties
• Séquence 3 : Structures conditionnelles, gestion des exceptions
• Séquence 4 : Fonctions prédéfinies et définies par l’utilisateur
• Séquence 5 : Structures itératives, les types liste et chaîne
Chapitre 1

Pourquoi programmer ?
Les ordinateurs « veulent
» nous être utiles... What
Next ?

• Les ordinateurs sont construits dans un seul


objectif : faire des choses pour nous…
• Mais nous avons besoin de « parler leur
langue » pour qu'ils puissent faire ce que nous
voulons…
• Mais notre tâche a été facilitée : des
What What What
spécialistes ont intégré beaucoup de Next ? Next ? Next ?
programmes différents dans l'ordinateur
• et les utilisateurs n’ont qu’à choisir les What What What
programmes qu’ils veulent exécuter Next ? Next ? Next ?
Les programmeurs
anticipent les besoins

• Exemple : les applications pour


smartphone est un marché :
• De 2008 à fin 2012, il y a eu 40 milliards
d'applications téléchargées sur la
boutique applicative App Store ! Choisi Choisi Achète
• Des programmeurs quittent leur poste Moi ! Moi ! Moi !
pour devenir développeurs iPhone à plein
temps Choisi Choisi Choisi
Qu’est-ce qu’un programmeur ? Moi ! Moi ! Moi !
Utilisateurs vs. Programmeurs
• Les utilisateurs voient les ordinateurs comme un ensemble d’outils : traitement
de texte, tableur, agenda, logiciels de communication, etc.
• Les programmeurs quant à eux :
• savent comment fonctionnent les ordinateurs
• apprennent les méthodes et les langages informatiques
• ont des outils qui leur permettent de construire de nouveaux outils
• certains sont destinés aux utilisateurs, d’autres aux programmeurs
• Pourquoi programmer ?
• pour nos propres besoins = programmeur & utilisateur à la fois
• pour produire un logiciel utilisable par d’autres = programmeur de métier
Qu’est-ce que du code ? Un
logiciel ? Un programme?
• C’est une séquence d’instructions mémorisées dans l’ordinateur

• C’est une expression de notre intelligence que nous donnons aux autres :

• Nous comprenons quelque chose  nous le traduisons en langage


informatique  nous en faisons profiter d’autres personnes pour leur
faire gagner du temps et de l’énergie

• Si nous produisons une bonne « user experience » un programme peut aussi


être considéré comme un objet créatif, voire artistique
Main gauche vers l’extérieur et en haut Un programme
Main droite vers l’extérieur et en haut
Retournez la main gauche
Retournez la main droite
pour humains...
Main gauche sur l'épaule droite What
Main droite sur l'épaule gauche Next ?
Main gauche derrière la tête
Main droite derrière la tête
Main gauche sur la manche droite
Main droite sur la manche gauche
Main gauche sur fesse gauche
Main droite sur fesse droite
Se déhancher
Se déhancher
Sauter
[Link]
Un programme pour ordinateurs
filename = input('Nom du fichier: ') Exemple d’exécution :
with open(filename, 'r') as file:
text = [Link]() python [Link]
words = [Link]()
Nom du fichier: [Link]
counts = dict() for la 5
word in words:
counts[word] = [Link](word,0) + 1 Ce programme peut traiter
d’autres programmes,
bigword,bigcount = None,None y compris lui-même :
for word,count in [Link]():
if bigcount == None or count > bigcount: python [Link]
bigword,bigcount = word,count
Nom du fichier: [Link]
print(bigword, bigcount) =9
Chapitre 1 (suite)

Architecture matérielle
« L’informatique n’est pas plus la science des ordinateurs
que l’astronomie n’est celle des télescopes »

Edsger Dijkstra (1930-2002)


Qu’est-ce qu’un ordinateur ?
• Les ordinateurs peuvent prendre de multiples apparences…
• Mais leur architecture interne et leur fonctionnement reste les mêmes
• Ces machines sont conçues selon l’architecture dite de Von Neumann
Architecture de Von Neumann (1946)
• Un ordinateur est un système de traitement de l’information qui peut :
• Recevoir des informations et les encoder (périphériques d’entrée)
• Mémoriser temporairement des informations (mémoire vive)
• Sauvegarder et retrouver des informations (supports de stockage)
• Effectuer des traitements sur ces informations (microprocesseur)
• Produire des informations décodées (périphériques de sortie)
• Communiquer avec d’autres systèmes (périphériques d’entée/sortie)
Architecture de Von Neumann (1946)
• Microprocesseur : exécute le programme pas à pas mais très rapidement
• Périphériques d’entrée : clavier, souris, trackpad, microphone, etc.
• Périphériques de sortie : écran, imprimante, haut-parleur, etc.
• Mémoire vive : mémoire très rapide mais volatile (mémoire RAM, DRAM)
• Mémoire de masse : mémoire lente mais permanente (disque, clé USB, etc.)
Ou est le programme ?
• Le programme est chargé dans la mémoire RAM avec les données
• Le microprocesseur consulte une instruction du programme et l’exécute
• Cette opération est effectuée plusieurs millions de fois par seconde !
Chapitre 1 (suite)

Le langage Python
Python est un langage de
programmation
Initialement développé par Guido van Rossum
Outils de haut niveau + syntaxe relativement simple
Typage dynamique fort
• La gestion de la mémoire est automatisée
Types de données structurés :
• Tuples, ensembles, listes, dictionnaires
Système de gestion des exceptions
Python 2 ou Python 3 ?
• Les langages informatiques évoluent (souvent dans le bon sens) :

• Parfois il y a une « compatibilité ascendante »


• Parfois il y a une « rupture de compatibilité »

•Les programmes écrits en Python 2 ne sont pas complètement


compatibles avec les interpréteurs Python 3 (et inversement)…

•Dans ce cours, nous avons opté pour Python 3


Eléments de Python
• Vocabulaire / Mots : Variables et mots réservés
• Structure de phrase : Modèles de syntaxe valide
• Structure de l’histoire : Programmer dans un but particulier

Tout usage illégal d’un mot réservé ou toute formulation qui ne


respecte pas la syntaxe de Python provoque une SyntaxError :
Mots réservés (vocabulaire)
•Vous ne pouvez pas utiliser ces mots réservés du langage en tant
que noms de variables / de fonctions (identificateurs) :

n 3 .3
Pytho and del from None True as if elif
nonlocal try assert else not while
break except import or with class
False in pass yield continue finally
raise def for lambda return is global
Chapitre 2

Constantes, Variables,
Types, Expressions,
Entrées-sorties
Constantes littérales
Les valeurs fixes telles que les nombres, les lettres (caractères) et les
chaînes de caractères sont appelées constantes littérales parce que leur
valeur (donnée par le texte) ne peut pas changer.

Les chaînes de caractères utilisent des apostrophes simples ' ou doubles ".
Les valeurs numériques sont écrites naturellement.
>>> print(123)
123
>>> print(98.6)
98.6
>>> print('Hello world')
Hello world
Variables
• Une variable est un « emplacement nommé » dans la mémoire où un
programmeur peut stocker des données (une à la fois), pour accéder
aux données on utilise le nom (identificateur) de la variable

• Il appartient aux programmeurs de choisir les noms des variables (tout


en respectant certaines regles)
Règles de nommage des variables Python
• Commencent obligatoirement par une lettre ou un underscore _

• Contiennent des lettres, des chiffres et des underscores

• Sont sensibles à la case (majuscule / minuscule)

• # - , : ; \ / } { [ ] @ $ % ^ & * + = ? ! ~ ‘ “ . espace etc…


• Bon : spam eggs spam23 spam_23 _speed motd_pass

• Mauvais : 23spam #sign var.12

• Différents : spam Spam SPAM


Choisir objectivement le nom de vos variables !

x1q3z9ocd = 35

x1q3z9afd = 10000

x1q3p9afd = 350000
Choisir objectivement le nom de vos variables !

h = 35

t = 10000

mp = 350000
Choisir objectivement le nom de vos variables !
nombre_heures = 35

taux_horaire = 10000

montant_paye = 350000

Des variables qui « parlent »

On nomme les variables de telle sorte que nous puissions nous


rappeler de ce qu’elles stockent (identificateurs )
Affectation & Déclaration de variables
• Nous attribuons une valeur à une variable avec l’instruction d’affectation =
• Une affectation est composée d’une expression (à droite) et d’une variable

(à gauche) qui va stocker le résultat de l’évaluation

• Pour déclarer une variable en python on donne l’identificateur ou le nom de la variable et on

l’affecte une valeur. indentificateur_variable = valeur (sans precision du type )

valeur ou expression
solde = 500 à droit
Variable motd_Pass = ‘’123@etudiant’’
à gauche X = 3.9 * x * ( 1 - x )
Remarque
Le « contenu » (ou la valeur) d’une variable change à chaque affectation.

x = 12.2 x 12.2 100


y = 14
x = 100 y 14
Au début, la valeur de
la variable x est 0.6 x 0.6

0.6
0.6
x = 3.9 * x * ( 1- x ) expression est à droite

0.4
résultat est placé dans x

0.93
expression est évaluée
Après l’affectation, la valeur
de la variable x est 0.93 x 0.6 0.93
n ' exi s te
eu r 0. 6
la val
plus

x = 3.9 * x * ( 1- x )
Le résultat est placé dans x
L’expression est à droite

0.93
L’expression est évaluée
Expressions Numériques
Operateur Opération
• En raison du manque de symboles
mathématiques sur les claviers + Addition

d’ordinateur nous utilisons le « dialecte - Soustraction


de l’ordinateur » pour exprimer les * Multiplication
opérations mathématiques classiques
/ Division

• L’astérisque est la multiplication // Division entière

• L’exposant (élévation à la puissance) est ** Puissance

représenté par la double astérisque % Modulo


Expressions Numériques
Operateur Opération
>>> a = 2 >>> e = c // 1000
+ Addition
>>> b = a + 2 >>> print(e)
>>> print(b) 5 - Soustraction
4 >>> f = c % 1000
Multiplication
>>> c = 440 * 12 >>> print(f) *
>>> print(c) 280 / Division
5280
// Division entière
>>> d = c / 1000
>>> print(d) 5280 1000
** Puissance
5.28
Modulo
280 5 Quotient % Modulo
(reste) entier
Evaluation des expressions
• Quand nous utilisons plusieurs opérateurs ensemble, il faut
savoir dans quel ordre les opérateurs sont appliqués…

• Cet ordre est défini par des règles de priorité des opérateurs

• Dans quel ordre les opérateurs suivants sont-ils appliqués ?

x = 1 + 2 ** 3 // 4 * 5
Règles de priorité
Priorité la plus haute à la plus basse :

Les parenthèses sont toujours respectées

L’exposant (élévation à la puissance) Parenthèses


Puissances
Multiplication, division et modulo (reste) Multiplications &
div Additions &
Addition et soustraction sous De gauche à
droite
De gauche à droite
Règles de priorité
1 + 2 ** 3 // 4 * 5
>>> x = 1 + 2 ** 3 // 4 * 5
>>> print(x)
11 1 + 8 // 4 * 5
>>>
1+2*5
Parenthèses Puissances
Multiplications & div
Additions & sous De 1 + 10
gauche à droite

11
Parenthèses

Règles de priorité Puissances


Multiplications & div
Additions & sous De
gauche à droite

• Souvenez-vous des règles (du haut vers le bas)

• Quand vous écrivez du code => utilisez les parenthèses

• Quand vous écrivez du code => gardez les expressions


mathématiques assez simple pour être comprises

• Décomposer de longues séries d’opérations mathématiques


afin de les rendre plus lisibles
Qu’est-ce qu’un type ?
>>> v1 = 1 + 4
• En Python, les constantes littérales >>> print(v1)
et les variables sont typées 5
>>> v2 = 'hello ' + 'there'
• Python fait la différence entre un >>> print(v2)
hello there
entier et une chaîne de caractères >>> v3 = 'abc' * 5
>>> print(v3)
• C’est grâce à cette différence que… abcabcabcabcabc

+ signifie « addition » pour les nombres et « concaténation » pour les chaînes


* signifie « multiplication » pour les nombres et « concaténation multiple » pour les chaînes
Qu’est-ce qu’un type ?
>>> v1 = 'hello'+ 'there'
• Certaines opérations sont >>> v2 = >>>v1
v1 += 1'hello ' + 'there'
interdites : >>> v2 = v1 + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
• Par exemple, il n’est pas possible TypeError: cannot concatenate 'str' and
'int' objects
d’ajouter un nombre à une chaîne >>> type(v1)
<class 'str'> string (chaine)
• Nous pouvons demander à Python >>> type('hello')
<class 'str'>
le type de quelque chose en >>> type(1) integer (entier)
utilisant la fonction type() <class 'int'>
>>> type(1.0) virgule flottante
<class 'float'>
>>>
Conversions de type
• Quand nous utilisons des entiers et des >>> print(2 * 2.5)
5.0
nombres à virgule flottante dans une >>> n = 42
expression, les entiers sont implicitement >>> type(n)
<class 'int'>
convertis en float
>>> f = float(n)
>>> print(f)
Le type float est « contaminant » 42.0
>>> type(f)
• On peut également forcer une conversion <class 'float'>
>>> i = int(f)
de type avec les fonctions int() et float()
>>> print(i)
42
>>> type(i)
<class 'int'>
Type d’une division
• Exercices :
>>> print(4 / 2) Type du Type de Type du Type du
2.0 dividende la division diviseur quotient
>>> print(4 // 2)
int int
2 int float
>>> print(4.5 / 2) float / int float
2.25 float float
>>> print(4.5 // 2)
int // int int
2.0
>>> print(int(4.5) / 2) int float
2.0 float // int float
float float
>>> print(int(4.5) // 2)
2 Le type float est « contaminant »
Conversion des >>> sval = '123'
>>> type(sval)

chaînes
<class 'str'>
>>> print(sval + 1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
• On peut utiliser int() ou float() TypeError: Can't convert 'int' object to
str implicitly
pour effectuer la conversion
d’une chaîne vers un entier ou >>> ival = int(sval)
>>> type(ival)
vers un float : <class 'int'>
>>> print(ival + 1)
124
• On obtient une erreur si la
>>> sval= 'hello bob'
chaîne contient autre-choses >>> ival = int(sval)
que des chiffres : Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int()
with base 10: 'hello bob'
Instructions d’E/S
name = input('Qui êtes-vous ?')
• La fonction input() bloque le print('Bienvenue', name)
déroulement du programme et
attend une saisie au clavier. Elle
retourne une chaîne de caractères

• La fonction print() permet d’afficher Qui êtes-vous ?


des données (constantes, variables, Ada
expressions) séparées par des
Bienvenue Ada
virgules (une virgule = un espace)
Conversion des entrées
• Si nous voulons lire un an_cour = 2015
nombre de l’utilisateur, an_nais = input('Année de naissance :')
age = an_cour - int(an_nais)
nous devons le convertir print('Vous avez', age, 'ans')
de chaîne à nombre avec
la fonction int()

Plus tard nous verrons Année de naissance : 1968


comment traiter les Vous avez 47 ans
« mauvaises » entrées…
Les commentaires en Python
• Tout ce qui suit # est ignoré par Python (enfin, presque…)

• A quoi servent les commentaires ?

- A expliquer ce qui se passe dans une portion de code

- A documenter qui a écrit le code ou d’autres informations

- A désactiver une ligne de code (peut-être temporairement)


# Get the name of the file and open it
filename = input('Nom du fichier: ')
with open(filename, 'r') as file:
text = [Link]()
words = [Link]()

# Count word frequency


counts = dict()
for word in words:
counts[word] = [Link](word,0) + 1
# Find the most common word
bigword,bigcount = None,None
for word,count in [Link]():
if bigcount == None or count > bigcount:
bigword,bigcount = word,count

# Print the result


print(bigword, bigcount)

Vous aimerez peut-être aussi