|
@@ -0,0 +1,30 @@
|
|
|
|
|
+Voici maintenant un exemple de fonction en Python (crée le fichier `02-fonctions.py`) :
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+def count_words(str):
|
|
|
|
|
+ return len(str.split(' '))
|
|
|
|
|
+
|
|
|
|
|
+message = "The show must go on!"
|
|
|
|
|
+print("Nombre de mots dans '%s' : %d" % (message, count_words(message)))
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+La fonction `count_words()` prend en paramètre une chaîne de caractères. Elle utilise la méthode `split()` accessibles aux chaînes (qui sont des objets !). Celle-ci fonctionne comme `split()` en JavaScript : elle sépare la chaîne selon le séparateur passé en paramètre, et renvoie une "liste" (l'équivalent des tableaux).
|
|
|
|
|
+
|
|
|
|
|
+Ensuite la fonction `len()` compte le nombre d'éléments dans la liste.
|
|
|
|
|
+
|
|
|
|
|
+Remarque ensuite ce qu'on met en arguments de `print()`. La partie entre guillemets ressemble à ce qu'on pourrait trouver en C ou en Java : `%s` et `%d` sont des "emplacements" pour des variables (chaîne et entier respectivement). Par contre, la syntaxe de la suite diffère : les valeurs à insérer dans les emplacements sont situées entre parenthèses, suite au caractère `%`.
|
|
|
|
|
+
|
|
|
|
|
+Pour terminer, le plus important à retenir de cet exemple... Voici comment on aurait écrit `count_words()` en JS :
|
|
|
|
|
+
|
|
|
|
|
+```javascript
|
|
|
|
|
+function count_words(str) {
|
|
|
|
|
+ return str.split(' ').length;
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+Tu vois les différences ?
|
|
|
|
|
+> Python **n'utilise pas** la syntaxe `{}` pour ouvrir et fermer le corps d'une fonction (ou un bloc de code en général)
|
|
|
|
|
+
|
|
|
|
|
+> Au lieu de cela, on ouvre un bloc de code en utilisant `:` et **en laissant 4 espaces d'indentation** au début de chaque ligne du bloc.
|
|
|
|
|
+
|
|
|
|
|
+Cette dernière différence est absolument fondamentale ! Python se base sur l'*indentation* pour détecter ce qui appartient à un bloc.
|