Formation I.S.N.

Donner des arguments à une fonction


			def TiretUnTrait():
				print("----------------------------------")
				print()
				print()
				
			print("Le vol en direction de ",end="")
			print("Tokyo",end="")
			print("décollera à",end="")
			print("9h00")
			TiretUnTrait()

			print("Le vol en direction de ",end="")
			print("Sydney",end="")
			print("décollera à",end="")
			print("9h30")
			TiretUnTrait()

			print("Le vol en direction de ",end="")
			print("New-York",end="")
			print("décollera à",end="")
			print("10h00")
			TiretUnTrait()
			

Le programme ci-dessus est formé de trois blocs qui annoncent chacun l’horaire d’un vol. On peut vouloir aller plus loin dans l’organisation de ce programme et écrire une fonction AnnoncerUnVol , qu’il suffirait d’appeler trois fois dans le programme principal. Cependant, contrairement à l’exemple de la fonction TirerUnTrait , ces trois blocs ne sont pas absolument identiques : la destination et l’horaire du vol diffèrent d’un cas à l’autre. Il faut donc paramétrer l’instruction que l’on isole pour pouvoir choisir la destination et l’horaire du vol.

On appelle argument formel d’une fonction une variable particulière, utilisée dans le corps de la fonction, et dont la valeur est donnée dans le programme principal au moment où la fonction est appelée.



Dans notre exemple, les arguments doivent représenter la destination, que l’on nomme destination , et l’horaire de vol, que l’on nomme horaire. On définit alors cette fonction de la manière suivante :


		
		

On a conservé notre fonction TirerUnTrait en début de programme. On a ensuite ajouté la fonction AnnoncerUnVol qui contient nos deux arguments formels.

Le programme principal se limite alors à l’appel, trois fois de suite, de la fonction AnnoncerUnVol, chaque appel devant se formuler avec ses propres arguments.

On remarque au passage qu’une fonction peut elle-même en appeler une autre préalablement définie.



Les variables utilisées comme arguments formels prennent le type que l’on veut (chaîne de caractères, nombre entier, nombre décimal etc.).



Enfin, l’ordre des arguments dans l’en-tête de la fonction n’a pas d’importance. En revanche, il convient de respecter cet ordre au moment de son appel. En effet, la valeur indiquée au rang n dans l’appel de la fonction est attribuée à la variable de rang n dans la fonction.

Ainsi dans notre exemple, lors de l'appel il faut bien écrire "Tokyo" en premier argument et "9h00" en deuxième argument afin de respecter l'ordre des variables indiquées en arguments dans la fonction AnnoncerUnVol.