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

    >>> max_min2(23, -7)
    (23, -7)
    >>> max_min2(4-1, 4+1)
    (5, 3)
    >>> max_min2('adeu', 'hola')
    ('hola', 'adeu')
    

Una posible solució:

def max_min2(x, y):
    if x >= y:
        return x, y
    else:
        return y, x

Nota

De forma alternativa també es pot definir la funció sense fer ús de condicionals:

def max_min2(x, y):
    return max(x,y), min(x,y)

  1. 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

    >>> max_min3(23, -7, 14)
    (23, 14, -7)
    >>> max_min3(4-1, 4+1, -3/2)
    (5, 3, -1.5)
    

  1. 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

    >>> nova_max_min3(23, -7, 14)
    (23, 14, -7)
    >>> nova_max_min3(4-1, 4+1, -3/2)
    (5, 3, -1.5)
    

    Nota

    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:

    >>> 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