Treballant amb text
Una cadena de text (en anglès, string) és una seqüència de caràcters.
Aprendràs a tallar un text i a transformar-lo. També sabràs com accedir als caràcters que el formen.
Com podem accedir a un caràcter
Pots agafar un caràcter concret escrivint el seu índex entre claudàtors [ ]. El primer caràcter sempre té índex 0:
Els índexs negatius compten des del final: -1 és l'últim caràcter, -2 el penúltim, i així successivament:
Pots modificar el codi següent, per explorar com funciona:
Llargada d'un text
La funció len() retorna el nombre de caràcters d'un text, amb els espais també comptats:
Retallar un fragment de text
En lloc d'agafar un sol caràcter, pots agafar un tros del text indicant inici i fi separats per :.
Atenció, tingues en compte que l'últim caràcter serà fi - 1
El tercer valor opcional és el pas. Un pas de -1 recorre el text al revés — una manera còmoda d'invertir una cadena:
Experimenta retallant la teva pròpia cadena:
Mètodes habituals de text
Els textos tenen mètodes propis que es criden amb el signe punt, d'aquesta manera: text.metode().
Cap d'ells modifica el text original, sinó que semper retornen un text nou.
Amb aquests exemples es veurà més clar:
.upper(): converteix un text a majúscules
.lower(): converteix un text a minúscules
.strip(): elimina els espais en blanc (i salts de línia) dels extrems.
Això és molt útil per a poder netejar l'entrada d'una persona usuària:
.replace(vell, nou): substitueix totes les aparicions d'una subcadena per una altra:
.split() — divideix el text en una llista de paraules, separant pels espais (o per un altre separador que li passis):
Comprovar si un text conté, a dins, una informació que nosaltres proporcionem
L'operador in comprova si una subcadena és dins d'un text. Retorna True o False:
Els mètodes .startswith() i .endswith() comproven si un text comença o acaba d'una manera concreta:
Recórrer la informació d'un text fent servir la instrucció for
Pots iterar directament sobre els caràcters d'un text amb for c in text:, igual que faries amb una llista de nombres:
En aquest exemple que veuràs, comptarem quants espais té una frase:
Errors típics
1. IndexError: accedir a un índex que no existeix — si el text té 5 caràcters, l'índex vàlid va de 0 a 4.
2. TypeError: intentar modificar un caràcter — els textos a Python són immutables: no es pot canviar un caràcter de forma directa. Per modificar-ne una part, has de construir un text nou (per exemple, amb .replace() o concatenació):
3. Oblidar que .split() retorna una llista, no una cadena — si intentes fer un slice o cridar un mètode de text sobre el resultat de .split(), obtindràs un error:
Exercici
a, e, i, o, u) conté. El programa ha de funcionar tant amb majúscules com amb minúscules.
Per exemple, amb la paraula Universitat la sortida ha de ser 5, i amb hola, ha de ser 2.
Pista: converteix la paraula a minúscules amb .lower() abans de comptar, i recorre-la caràcter a caràcter amb for. (per simplificar, prova el teu programa amb paraules que no duen vocals accentuades.)
Resum
text[i]accedeix al caràcter de la posiciói; els índexs negatius compten des del final (text[-1]és l'últim).len(text)retorna el nombre de caràcters del text.text[inici:fi]retorna un fragment (la fi no s'inclou);text[::-1]inverteix la cadena.- Els mètodes
.upper(),.lower(),.strip(),.replace()i.split()retornen un text nou sense modificar l'original. incomprova si una subcadena és dins d'un text;.startswith()i.endswith()comproven els extrems.- Pots recórrer cada caràcter d'un text amb
for c in text:, igual que passa amb una seqüència de nombres.