Licence CC BY-NC-ND Thierry Parmentelat
_images/inria-25-alpha.png

opérateurs

arithmétiques

# sans surprise, les 4 opérations arithmétiques
a = 10
b = 25

(a + b) * (b - a)
525
# une petite subtilité
# toutefois avec la division
# ceci retourne TOUJOURS
# un flottant

25 / 10
2.5
# la division entière
# quant a elle
# se note //

25 // 10
2

typage

en Python tous les objets sont typés
le comportement des opérateurs dépend du type

# ajouter deux chaines permet
# de les concatener
'abc' + 'def'
'abcdef'
# on peut même multiplier
# par un entier
3 * 'abc'
'abcabcabc'

arithmétiques - suite

# division euclidienne
c = 64
d = 5
# le reste
c % d
4
# le quotient

c // d
12
# puissance

d ** c # qu'il est grand !
542101086242752217003726400434970855712890625
# remarque: pas de limite
# de précision avec les entiers

d ** c > 2 ** 64
True

comparaisons

a = 10
b = 25
a == b
False
a != b
True
a <= b
True
a < b
True
# une curiosité
6 <= a <= 20
True
6 <= a <= 25 <= b <= 30
True

logiques

6 <= a and b <= 10
False
6 <= a or b <= 10
True

indexation avec []

sur tous les objets de type ‘séquence’
c’est-à-dire pour nous à ce stade les chaines
mais on verra que ça s’applique à d’autres, comme les listes (un peu de patience..)

chaine = 'abcdefghij'
len(chaine)
10
# en python les index commencent à 0
chaine[0]
'a'
# les index négatifs commencent à la fin
chaine[-1]
'j'

slices

# une 'slice' permet de découper un morceau
# là du caractère d'indice 1 à celui d'indice 4 exclus
chaine[1:4]
'bcd'
# et même de choisir un pas
chaine[1:8:2]
'bdfh'
# dans un slice on peut omettre
# n'importe lequel des 3 termes
chaine[3::]
'defghij'
# ce qui serait ici
# identique à juste
chaine[3:]
'defghij'
# dans un slice on peut omettre
# n'importe lequel des 3 termes
chaine[:4:]
'abcd'
# ce qui serait ici
# identique à juste
chaine[:4]
'abcd'

slices et bornes

la forme générale est donc debut:fin:pas
ATTENTION que l’index fin n’est pas inclus

# la convention permet de facilement emboiter les résultats
chaine[0:3] + chaine [3:6] + chaine[6:] == chaine
True
# notez enfin que le pas peut être négatif aussi
# ce qui donne cette forme idiomatique
# pour renverser une séquence
chaine[::-1]
'jihgfedcba'