Python: tipus bàsics de dades

De Cacauet Wiki
Salta a la navegació Salta a la cerca

En aquesta secció suposem que es tenen nocions bàsiques de programació i algorísmica. Anem a veure les particularitats del llenguatge Python en el referent als tipus bàsics de dades.

Per una introducció a la programació en Python podeu mirar-vos aquestes referències:

Tipus de dades en Python

Podeu seguir els següents links per més referència:


Els diferents tipus de dades en Python son:


Més coses:


Exercicis

Ex.1 Calculadora

Farem un programa que podrà realitzar diversos càlculs amb dades que li entrarem. Ho farem en diverses passes:

  • Realitza una funció que demani les dades (nombres) a l'usuari per la consola i les retorni en una llista. Quan l'usuari entri una dada buida finalitzem l'entrada de dades i retornem la llista.
  • Fes un menu de l'aplicació que permeti:
    • Entrar les dades a l'usuari.
    • Visualitzar les dades per pantalla.
    • Calcular la mitjana aritmètica.
    • Calcular la mitjana geomètrica.
    • Ordenar les dades de forma creixent.
    • Ordenar les dades de forma decreixent.
    • Calcular la mediana (nombre entrat que queda al mig dels altres). Per ex.: [1,2,15] la mediana és 2.
  • Afegeix una funció que permeti a l'usuari carregar les dades d'un fitxer de text. Cada dada ocupa una línia.
  • Afegeix una funció que permeti a l'usuari gravar les dades en un fitxer de text.


Ex.2 Interseccions

Fes una funció que obtingui la intersecció de dues llistes (elements comuns). Els elements poden ser nombres o cadenes de caràcters (strings).

Fes un menú principal de l'aplicació que et permeti:

  • Entrar les dades manualment (com l'exercici anterior però ara podem entrar nombres o strings). Caldrà que te les demani 2 cops (necessitem 2 arrays per fer la intersecció).
  • Visualitzar les dades per pantalla
  • Carregar les dades des de 2 fitxers de text.
  • Calcular la intersecció.


Ex.3 Matrius

Construeix una matriu amb llistes (llista de llistes) amb dades que entri l'usuari. Quan entri una dada buida acabarem la fila. Si és el primer element de la fila finalitzarem l'entrada de dades de la matriu.

El menú ha d'oferir:

  • Entrar dades de la matriu.
  • Carregar-les d'un fitxer, files en línies i dades separades per comes.
  • Visualitzar la matriu
  • Trasposar la matriu (intercanviar files per columnes).


Ex.4 Diccionaris

Fes una funció que agafi les dades d'un fitxer de text i les posi en un diccionari. El format del fitxer serà:

clau1 = valor 1 del diccionari
clau2 = valor 2 del diccionari
...

OJU: les dades al fitxer després del signe "=" no poden contenir aquest signe i no van entre cometes. Caldrà treure els espais abans i després del valor.

El menú ha d'oferir:

  • Carregar les dades d'un fitxer.
  • Mostrar les dades per pantalla.
  • Mostrar el valor d'una clau.


Ex.5 Lliga de futbol

Farem una aplicació per anotar els resultats d'una lligueta de futbol. En l'arxiu de text "equips.cfg" posarem la configuració dels equips, un per línia. Utilitzarem el nom dels equips com a clau del diccionari que contindrà els resultats.

Estructura de dades:

  • Les dades les emmagatzemarem en una matriu feta amb diccionaris, és a dir, un diccionari de diccionaris.
  • Cadascun dels equips tindrà un diccionari on emmagatzemarà el resultat dels partits (tupla de 2 elements) que ha jugat a casa seva. Així ens adreçarem al resultat d'un partit amb
    resultats["local"]["visitant"] = (1,5)

El menú ha de permetre:

  • Crear nova lliga: carregar un arxiu de configuració ("equips.cfg") amb el nom dels equips.
  • Entrar les dades d'un partit: t'ha de demanar triar equip local / visitant d'una llista i després entrar els gols de cada equip.
  • Esborrar les dades d'un partit (per si hem comès un error a l'entrar-ho).
  • Enregistrar les dades d'una lliga en un arxiu de text.
  • Carregar les dades d'una lliga des d'un arxiu de text.
  • Calcular i mostrar la classificació.

Format de l'arxiu per emmagatzemar les dades (1 resultat per línia):

equip_local / equip_visitant / gols_local / gols_visitant

Si esteu inspirats podeu afegir estadístiques i funcionalitats, com per exemple:

  • Goal average (suma de gols a favor/ en contra).
  • Mitjana de gols per partit de cada equip.
  • Afegir a l'aplicació quin jugador marca els gols.
  • En quin instant es marquen els gols.
  • ...vosaltres mateixes!...