Un ordinateur est un système composé de plusieurs éléments
Le CPU exécute mes programmes Python ?
python.exe) exécute les
programmes Python.python.exe est en langage machine et
est exécuté par le CPU.Interpréteur:
Éditeur:
pythion.exe n’a pas d’interface graphique. Il faut
l’utiliser depuis un terminal.Powershell sous Windows, Terminal sous
MacOS
> pwd
C:\Users\lur
> ls
Desktop Documents
> cd Documents
> pwd
C:\Users\lur\Documents
> python --version
Python 3.X.X
> python
Python 3.X.X ...
Type "help", "copyright", "credits" or "license" for more
information.
>>> 1 + 1
2
>>> exit()
hello.py
print('Hello World')
> python hello.py Hello World
Nous avons déjà vu plusieurs fonctions prédéfinies :
print(), sqrt(), input(),
int(), …
Une fonction est une “boite noire” qui peut recevoir une ou plusieurs valeurs en arguments et peut renvoyer une valeur de sortie.
Définir ses propres fonctions sert à deux choses :
def table7(): n = 1 while n <= 10: print(n, "x 7 =", n * 7) n += 1
# affichons 2 fois la table de 7 table7() table7()
Une fonction n’est exécutée que lorsqu’on l’appelle
table7() ne retourne rien :x = table7() # affiche la table de 7 print(x) # affiche None
# définition de la fonction table(). def table(base): n=1 while n <= 10: print(n, "x", base, "=", n * base) n += 1 # appels à la fonction table() table(3) # affiche la table de 3 table(base=8) # affiche la table de 8 a = 42 table(a) # affiche la table de 42
# définition de la fonction table(). def table(base, start, length): n = start while n < start + length: print(n, "x", base, "=", n * base) n += 1 # appels à la fonction table() table(3, 1, 10) table(base=8, start=5, length=2)
# définition de la fonction table(). def table(base, start=1, length=10): n = start while n < start + length: print(n, "x", base, "=", n * base) n += 1 # appels à la fonction table() table(8, 5, 2) table(8) table(8, 5) table(8, length=2)
return permet de définir la valeur de retour
:# définition de la fonction multiply() def multiply(a, b): return a * b res = multiply(7, 9) # appel à la fonction. N'affiche rien. print(res) # affiche 63 print(multiply(6, 7)) # affiche 42
# définition de multiply() def multiply(a, b): return a * b # définition de table() def table(base, start=1, length=10): n = start while n < start + length: # utilisation de multiply() print(n, "x", base, "=", multiply(n, base)) n += 1 # appel à la fonction table() table(5, length=3)
return est rencontré, la fonction
s’arrête et le programme se poursuit après l’appel.
Cela permet quelques simplificationsdef abs(x): if x < 0: return -x else: return x
# version simplifiée def abs(x): if x < 0: return -x return x
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def tvac(amount): n = 1 + interest / 100 return amount * n interest = 21 n = 25 r = tvac(n) print(r)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 fun() print(a)
def fun(): a = 12 # variable locale à fun fun() print(a) # inaccessible ici
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) a = 12 fun()
def fun(): print(a) # accès à la variable 'a' globale a = 12 fun()
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) a = 12 fun() print("en dehors de fun :", a)
def fun(): a = 42 print("dans fun :", a) # 'a' locale masque 'a' globale a = 12 fun() print("en dehors de fun :", a) # seule 'a' globale accessible ici
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): print("globale? :", a) a = 42 a = 12 fun()
def fun(): # ici 'a' local existe déjà mais n'a pas encore de valeur print("globale? :", a) # erreur: accès à 'a' local sans valeur a = 42 a = 12 fun()
Les chainés de caractères (str)
a = "hello" # littéral b = 2 * a + "!!" # expression c = '6' + '7' # '67'
Les listes (list)
a = [1, 2, 3, 4] # littéral a = [1, 2] + [3, 4] # expression
l = [2, 42, 3.1416, 34] # 'l' est une séquence de valeurs s = "Le Python, c'est bon !" # 's' est une séquence de caractères
L’opérateur + entre deux séquences permet de créer
une nouvelle séquence contenant les deux opérandes
bout-à-bout On appelle cette opération la
concaténation
L’opérateur * entre un entier n et une
séquence permet de créer une nouvelle séquence
contenant n fois la séquence de départ.
f = [1, 2] + [3, 4] # [1, 2, 3, 4] g = 3 * "hello" # "hellohellohello"
in permet de vérifier si une valeur se
trouve dans une séquence. Ou si une sous-chaine est
dans une chaine de caractèresL = [1, 2, 42, 3] if 42 in L: print("OK") S = 'Python' if 'hon' not in S: print("KO")
[]:”[m:n] référence la sous-séquence qui va du
mième élément
(compris) au nième élément
(non-compris).s = "Le Python, c'est bon !" print(s[3:9]) # affiche 'Python' print(s[17:-2]) # affiche 'bon' print(s[17:]) # affiche 'bon !' print(s[:9]) # affiche 'Le Python'
len()s = "Le Python, c'est bon !" print(len(s)) # affiche 22
str est immuables = [1, 2, 42, 4, 5] s[2] = 3 print(s) # affiche [1, 2, 3, 4, 5]
s = "Le Python, c'est bon !" s[17] = "c" # provoque une erreur !
numbers = [1, 2, 3, 4, 5] words = ["I", "love", "Python"] mixed = [1, "duck-billed platypus", True] nested = [[1, 2], [3, 4]]
numbers = [1, 2, 2, 3, 4, 5] del(numbers[1]) print(numbers) # affiche [1, 2, 3, 4, 5]
numbers = [1, 2, 3, 4, 5] numbers.append(6) print(numbers) # affiche [1, 2, 3, 4, 5, 6]
numbers = [1, 2, 4, 5] numbers.insert(2, 3) # insère 3 à l'indice 2 print(numbers) # affiche [1, 2, 3, 4, 5]
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = words # ici on ne copie que la référence mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
words = ['I', 'like', 'Python'] mots = list(words) mots[1] = 'love' print(words) print(mots)
numbers = [1, 2, 3, 4, 5] copy1 = list(numbers) # la fonction 'list()' crée une liste copy2 = numbers * 1 # le '*' crée une liste copy3 = numbers + [] # le '+' crée une liste copy4 = numbers[:] # le slice crée une liste
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
def more_love(l): l[1] = "love" words = ['I', 'like', 'Python'] fun(words) print(words)
while.numbers = [2, 5, 7, 2, 1] i = 0 while i < len(numbers): print(numbers[i]) i += 1 # raccourci pour i = i + 1
for ... in Où n prendra successivement chaque valeur de
numbersnumbers = [2, 5, 7, 2, 1] for n in numbers: print(n)
Un intervalle est une séquence numérique logique.
Créé avec la fonction range()
range(5) # [0, 1, 2, 3, 4] range(1, 5) # [1, 2, 3, 4] range(1, 8, 2) # [1, 3, 5, 7] range(5, 0, -1) # ???
forfor i in range(5): print(i)
list()squares() est une fonction qui retourne une liste
contenant les n premiers nombres naturels au carré.def squares(n): res = [] for i in range(n): res.append((i+1)**2) return res