Instruction
...
Bloc 1 :
instruction
…
Bloc 2 :
instruction
...
Instruction
...
Instruction
...
: | :à la fin d'une ligne définit le début d'un bloc d’instructions |
Indentation | Deux espaces ou une tabulation matérialisent un bloc d’instructions :
|
# Commentaire | Commentaire sur une ligne |
""" Commentaire Suite du commentaire """ | Commentaire multiligne |
L'affectation consiste à attribuer une valeur à une variable.
a = 83 b = 9.23 c1 = "Un deux trois" c2 = "Un \"deux\" trois" c3 = "Un deux\ntrois"
Le type de la valeur d'une variable se retrouve avec la fonction type().
int | 83 0 -23 2 | Entier |
float | 9.23 0.0 -1.7e-6 | Nombre à virgule |
str | "Un deux" 'Un deux' "L'avion" | Chaîne de caractères |
list | ["3", 3, 3.0] | Liste |
bool | True False | Booléen |
Diverses fonctions permettent de changer le type d'une variable.
int("15") # 15 int(-15.56) # -15 (troncature) float(-15) # -15.0 float("-2e-3") # -0.002 str(15) # "15" str(-0.002) # "-0.002"
Lors de certaines opérations sur deux types différents, un type est modifié automatiquement pour rendre l'opération possible.
var=3/2 print(var,type(var)) var=3.0+2 print(var,type(var)) var=3*True print(var,type(var)) var=3*(2>1) print(var,type(var)) var="3"+2 print(var,type(var))
Résultat :
1.5 <class 'float'> 5.0 <class 'float'> 3 <class 'int'> 3 <class 'int'> TypeError
Même nom mais deux variables différentes :
a = 15 # variable globale def plusUn() : a = 0 # variable locale à la fonction plusUn() a = a + 1 print(a) plusUn() # 1 print(a) # 15
Programme qui ne fonctionne pas :
a = 15 # variable globale def plusUn() : a = a + 1 # erreur car a n’est pas initialisée print(a) plusUn() print(a)
Variable globale dans une fonction ou procédure :
a = 15 # variable globale def plusUn() : global a a = a + 1 print(a) plusUn() # 16 print(a) # 16
input()
Saisie d’une chaîne de caractères :
nom = input("Quel est votre nom ?")
Saisie d’un entier :
n = int(input("Nombre de frères et sœurs"))
Saisie d’un nombre à virgule :
x = float(input("Température à 12h00")
print()
Affichage d’une valeur :
print("Bonjour !") print(15)
Résultat :
Bonjour ! 15
Affichage de la valeur que contient une variable :
message = "Bonjour !" print(message)
Résultat :
Bonjour !
Affichage du résultat d'un calcul :
a = 15 print(3*a)
Résultat :
45
Affichage de la valeur retournée par une fonction :
def saluer(nom) : return "Bonjour "+nom+"!" print(saluer("Julie"))
Résultat :
Bonjour Julie!
Affichage sur une même ligne :
a = -3 print("Le carré de ", a," est " , a * a)
Variante :
a = -3 print("Le carré de ", end = " ") # end = " " évite le retour à la ligne print(a, end = " ") print(" est ", end = " ") print(a*a)
Résultat :
Le carré de -3 est 9
+ | Addition |
- | Soustraction |
* | Multiplication |
/ | Division |
// | Division entière |
% | Reste de la division |
** | Puissance |
a = 2 print(a + 3) # 5 print(a - 3) # -1 print(3 * a) # 6 print(15 / 6) # 2.5 print(15 // 6) # 2 print(15 % 6) # 3 print(3 ** a) # 9 print(a ** 0.5) # 1.4142135623730951
Quelques fonctions mathématiques sont toujours disponibles.
print(round(3.815164, 2)) # 3.82 print(int(3.815164)) # 3 print(abs(2.3)) # 2.3 print(abs(-2.3)) # 2.3 print(max(2,4,6)) # 6
La plupart des fonctions mathématiques nécessitent d'importer une bibliothèque,
comme math
, numpy
ou scipy
.
from math import * print(sqrt(16)) # 4.0 print(sin(pi/4)) # 0.7071067811865475 print(acos(0.5)) # 1.0471975511965979 print(pi/3) # 1.0471975511965979
Les fonctions random()
, choice()
et randint()
appartiennent à la bibliothèque random
.
from random import * a = random() # nombre aléatoire dans [0; 1[ - exemple : 0.8365827741773375 L = [7, 3, 8, 5, 6] a = choice(L) # élément au hasard dans la liste L - exemple : 5 a = randint(5, 10) # entier aléatoire dans [5; 10] - exemple : 7
a = "Un cours" b = " ça s’apprend !" c = a + b # concaténation print(c)
Affichage :
Un cours ça s’apprend !
ch = "Pierre" print(len(ch)) # longueur de la chaîne
Affichage :
6
txt='"Bonjour !", dit−elle.\n"Bonjour", répondit−il.' print(txt)
Affichage :
"Bonjour !", dit-elle. "Bonjour", répondit-il.
Remarques :
ch = "Constance" print(ch[0], ch[4], ch[8])
Affichage :
Cte
nb = "123456789" print(nb[1:3]) print(nb[0:len(nb)-2]) print(nb[:-2]) print(nb[2:len(nb)]) print(nb[2:])
Affichage :
23 1234567 1234567 3456789 3456789
Une liste est une suite ordonnée d'éléments séparées par des virgules, l'ensemble étant encadré entre crochets. A chaque élément de la liste correspond un indice (ou index). L'indice du premier élément est 0.
liste = ["a", "b", 20, 30, "cd"] print(len(liste)) # 5 print(liste[0], liste[2], liste[4]) # a20cd print(liste.index("b")) # 1 liste[0] = "e" # ["e", "b", 20, 30, "cd"] del(liste[3]) # ["e", "b", 20, "cd"] liste.append("a") # ["e", "b", 20, "cd", "a"] équivaut à liste+=["a"] liste.remove("b") # ["e", 20, "cd", "a"] liste = [1, 3, 2, 4] min(liste) # 1 max(liste) # 4 liste.reverse() # [4, 2, 3, 1] liste.sort() # [1, 2, 3, 4] liste.sort(reverse=True) # [4, 3, 2, 1]
La fonction range()
définit une suite arithmétique de nombres entiers, positifs ou négatifs.
Elle prend 1 à 3 paramètres.
La fonction list()
convertit le type range
en type list
.
list(range(5)) # [0, 1, 2, 3, 4] list(range(2,5)) # [2, 3, 4] list(range(0,5,2)) # [0, 2, 4] list(range(2,-3,-2)) # [2, 0, -2]
La méthode split()
sectionne une chaîne de caractères pour former une liste.
Chaque élément de la liste est une chaîne de caractères.
Cette méthode prend pour paramètre le séparateur, par défaut un espace.
texte='Salut à tous!' texte.split() # ['Salut', 'à', 'tous!'] IPv4="192.168.45.67" IPv4.split(".") # ['192', '168', '45', '67']
if
nombre = -10 if nombre>0 : print("Le nombre choisi est positif") print("Fin du programme")
Affichage :
Fin du programme
if ... else
nombre = 10 if nombre>0 : print("Le nombre choisi est positif") else : print("Le nombre choisi est négatif ou nul") print("Fin du programme")
Affichage :
Le nombre choisi est positif Fin du programme
n = 10 if n<0 : print("Le nombre est négatif") elif n==0 : print("Le nombre est égal à zéro") else : print("Le nombre est positif")
Affichage :
Le nombre est positif
if n==0 : | n est égal à zéro |
if n>0 : | n est positif |
if n!=34 : | n est différent de 34 |
if (n>0) and (n<10) : | n est compris strictement entre 0 et 10 |
if 0<n<10 : | n est compris strictement entre 0 et 10 |
if (n<0) or (n>10) : | n est négatif ou strictement supérieur à 10 |
if n%5==0 : | n est divisible par 5 |
Différences entre =, == et != :
n = 10 # affectation n == 0 # False # test d'égalité n = 0 # affectation n == 0 # True # test d'égalité n != 0 # True # test d'inégalité
for ... in
for n in range(3) : print("Bonjour") print("Fin")
Affichage :
Bonjour Bonjour Bonjour Fin
Remarques :
for n in range(10) : print(n) # affichage des valeurs de 0 à 9
Remarque :
for n in range(1,10) : print(n) # affichage des valeurs de 1 à 9
while
Le nombre d’itérations n'est pas toujours connu à l’avance.
gagne = 0 while gagne == 0 : n=int(input("Entrer un nombre")) if n == 10 : gagne = 1 print("Gagné")
Une fonction prend communément un ou plusieurs paramètres et retourne une valeur :
def puissance(x,n) : y = x**n return y print(puissance(3,2)) # 9
Une procédure exécute une suite d'instructions sans retourner de valeur :
def table7() : for i in range(1,11) : print(7*i) table7() # 7 14 21 28 35 42 49 56 63 70
Elle prend éventuellement un ou plusieurs paramètres :
def table(base) : for i in range(1,11) : print(base*i) table(8) # 8 16 24 32 40 48 56 64 72 80
Les bibliothèques s'importent de trois manières différentes.
A réserver aux programmes simples.
from numpy import * print(sqrt(9)) print(sin(2))
Il est possible d'importer seulement les fonctions désirées.
from numpy import sqrt, sin print(sqrt(9)) print(sin(2))
Evite les conflits de variable ou de fonction.
import numpy print(numpy.sqrt(9)) print(numpy.sin(2))
Donne un nom plus court à la bibliothèque.
import numpy as np print(np.sqrt(9)) print(np.sin(2))
En Python, on évite les mots tableau
ou vecteur
qui prêtent à confusion, ou alors on précise de quoi il s'agit.
t = (1, "a", 2.3) print(len(t)) print(t[1]) t[1] = "b" # Erreur, les éléments d'un tuple sont immuables
Résultat :
3 a TypeError: 'tuple' object does not support item assignment
e1 = {"moineau", "couleuvre", "renard", "renard"} e2 = {"moineau", "gardon", "lion"} e3 = {"moineau"} print(e1) # "renard" ne compte qu'une fois print(len(e1)) for p in e1: print(p) print(e1 | e2) # Union print(e1 & e2) # Intersection print(e1 - e3) # Différence
Résultat :
{'renard', 'moineau', 'couleuvre'} 3 renard moineau couleuvre {'lion', 'renard', 'couleuvre', 'moineau', 'gardon'} {'moineau'} {'couleuvre', 'renard'}
d = {"oiseau":"moineau", "reptile":"couleuvre", "mammifere":"renard"} print(d["reptile"]) for p in d: print(d[p]) d["poisson"] = "gardon" # Ajout d'un élément del d["reptile"] # Retrait d'un élément d["oiseau"] = "pinson" # Modification d'un élément print(d)
Résultat :
couleuvre moineau couleuvre renard {'oiseau': 'pinson', 'mammifere': 'renard', 'poisson': 'gardon'}