En fait, c'est indiqué dans ton énoncé, si tu fais def longueur(*points), le * devant le nom de l'argument indique que la fonction attend un nombre arbitraire de paramètres. 
Tu peux regarder la documentation officielle ici : https://docs.python.org/3.5/tutorial/controlflow.html#arbitrary-argument-lists
Un peu de lecture ici : http://stackoverflow.com/a/3394898/2291710
Et là : http://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/
*points est un itérable, donc tu pourras faire for point in points:. 
Et ta fonction pourra s'utiliser longueur((1, 4), (3, 4)) ou encore longueur((7,3), (3,0), (0, 2), (2, 9)), ça ne posera pas de problème, tous les points se retrouveront dans la variables points.
Message édité le 06 octobre 2015 à 21:47:50 par Impair