.. index:: Ordenació de 2 i de 3 valors Ordenació de 2 i de 3 valors ------------------------------- 1. Dissenya una funció *max_min2(x, y)* tal que donats dos valors *x* e *y* retorni els dos valors ordenats: el primer ha de ser el major i el segon el menor .. code-block:: python >>> max_min2(23, -7) (23, -7) >>> max_min2(4-1, 4+1) (5, 3) >>> max_min2('adeu', 'hola') ('hola', 'adeu') **Una posible solució:** .. literalinclude:: max_min2a.py .. note:: De forma alternativa també es pot definir la funció sense fer ús de condicionals: .. literalinclude:: max_min2b.py | 2. Dissenya una funció *max_min3(x, y, z)* tal que donats tres valors *x*, *y* i *z* retorni els tres valors ordenats de major a menor. La funció ha de fer servir l'anàlisi de casos .. code-block:: python >>> max_min3(23, -7, 14) (23, 14, -7) >>> max_min3(4-1, 4+1, -3/2) (5, 3, -1.5) | 3. Dissenea una funció *nova_max_min3(x, y, z)* amb el mateix comportament que l'anterior, però que en la seva definició cridi a la funció *max_min* .. code-block:: python >>> nova_max_min3(23, -7, 14) (23, 14, -7) >>> nova_max_min3(4-1, 4+1, -3/2) (5, 3, -1.5) .. note:: Recorda que quan una funció retorna més d'un resultat, els pots "separar" (*unpack*) assignant el resultat de la funció a vàries variables: .. code-block:: python >>> max_min2(11+1, 17*2) # la funció retorna (34, 12) (34, 12) >>> major, menor = max_min2(11+1, 17*2) >>> major 34 >>> menor 12