Trucades

Es disposa d’un o més fitxers que contenen una seqüència de números de telèfon corresponent a les trucades d’una determinada oficina. A cada línia del fitxer conté un sol número de telèfon, corresponent a una trucada. Com a exemple, pots descarregar el fitxer trucades.txt que té el següent contingut:

934780245
012
618776611
972399700
11811
972399700
012
607334455
  1. Dissenya una funció anomenada trucades1() que donat el nom d’un fitxer (string) del tipus indicat, retorni quantes vegades s’ha trucat al número 012 i quantes al 11811.

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

    >>> trucades1('trucades.txt')
    (2, 1)
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_1.txt i el fitxer d’exemple trucades.txt.


  1. Dissenya una funció anomenada trucades2() que donat el nom d’un fitxer (string) del tipus indicat, calculi quantes vegades s’ha trucat al número 012 i quantes al 11811. La funció ha de crear un fitxer de nom «nombres.txt» on hi hagi dues línies. En la primera ha d’haver el número de telèfon 012 i el nombre de vegades que s’hi ha trucat separats per un únic espai. En la segona línia la mateixa informació pel número 11811.

    Desa la funció al mateix fitxer trucades.py de l’apartat anterior. La funció ha de passar el següent doctest:

    >>> trucades2('trucades.txt')
    >>> f = open('nombres.txt', 'r')
    >>> ls = f.read().split()
    >>> ' '.join(ls)
    '012 2 11811 1'
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_2.txt i el fitxer d’exemple trucades.txt.


  1. Dissenya una funció anomenada trucades3() que donat el nom d’un fitxer (string) amb el format indicat, retorni True si en el fitxer hi apareixen dos números consecutius iguals i False en cas contrari.

    Desa la funció al mateix fitxer trucades.py de l’apartat anterior. La funció ha de passar el següent doctest:

    >>> trucades3('trucades.txt')
    False
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_3.txt i el fitxer d’exemple trucades.txt.


  1. Dissenya una funció anomenada trucades4() que tingui com a paràmetres el nom d’un fitxer amb el format indicat (string) i un string corresponent a un prefix telefònic (per exemple “972”). La funció ha de retornar el nombre de vegades que s’ha trucat a telèfons que comencen per aquest prefix.

    Desa la funció al mateix fitxer trucades.py de l’apartat anterior. La funció ha de passar el següent doctest:

    >>> trucades4('trucades.txt', '972')
    2
    >>> trucades4('trucades.txt', '618776611')
    1
    >>> trucades4('trucades.txt', '555')
    0
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_4.txt i el fitxer d’exemple trucades.txt.


  1. Dissenya una funció anomenada trucades5() que tingui com a paràmetres el nom d’un fitxer amb el format indicat, un altre nom de fitxer i un string corresponent a un prefix. La funció ha d’escriure en el segon fitxer únicament els números de telèfon que apareixen al primer fitxer que tinguin aquell prefix. Els números han d’aparèixer en el mateix ordre i cada vegada que s’ha trucat.

    Desa la funció al mateix fitxer trucades.py de l’apartat anterior. La funció ha de passar el següent doctest:

    >>> trucades5('trucades.txt', 'truca9.txt', '9')
    >>> f = open('truca9.txt', 'r')
    >>> ls = f.read().split()
    >>> ' '.join(ls)
    '934780245 972399700 972399700'
    >>> trucades5('trucades.txt', 'truca555.txt', '555')
    >>> f = open('truca555.txt', 'r')
    >>> ls = f.read().split()
    >>> ' '.join(ls)
    ''
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_5.txt i el fitxer d’exemple trucades.txt.


  1. Dissenya una funció anomenada trucades6() que tingui com a paràmetres el nom d’un fitxer amb el format indicat, un altre nom de fitxer i un string corresponent a un prefix. La funció ha d’escriure en el segon fitxer únicament els números de telèfon que apareixen al primer fitxer que tinguin aquell prefix. En el segon fitxer no ha d’haver-hi números repetits i han d’estar ordenats com strings.

    Desa la funció al mateix fitxer trucades.py de l’apartat anterior. La funció ha de passar el següent doctest:

    >>> trucades6('trucades.txt', 'truca9.txt', '9')
    >>> f = open('truca9.txt', 'r')
    >>> ls = f.read().split()
    >>> ' '.join(ls)
    '934780245 972399700'
    >>> trucades6('trucades.txt', 'truca6.txt', '6')
    >>> f = open('truca6.txt', 'r')
    >>> ls = f.read().split()
    >>> ' '.join(ls)
    '607334455 618776611'
    

    Nota

    Podeu descarregar el fitxer amb tests test_trucades_6.txt i el fitxer d’exemple trucades.txt.

Solucions

Disposeu de solucions al fitxer trucades.py