34. Recette du gâteau à la mousse au chocolat

Je ne sais pas vous, mais moi je commence à avoir faim. Ce serait si bon d'avoir un délicieux gâteau à la mousse au chocolat à manger. Nous avons besoin de :

Pour faire le gâteau, nous avons besoin de la recette. Quelque chose comme :

Une recette ressemble beaucoup à un programme d'ordinateur : c'est une série d'instructions qui doivent être suivies dans un ordre précis pour accomplir une tâche, et obtenir un résultat désiré. Je pense que nous avons tant à apprendre en programmation que je vais arrêter la leçon de cuisine pour l'instant et revenir à Python.


Listes

Voici pour vous quelques petites choses à essayer avec l'interpréteur Python :

>>> ingredients = ["4 oeufs", "100 g de sucre", 
... "250 g de chocolat noir", "30 ml de poudre de cacao"]
>>>

ingredients est un exemple de liste Python. Une liste en Python peut contenir autant d'items que l'on désire en mettre. Dans l'exemple que nous avons choisi, tous les ingrédients sont des chaînes  mais les items d'une liste peuvent être des nombres, ou même d'autres listes ou encore d'autres objets Python que nous n'avons pas encore vus. Maintenant, essayez ce qui suit :

>>> for chaque_item in ingredients:
... print chaque_item
4 oeufs
100 g de sucre
250 g de chocolat noir
30 ml de poudre de cacao

>>> ingredients[0]
'4 oeufs'

>>> ingredients[0:2]
['4 oeufs', '100 g de sucre']

Cela devrait vous sembler familier, bien que légèrement différent de ce que nous avons déjà vu. Essayez aussi ce qui suit :

>>> for caractere in ingredients[0]:
... print caractere
...
4

o
e
u
f
s

>>> ingredients[0][2]
'o'

>>> '4 oeufs'[2]
'o'

Comme nous venons de le voir, ingredients[0] est synonyme de la chaîne '4 oeufs' ; donc ingredients[0][2] est le troisième caractère (rappelez-vous que Python compte en commençant par zéro) dans la chaîne '4 oeufs'.

Maintenant, dans la recette ci-dessus, j'ai oublié un ingrédient délicieux : la crême Chantilly à mettre en garniture. Je peux l'ajouter, et vérifier que cela a été ajouté comme suit :

>>> ingredients.append("creme Chantilly")
>>> print ingredients
['4 oeufs', '100 g de sucre', '250 g de chocolat noir', '30 ml de poudre de cacao', 'creme Chantilly']

append() est une méthode qui fait partie de la classe "list". ingredients est une instance de cette classe. Nous invoquons la méthode append sur l'instance ingredients en la connectant avec un point ".", comme nous l'avons vu dans les leçons précédentes. Le paramètre de append est l'objet que nous voulons ajouter à la liste. Il est toujours mis à la fin de la liste.

Les listes ont beaucoup d'autres méthodes ; je les présenterai quand nous en aurons besoin. Si vous voulez les voir toutes, vous n'avez qu'à taper dir([]) à l'interpréteur Python. Notez que [] est une liste vide, mais toute liste vous donnerait le même résultat dans ce cas. Avez-vous repéré la méthode append ?

Maintenant que nous savons comment ajouter des items à des listes, nous devons apprendre à les supprimer. Pour cela, nous devons utiliser le mot-clé Python del.

>>> del ingredients[3]
>>> print ingredients
['4 oeufs', '100 g de sucre', '250 g de chocolat noir', 'creme Chantilly']

Le mot-clé Python del peut faire beaucoup plus que supprimer des items d'une liste. Par exemple, il peut faire oublier à Python une variable qui avait été définie.

>>> a = 3
>>> print a
3
>>> del a
>>> print a
Traceback (most recent call last):
File "<input>", line 1, in ?
NameError: name 'a' is not defined

Essayez !

Dans le monde de Reeborg, écrivez un programme simple qui crée deux robots, chacun avec son propre nom, leur fait faire quelques pas et essaie de faire disparaître l'un d'eux en utilisant le mot-clé del. Vous devrez peut-être faire faire au moins un pas de plus au robot restant (avant de l'éteindre) pour que l'autre robot disparaisse de l'écran.


Un mot à propos de range()

Vous êtes maintenant prêt à connaître un secret à propos de la fonction Python range() :

>>> print range(6)
[0, 1, 2, 3, 4, 5]

C'est cela : range() crée simplement une liste !


Conversion entre listes, entiers et chaînes

Voici quelques fonctions internes utiles permettant de faire des conversions entre un type de données et un autre.

>>>  premier_nombre = 1304
>>> deuxieme_nombre = 987
>>>
>>> # conversion d'un entier en une chaîne en utilisant str()
>>> premiere_chaine = str(premier_nombre)
>>> premiere_chaine
'1304'
>>> deuxieme_chaine = str(deuxieme_nombre)
>>> deuxieme_chaine
'987'

>>> # conversion d'une chaîne en un nombre en utilisant int()
>>> int(premiere_chaine)
1304

>>> # conversion d'une chaîne en une liste en utilisant list()
>>> premiere_liste = list(premiere_chaine)
>>> premiere_liste
['1', '3', '0', '4']

>>> deuxieme_liste = list(deuxieme_chaine)
>>> deuxieme_liste
['9', '8', '7']

>>> # utilisation de join() pour créer une chaîne à partir d'une liste de chaînes
>>> '...'.join(deuxieme_liste)
'9...8...7'
>>> # join() permet aussi d'insérer quelque chose entre les caractères d'une chaîne
>>> '-'.join(premiere_chaine)
'1-3-0-4'
>>> # utiliser la chaîne vide '' pour joindre les éléments...
>>> ''.join(premiere_liste)
>>> '1304'
>>> ''.join(deuxieme_liste)
>>> '987'

>>> # extraire le dernier élément d'une liste avec pop()
>>> # Remarque : pop() est, en quelque sorte, le contraire de append()
>>> premiere_liste
['1', '3', '0', '4']
>>> dernier_element = premiere_liste.pop()
>>> dernier_element
'4'
>>> premiere_liste
['1', '3', '0']

>>> # la fonction len() donne le nombre
>>> # d'items dans une liste
>>> len(premiere_liste)
3

Aidez Reeborg à additionner avec les listes, chaînes et entiers

Aidez Reeborg à additionner deux nombres, comme illustré ci-dessous, en utilisant ce que nous venons de voir sur les listes, chaînes et entiers.

avant addition

après addition

précédentrepeat() cache des mots-clés Python - début - Une autre sorte de définitionsuivant