2. Preu bitllet [4]

Ens demanen que implementem una funció per calcular el preu d’un bitllet d’avió. El preu dependrà dels kilòmetres del recorregut en avió, del dia de la setmana que volem viatjar i del pes de la maleta que es vol portar. Per fer-ho farem diferents funcions:

  1. En primer lloc, fes una funció anomenada equipatge que donat un pes calcula la tarifa de l’equipatge. Hi ha tres tarifes diferents: si pesa 10 quilos o menys és tarifa 1; si pesa més de 10 quilos, però 20 quilos o menys és tarifa 2, i si pesa més de 20 quilos serà tarifa 3.

    Desa la funció al fitxer aviacio.py. La funció ha de passar el següent doctest:

    >>> e=equipatge(5)
    >>> e
    1
    >>> e=equipatge(11)
    >>> e
    2
    >>> e=equipatge(20)
    >>> e
    2
    >>> e=equipatge(25)
    >>> e
    3
    

    Pots descarregar el fitxer amb tests test-bitllet1.txt.

  2. En segon lloc, implementa una funció anomenada preu_final la qual calcularà el preu del bitllet a partir d’un enter que donarà els kilòmetres del trajecte, un booleà que indica si el viatge es fa o no en cap de setmana (True vol dir que sí, que és en cap de setmana) i finalment un enter corresponent al pes de l’equipatge.

    El càlcul del bitllet es calcula com la part entera de 0.08 euros per kilòmetres de distància entre l’origen i el destí. A aquest import se li afegeix un extra a partir del pes de l’equipatge i del dia que es vola seguint els següents criteris. Si el viatge és en cap de setmana, l’equipació de tarifa 1 i 2, no paguen; però l’equipació de tarifa 3 incrementa el preu del bitllet en 20 €. Per altra banda, si el viatge es fa en dia feiner, la tarifa 2 paga 15 euros i la 3 en paga 25, mentre que la tarifa 1 no paga.

    Desa la funció al fitxer aviacio.py. La funció ha de passar el següent doctest:

    >>> p=preu_final(1200, True, 12)
    >>> p
    96
    >>> p=preu_final(1250, True, 22)
    >>> p
    120
    >>> p=preu_final(2340, True, 22)
    >>> p
    207
    >>> p=preu_final(1200, False, 32)
    >>> p
    121
    >>> p=preu_final(4320, False, 9)
    >>> p
    345
    

Nota

Pots descarregar el fitxer amb tests test-bitllet2.txt. Tens una solució a aviacio.py.