À la fin de cette séquence vous serez capable de :
Dans un programme informatique en langage Python, tout est un objet.
Un objet est un morceau de code contenant des données (une chaîne binaire) et un ensemble de comportements propres permettant de manipuler ces données. Ces comportements sont appelés méthodes.
Tout objet a un type (une nature). Le type d’un objet est le comportement par défaut défini pour cet objet. Autrement dit, le type permet de déterminer les méthodes associées à un objet.
Un objet a besoin d’être identifié pour être manipulé.
Une variable peut être considérée comme un nom attaché à un objet particulier. Elle permet d’identifier un objet donné. Il s'agit d'une référence désignant une adresse mémoire, c'est-à-dire une zone précise dans la mémoire de l’ordinateur. Cette opération d’identification est appelée affectation ou assignation ou référencement (identification).
Exemple :
moyenne = 13.5
On dit que l'on affecte (ou assigne) à la variable dont le nom est moyenne l'objet (la valeur) 13,5. On dit aussi que la variable moyenne référence l'objet 13,5 comme un nom permet d'identifier une personne.
Il est conseillé par ailleurs de choisir des noms de variable assez courts, mais aussi explicites que possible, de manière à exprimer clairement ce que la variable est censée identifiée.
Par exemple, les noms de variable tels que moyenne, moy conviennent mieux que m ou x pour exprimer une moyenne.
Autre chose importante : Les noms de variables sont sensibles à la casse (les caractères majuscules et minuscules sont distingués).
Exemple :
Moyenne, moyenne, MOYENNE sont trois variables différentes !
De plus, éviter d’utiliser un nom réservé par Python tel print, return, max, assert…
Enfin, rester cohérent dans la façon de nommer ses variables.
Remarque :
Bien qu'il soit légal d'utiliser des lettres majuscules, par convention, on n'utilise que des minuscules pour les noms de variables et des majuscules pour les constantes.
Même si cela est autorisé, éviter l'utilisation de lettres accentuées dans les noms de variables.
Pour finir, Python est un langage dit à typage dynamique.
En d'autres termes, le type n’est pas lié à la variable mais à l’objet qui est référencé par cette variable. Dans ce sens, en Python, les variables n'ont pas besoin d'être déclarées ou définies à l'avance, comme c'est le cas dans de nombreux autres langages de programmation. Le type d'une variable peut changer au cours de sa durée de vie.
x = 3
la variable x est de type int car x identifie l’entier 3 ;
x = 7.2
x est du type float car x identifie plutôt un réel ;
x = 'élève'
x est du type str car on lui affecte un objet chaîne de caractère.
En Python, il existe quatre types numériques :
x = 2
y = 3
#L'addition et la soustraction
print(x + y)
print(10 - 3)
#La multiplication
print(x * y)
#La division
print(7 / 3)
#La division entière
print(7 // 3)
#Le reste de la division entière
print(7 % 3)
#La puissance (exponentiation)
print(3 ** 2)
#valeur absolue
abs(-5.7)
543.15e20
Certaines fonctions (la racine carrée, sinus...) ne sont pas initialement intégrées dans le langage Python. Il est nécessaire de les rendre disponibles au préalable avant de pouvoir les utiliser.
#Importer le module mathématique
import math
print(math.pi)
#Arrondir avec deux chiffres après la virgule (arrondir au centième)
round(math.pi, 3)
print(math.sqrt(2))
#Autre façon d'importer la bibliothèque mathématique
from math import*
print(pi)
Notation abrégée :
a = 2
a += 1 # a = a + 1
print(a)
b = 5
b -= 2 # b = b - 2
print(b)
a *= 4 # a = a * 4
print(a)
a /= 3 # a = a / 2
a //= 5 # a = a // 5
print(a)
a %= 2 # a = a % 2
a **= 2 # a = a**2
Elle permet de connaître la nature d'un objet
type(5)
type(5.)
type(True)
type("a")
Une chaîne de caractères est un objet encadré par des guillemets ou des apostrophes.
"d"
'pizza'
"connais-toi toi-même."
"123"
Les chaînes de caractères, une fois créées, sont immuables c’est-à-dire non modifiables. Autrement dit, en lecture seule. Toute transformation donnera un nouvel objet chaîne de caractères.
Exemple :
La chaîne "papa" est différente de la chaîne "Papa" car le caractère p a été transformé en majuscule. Donc "papa" et "Papa" sont duex objets distincts.
a = 'papa'
b = 'Papa'
# vérification
a == b # a est-il équivalent à b ?
#Vérification
a is b # a est-il identique à b ?
id(a)
id(b)
print()
: afficher la valeur d’une variableprint()
#print() ajoute une ligne à la fin
print("Que nul n’entre ici s’il n’est géomètre.")
print('orange', 'banane', 'pomme')
print('orange', 'banane', 'pomme', sep=', ')
print('orange', 'banane', 'pomme', sep=' | ')
print('orange', 'banane', 'pomme', sep='\n') # avec saut à la ligne
print('orange')
print('banane')
print('pomme')
print('orange', 'banane', 'pomme', sep=' ')
Le séparateur par défaut est un espace.
print('orange', end=' ') # On ajoute un espace à la fin
print('banane')
print('orange', 'banane', 'pomme', end='.') # On ajoute un point à la fin
print('*', 'orange', end='\n')
print('*', 'banane', end='\n')
print('*', 'pomme')
print('*', 'orange', end='\n')
print('\t*', 'banane', end='\n') # avec une tabulation
print('\t\t*', 'pomme')
print("Nom", "Âge", "Ville", sep=" | ", end="\n" + "-"*20 + "\n")
print("Alice", 30, "Paris", sep=" | ")
print("Bob", 25, "Los Angeles", sep=" | ")
ma_chaine = 'abracadabra'
Une chaîne de caractères est un objet séquence.
Un objet séquence est un ensemble fini et ordonné d’éléments numérotés de 0 à n-1 si la chaîne comporte n caractères.
Ainsi, une chaîne de caractères peut être parcourue de manière séquentielle c'est-à-dire caractère par caractère. On dit qu’une chaîne de caractères est un objet itérable.
Exemple :
ma_chaine = 'abracadabra'
Compléter le tableau ci-dessous :
Instruction à saisir | Résultat affiché |
---|---|
print(ma_chaine[0]) |
|
print(ma_chaine[5] ) |
|
\(c\) | |
\(d\) | |
print(ma_chaine[-1]) |
|
print(ma_chaine[-3]) |
Déterminer la longueur d’une chaine : la fonction len()
len(ma_chaine)
Application :
Combien de caractères contient l'objet référencé par la variable ci-après ?
une_chaine = "Je pense donc je suis"
Que renvoie l'instruction suivante : une_chaine[len(une_chaine) - 1] ?
Remarque :
Si la chaîne contient n caractères, l'indice du dernier caractère est n-1 et non n.
Avec l'indexage négatif, le dernier caractère est d'indice -1.
Opérations de slicing ou découpage en tranches (création de sous-chaînes) Pour aller plu loin !
une_chaine = "Je pense donc je suis"
print(une_chaine[0:8])
print(une_chaine[6:])
print(une_chaine[:5])
print(une_chaine[0:11:2])
print(une_chaine[::3])
print(une_chaine[-10:-7])
print(une_chaine[::-1])
Concaténation de chaînes
ma_chaine = 'abracadabra'
ma_deuxieme_chaine = 'ntesque'
resultat = ma_chaine + ma_deuxieme_chaine
print(resultat)
Répétition d'une chaîne
mon_str = 'hi !'
print(5 * mon_str)
print('-------+++-------'*4)
Tests d'appartenance ou de non appartenance à une chaîne
une_chaine = "Le méchant est un ignorant"
"méchant" in une_chaine
"rant" in une_chaine
"ma" in une_chaine
Méthodes associées aux chaînes de caractères
lower() et upper() : renvoient respectivement une chaîne en minuscule et une chaîne en majuscule.
une_chaine.upper()
count() : renvoie le nombre d'occurrence d'un caractère dans une chaîne.
une_chaine.count('e')
La variable une_chaine contient 2 fois la lettre e.
startswith() : teste si une chaîne commence par une sous-chaîne donnée :
une_chaine.startswith('L')
une_chaine.startswith('l')
une_chaine.startswith('méchant')
isalpha() : renvoie True
si tous les caractères de la chaînes sont alphabétiques ; False
sinon.
isalnum() : renvoie True
si tous les caractères de la chaînes sont alphanumériques ; False
sinon.
La fonction dir() permet d'afficher toutes les méthodes qui agissent sur un objet.
dir(une_chaine)
Et la fonction help() permet d'afficher de l'aide sur une méthode donnée.
Syntaxe : help(type.méthode)
help(str.startswith)
Application :
Que renvoie la méthode index() sur une chaîne de caractère ?
Appliquez-la avec le caractère i.
Technique de formatage : Les Instructions format et f-strings
Ces instructions qui sont équivalentes permettent d’insérer dans une chaîne des contenus variables.
nom = 'Eyoum'
prenom = 'Francine'
ecole = 'Lycée Saint Pierre'
print("Je m'appelle {} {} et fréquente le {}".format(prenom, nom, ecole))
#f-string
print(f"Je m'appelle {prenom} {nom} et fréquente le {ecole}")
print(f"{name}", f"{age}", sep=" : ", end=".\n")
x = 30
y = 15
print(f"x = {x}, y = {y}")
print(f"{x = }, {y = }")
print(f"{x + y = }")
import math
math.pi
print(f"pi arrondi au centième s'écrit {math.pi:.2f}")
#5 chiffres significatifs
print(f"{math.pi:.5g}")
nombre = 3454353453
#Ecriture scientifique
print(f"L'écriture scientifique de nombre est : {nombre:e}")
#5 chiffres significatifs
print(f"{nombre:.3g}")
#Ecriture comptable
print(f"nombre en format comptabilité : {nombre :_d}")
taux = 0.31587
print(f"Le taux en pourcentage est {taux = :.2%}")
Conversion de type (transtypage) ou construction d'un objet à partir d'un autre type :
L'objet obtenu est différent de l'objet qui a permis de le créer.
x = 3.1
type(x)
y = int(x)
type(y)
print(y)
y == x
a = '123'
type(a)
b = int(a)
type(b)
print(b)
c = float(a)
type(c)
print(c)
Il est utilisé pour représenter la valeur de vérité d'une expression. Il n'a que deux valeurs possibles : True
et False
.
3 > 5
#Egalité
"papa" == "Papa"
3 <= 5
Les booléens sont considérés comme un sous-type de int en Python.
True == 1
False == 0
True + False/ True
#Différent (N'est pas égal)
1 + 2 != 3
False == 0.0
0.1 + 0.2 == 0.3
Ils permettent de construire des expressions logiques plus complexes.
x > 5 AND x < 21
x = 10
5 < x < 21
5 <= 1 or 7 > 3.2
input()
Elle permet de demander à l'utilisateur d'un programme d'entrer (de saisir) une valeur.
nom = input()
a = input()
Très souvent, cette instruction est accompagnée d'un message spécifiant à l'usager ce que l'on attend de lui.
nom = input("Entrer votre prénom : ")
a = input("Taper un nombre entier : ")
Remarque :
La fonction input() renvoie toujours une chaîne de caractères !
Si l'on souhaite que l'utilisateur entre une valeur numérique, on devra convertir la valeur entrée (qui sera donc de type string) en une valeur numérique du type qui est désiré, par l'intermédiaire des fonctions intégrées int()
(si on attend un entier) ou float()
(si on attend un nombre réel).
type(a)
a = int(input("Entrer un entier"))
a
Les commentaires sont créés en Python à l'aide du signe dièse ( # ) et doivent être de brèves déclarations ne dépassant pas quelques phrases.
Voici un exemple simple :
# Addition de deux nombres
3 + 7