Chap2 Base programmation Python_25
Chap2 Base programmation Python_25
programmation Python
Dr N. BAME
Les variables
• Les noms de variables doivent obéir à quelques règles simples :
• Un nom de variable est une séquence de lettres (a → z , A → Z) et de chiffres (0 → 9), qui doit
toujours commencer par une lettre.
• Seules les lettres ordinaires sont autorisées.
• Les lettres accentuées, les cédilles, les espaces, les caractères spéciaux tels que $, #, @, etc. sont interdits, à
l’exception du caractère _ (souligné).
• La fonction type()
• Permet de connaître le type d’une variable (ou d’une expression).
Les variables : types et les opérations
• Affectations multiples
• on peut assigner une valeur à plusieurs variables simultanément
• x=y=7
• On peut aussi effectuer des affectations parallèles à l’aide d’un seul opérateur :
• a, b = 4, 8.33
• Un deux-points indique le début d'un bloc de code en retrait, après quoi tout le code doit être mis en
retrait du même montant jusqu'à la fin du bloc.
• Les espaces blancs importants sont une réalité pour les programmeurs Python, et cela peut rendre le
code Python plus lisible que d’autres langages.
• Comme vous pouvez le voir maintenant, les instructions Python n'ont pas non plus besoin d'être
terminées par des points-virgules.
• Cependant, des points-virgules peuvent être utilisés pour séparer plusieurs instructions sur une seule ligne:
a = 5; b = 6; c = 7
• Mettre plusieurs instructions sur une seule ligne est généralement déconseillé en Python car cela rend souvent le
code moins lisible.
Sémantique du langage
• Tout est objet
• Une caractéristique importante du langage Python est la cohérence de son modèle objet.
• Chaque nombre, chaîne, structure de données, fonction, classe, module, etc. existe dans l'interpréteur Python
dans sa propre «boîte», appelée objet Python.
• Chaque objet a un type associé (par exemple, une chaîne ou une fonction) et des données internes.
• En pratique, cela rend le langage très flexible, car même les fonctions peuvent être traitées comme n'importe
quel autre objet.
• Commentaires
• Tout texte précédé du signe dièse # est ignoré par l'interpréteur Python. Ceci est souvent utilisé
pour ajouter des commentaires au code.
• Parfois, vous pouvez également vouloir exclure certains blocs de code sans les supprimer. Une solution simple
consiste à commenter le code:
• Les commentaires peuvent également apparaître après une ligne de code exécuté. Alors que
certains programmeurs préfèrent que les commentaires soient placés dans la ligne précédant une
ligne de code particulière, cela peut parfois être utile:
Sémantique du langage
Utilisation de fonction et de méthode
• Vous appelez des fonctions en utilisant des parenthèses et en passant zéro ou
plusieurs arguments, en affectant éventuellement la valeur renvoyée à une
variable:
result = f( x, y, z )
g()
• Presque tous les objets en Python ont des fonctions attachées, appelées
méthodes, qui ont accès au contenu interne de l'objet.
• Vous pouvez les appeler en utilisant la syntaxe suivante:
obj.some_method(x, y, z)
• Les fonctions peuvent prendre à la fois des arguments positionnels et des mots-
clés:
result = f(a, b, c, d=5, e='foo')
Fonctions de lecture et d’affichage
• print()
• Permet d’afficher n’importe quel nombre de valeurs fournies en arguments
• Par défaut, ces valeurs seront séparées les unes des autres par un espace, et le tout se terminera par un
saut à la ligne.
• Vous pouvez remplacer le séparateur par défaut (l’espace) par un autre caractère quelconque, grâce à
l’argument sep.
print("Bonjour", "à", "tous", sep ="*")
Bonjour*à*tous
print("Bonjour", "à", "tous", sep ="")
Bonjouràtous
zutzutzutzutzut
Fonctions de lecture et d’affichage
• Écriture formatée
• La méthode .format() permet une meilleure organisation de l’affichage des variables
x = 32
nom = "John"
print ("{} a {} ans". format(nom , x))
# John a 32 ans
• Dans la chaîne de caractères, les accolades vides {} précisent l’endroit où le contenu de la variable doit être inséré.
• Juste après la chaîne de caractères, l’instruction .format(nom, x) fournit la liste des variables à insérer, d’abord la
variable nom puis la variable x.
• La méthode .format() agit sur la chaîne de caractères à laquelle elle est attachée parle point.
• Dans le cas présent, vous voulez formater un float pour l’afficher avec deux puis trois décimales :
prop_GC = (4500 + 2575) / 14800
print("La proportion de GC est {:.2f}". format(prop_GC ))
Le proportion de GC est 0.48
print("La proportion de GC est {:.3f}". format(prop_GC ))
La proportion de GC est 0.478
• Chaînes de caractères
• Lecture, opération, concaténation et affichage: nom, prénom et age
• Réplication : Hello!Hello!Hello!
Structures de contrôle
Instructions composées – blocs d’instructions
• Sous Python, les instructions composées ont toujours la même structure :
• une ligne d’en-tête terminée par un double point,
• suivie d’une ou de plusieurs instructions indentées sous cette ligne d’en-tête.
• Exemple :
Ligne d’en-tête :
première instruction du bloc
... ...
... ...
dernière instruction du bloc
• S’il y a plusieurs instructions indentées sous la ligne d’en-tête, elles doivent l’être exactement
au même niveau.
a=7
if (a % 2 == 0):
print("a est pair")
print("parce que le reste de sa division par 2 est nul")
else:
print("a est impair")
Instructions imbriquées
• Il est parfaitement possible d’imbriquer les unes
dans les autres plusieurs instructions composées,
de manière à réaliser des structures de décision
complexes.
Exercice 3.
Ecrire un programme qui demande à l’utilisateur de donner deux entiers strictement positifs, puis calcule
la somme des nombres pairs compris entre ces deux entiers (inclus). Le résultat calculé est affiché après.
Exercice 4.
Ecrire un programme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants
avec leurs carrés. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de
18 à 27 avec leurs carrés.
L’utilisateur doit pouvoir recommencer plusieurs fois s’il le désire : le nombre de répétitions est limité à
10.
Exercice
1. Ecrire un script auquel on fournit un rang entier n, et qui calcule et affiche la valeur
au rang n des suites suivantes :
3. La population des Sims Alpha est initialement du nombre des deux tiers de celle des
Sims Beta. Elle augmente de 3% par an et celle des Sims Beta augmente
annuellement de façon constante de 3% de sa population initiale.
• Ecrire un algorithme qui demande la population initiale des Sims Alpha (qui doit être entre 10000 et
60000) et détermine et affiche dans combien d’années la population des Sims Alpha dépassera celle
des Sims Beta.
Les fonctions
• En Python, une fonction est un objet qui doit être déclaré.
• Syntaxe :
def nomDeLaFonction( [arg1, arg2,…,argN] ) :
bloc d’instructions
• Retour de résultat
• La fonction peut contenir une instruction de la forme : return expression.
• Exemple def carre(x) :
ca = x*x
return ca
a=128
b=carre(a)
print(a, " au carré= ",b)
Renvoi de résultats
• Un énorme avantage en Python est que les fonctions sont capables de renvoyer plusieurs
objets à la fois
def carre_cube(x):
return x**2, x**3
carre_cube(2)
(4, 8)
• En réalité Python ne renvoie qu'un seul objet, mais celui-ci peut contenir lui même
d'autres objets.
• Dans l’exemple Python renvoie un objet de type tuple,
• Une fonction pourrait tout autant renvoyer une liste :
def carre_cube2(x):
return [x**2 , x**3]
carre_cube2(3)
[9, 27]
• Renvoyer un tuple ou une liste de deux éléments (ou plus) est très pratique en conjonction avec
l'affectation multiple, par exemple :
z1, z2 = carre_cube2(3)
z1 9
z2 27
Exercice
Définitions et utilisation des fonctions pour :
1. Afficher un message de bienvenue personnalisé ;
2. Afficher la table de multiplication du nombre passé en parameter;
3. Calculer et retourner la puissance xn en fonction des paramètres x et n;
4. Calculer la somme et le produit de deux nombres passes en parameter.
• Définir une fonction qui prend en paramètre un entier positif et renvoie VRAI
lorsque cet entier est parfait ou FAUX dans le cas contraire.
Ecrire un programme qui affiche qu’un nombre positif saisi par l’utilisateur est parfait ou non
en utilisant le sous-programme défini en 1°).
L’utilisateur doit pouvoir recommencer plusieurs fois s’il le désire.
Rappel : un nombre parfait est un nombre qui est égal à la somme de ses diviseurs. Par
exemple, 6 est parfait car les diviseurs de 6 sont : 1, 2 et 3 et que 1+2+3=6.
Arguments positionnels et arguments par mot-clé
• Les arguments positionnels doivent toujours être placés avant les arguments par mot-clé
def fct( a, b, x=0, y=0, z=0 ):
return a, b, x, y, z
fct(1, 1) #(1, 1, 0, 0, 0)
• On peut toujours passer les arguments par mot-clé dans un ordre arbitraire à partir du
moment où on précise leur nom.
• Par contre, si les deux arguments positionnels a et b ne sont pas passés à la fonction, Python
renvoie une erreur.
• L'utilisation d'arguments par mot-clé en Python permet de modifier le comportement par
défaut de nombreuses fonctions.
• Par exemple, si on souhaite que la fonction print() n'affiche pas un retour à la ligne, on peut utiliser
l'argument end : print("Message ", end="")
Message
Exercice
• Définition et utilisation des fonctions pour :
• Afficher la table de multiplication du nombre passé en paramètre avec une valeur
par défaut de 2
• Afficher un message de bienvenue personnalisé avec le nom et sexe par
défaut Mr.
• Fonction Puissance par défaut n=1.
Les fonctions lambda
• Les fonctions lambda sont des fonctions qui ne sont pas définies avec un nom, mais qui peuvent être
utilisées dans des expressions ou des fonctions.
• Elles sont souvent utilisées dans des situations où une fonction simple est nécessaire pour une tâche
spécifique,
• comme trier une liste ou filtrer des éléments.
• En Python, le mot-clé lambda est utilisé pour définir des fonctions anonymes, également appelées
fonctions lambda.
• Syntaxe
lambda arguments : expression
• Les arguments sont les paramètres de la fonction et l'expression est le corps de la fonction.
• La fonction anonyme renvoie la valeur de l'expression évaluée comme n'importe quelle fonction
Python classique.
square = lambda x : x ** 2
square(2)
Pourquoi utiliser des fonctions lambda ?
• Simplification du code
• Les fonctions lambda sont utiles pour écrire du code plus concis et lisible.
• Flexibilité :
• Les fonctions lambda peuvent être utilisées pour des tâches ponctuelles qui ne nécessitent pas
la création d'une fonction complète
• Programmation fonctionnelle :
• Les fonctions anonymes sont couramment utilisées en programmation fonctionnelle,
• où les fonctions sont traitées comme des valeurs et peuvent être utilisées pour effectuer des opérations
telles que le filtrage, le tri ou la transformation des données.
• Performance :
• Les fonctions lambda peuvent parfois offrir des performances supérieures à celles des fonctions définies
avec un nom, car elles sont compilées de manière dynamique au moment de leur utilisation, plutôt que
d'être définies et stockées en mémoire.
Exercice