Cette leçon contient des éléments de Python que nous avons laissés de côté dans les leçons précédentes.
Options print
Jusqu'à maintenant, la seule manière que nous avons vu d'écrire à l'écran est d'utiliser la fonction print()
, qui écrit différents éléments une ligne à la fois et sépare ces éléments par des espaces. En fait, print
accepte quelques arguments mot-clef qui vous permettent de modifier son comportements pour satisfaire vos besoins.
- Pour changer le séparateur espace en une autre chaîne
S
, insérez l'argumentsep = «S»
- Pour remplacer le caractère de "fin de ligne" avec une autre chaîne
S
, insérez l'argumentend = «S»
Cette nouvelle fonctionnalité, arguments mot-clef, est plus facile à illustrer à l'aide de plusieurs exemples.
Ces arguments mot-clef doivent être passés à la fin de la liste d'arguments sinon une erreur sera générée. Si vous utilisez les deux arguments mot-clef, ils peuvent être donnés dans n'importe quel ordre.
Noms de fonctions/variables valides
- Les noms peuvent contenir des lettres, nombres et le caractère souligné (
_
). - Le premier caractère de chaque nom doit être une lettre.
- Python fait la distinction entre majuscules et minuscules.
Donc mon_3e_int
est un nom de variable valide mais 3e_int
ne l'est pas.
Décrementer des boucles for
& et autres incréments
Jusqu'ici, vous avez vu que les boucles for
peuvent parcourir une liste de nombres en ordre croissant:
Souvent il est nécessaire d'écrire une boucle for
qui parcourt les nombres dans l'ordre décroissant (du plus grand au plus petit). Pour ce faire, nous appelons range
avec un troisième argument appelé incrément ou step (le pas en français):
Si vous réfléchissez pendant un instant, vous remarquerez que range(0, 5)
est la même chose que range(0, 5, 1)
: l'incrément par défault est 1. Dans tous les cas, faites attention que range(début, fin, pas)
s'exécute jusqu'à juste avant d'avoir atteint la valeur fin
. Pour plus d'information voyez le manuel Python.
De même, vous pouvez utiliser string[x:y:-1]
pour obtenir l'inverse d'une chaîne, ou string[x:y:2]
pour obtenir une sous-chaîne avec les caractèères x, x+2, x+4, ...
Avec une boucle for
, vous pouvez aussi inverser l'ordre avec reversed(range(x, y))
, qui traverse de y-1
à x
dans l'ordre décroissant.
Ecrire du code plus petit
Python permet d'utiliser différentes manières pour écrire du code plus court; nous en introduisons quelques unes ici.
Nous n'utiliserons pas toujours ces possibilités car elles rendent parfois le code plus difficile à lire. |
Opérateurs d'attribution
Python permet d'écrire "x += 1
" qui signifie "ajouter 1 à x
." C'est donc équivalent à "x = x + 1
" comme nous le montrons ci-dessous:
De la même manière, il y a des opérateurs pour la division entière (//=
), le modulo (%=
), et la puissance (**=
).
Blocks "inline"
Nous avons vu plusieurs instructions qui sont suivies par des "blocks" de code indentés: for
, if
, else
, elif
, while
, and def
, par exemple:
if x==y: «block» #indenté, multiligneDans ce cas particulier où le
«block»
n'est composé que d'une ligne, Python permet d'utiliser la syntaxe:
if x==y: «block» #ligne seuleVoici un exemple:
Ceci montre une limite: un block composé avec un double point (if
, for
, etc) ne peut pas être utilisé comme block "inline". Par exemple, if 2>1: if 4>3: print()
donne une erreur de syntaxe.
Affectation multiple
Python permet de combiner deux instructions d'attributions en une seule:
Remarquez que ceci nous permet de résoudre notre exercice Programme d'échange en une seule ligne!
Comparaisons à la chaîne
Python permet aussi de combiner plusieurs comparaisons en une seule:
v1 c1 v2 c2 v3 ...
où v
sont des valeurs et c
des comparaisons, est traitée de la même manière que (v1 c1 v2) and (v2 c2 v3) and...
Valeurs par défaut pour [:]
et range()
Vous pouvez laisser une ou deux valeurs de début / fin quand utilisant l'opérateur sous-chaîne [:]
. (Ceci est également vrai pour les listes, comme nous le verrons dans la prochaine leçon.) La valeur par défaut du premier indice est
0
(le début de la chaîne) et la valeur par défaut du dernier indice est la longueur de la chaîne. De même, range(n)
signifie range(0, n)
.
None
Certaines fonctions ont comme effet principal de retourner une value, par exemple abs(x)
. Mais d'autres fonctions qui sont plus valorisées pour leur effet retournent la valeur par 'defaut' None
:
Ici None
est une valeur spéciale utilisée par Python comme conteneur à tout faire. Si vous en demandez type(None)
, vous verrez que None
a même son propre type, NoneType
. Pendant que l'on y est, voyons quel est le type du type variable:
Dans l'exercice suivant, on vous demande de tracer les résultats d'une longue commande utilisant type
et print
.
print(type(print(type(type(print(print()))))))
est composée de 4 lignes. Mettez-les dans l'ordre correct.- None
- <class 'NoneType'>
- <class 'type'>
- «ligne blanche»
Vous être prêt à passer à la leçon suivante!