Les fonctions 

Les fonctions comme base de la programmation


Les fonctions vues en seconde prennent souvent un nombre pour en calculer l'image. Mais en programmation, on rencontre aussi beaucoup de fonctions prenant du texte, une liste, une fonction ou ne prenant pas de paramètre du tout. Elles peuvent aussi retourner du texte, une liste, une fonction, voire même ne rien retourner.

La fonction suivante n'a pas de paramètre et ne retourne rien non plus (pas de return).


>>> def hi():

...     print("Hello from Python!!!")

...

>>> hi()

Hello from Python!!!

La fonction ne renvoie rien mais ne chôme pas pour autant, elle écrit quelque chose à l'écran. On peut, grâce à ce genre de fonction, lister une suite de tâches répétitives que l'on pourra lancer d'un seul coup. C'est pratique aussi pour clarifier le programme, car on peut en séparer les différentes parties.

La fonction suivante prend du texte en paramètre et ne renvoie toujours rien.


>>> def hi(name):

...     print("hello " + name + " from Python!!!")

...

>>> hi("John")

hello John from Python!!!

Le travail est ainsi fait “en fonction” du texte passé en paramètre.

La fonction suivante ne prend pas de paramètre mais va retourner une lettre au hasard.


>>> from random import choice

>>> def lettre():

...     return choice('abcdefghijklmnopqrstuvwxyz')

...

>>> lettre()

'm'

>>> lettre()

'r'

Pour enfoncer le clou sur la différence entre une fonction qui retourne quelque chose et une autre qui ne retourne rien, examinons cet exemple :


>>> def f(x): return 2 * x

...

>>> def g(x): print(2 * x)

...

>>> f(3)

6

>>> g(3)

6

>>> # MAIS

>>> f(3) == 6

True

>>> g(3) == 6

6

False

Beaucoup de combinaisons sont possibles pour les fonctions, à vous de construire les bonnes suivant vos besoins, en fonction de la façon dont vous pensez découper votre programme.


Exercice


scores = dict(A=1, E=1, I=1, L=1, N=1, O=1, R=1, S=1, T=1, U=1, D=2, M=2, G=2, B=3, C=3, 

    P=3, F=4, H=4, V=4, J=8, Q=8, K=10, W=10, X=10, Y=10, Z=10)

#début définition de la fonction

def ScoreScrabble(word):

    return sum([scores.get(letter, 0) for letter in word.upper()]) 

#fin définition de la fonction

a = ScoreScrabble("zèbre") # utilisation de la fonction



print(a)



En vous aidant de la fonction ci dessus, écrivez un programme qui vous demande un mot à l'aide de la fonction input() que vous avez utilisé dans l'exercice précédent (ou voir là) et vous retourne sa valeur au Scrabble. 

Bonus : les plus motivés demanderont un chiffre multiplicateur pour le cas ou s'il s'agirait d'un mot compte double, ou triple avec la fonction déjà utilisée a = float(input())


Enregistrez le programme en tant que coursFonction.py dans le répertoire dédié exclusivement à python.


Cool les fonctions ! Mais il y a mieux

Créé avec HelpNDoc Personal Edition: Protégez vos PDF confidentiels avec ces mesures de sécurité simples