Strings¶
El tipus str¶
Valors literals¶
Valor literal de tipus
str>>> 'Hola!' 'Hola!' >>> "Digues com estàs." 'Digues com estàs.' >>> s = """I les teves amistats, com van?""" >>> s 'I les teves\namistats,\n com van?' >>> print(s) I les teves amistats, com van?
Una seqüència d’escapament permet representar un caràcter de control, però també alguns caràcters imprimibles
seqüència d’escapament
significat
caràcter de control?
\n
salt de línia
Sí
\t
tabulador
Si
\ \
\
No
\'
'
No
\"
"
No
Accés a un caràcter¶
L'operador claudàtor (
[]) permet accedir a un únic caràcter d’un string mitjançant un índexL'índex és l’expressió entre claudàtors i sempre comença per zero.
>>> adr = "joan@exemple.com" >>> type(adr) <class 'str'> >>> adr[0] 'j' >>> adr[4] '@'
Concatenació i repetició¶
Concatenació: operador
+>>> nom = "joan" >>> domini = "exemple.com" >>> adr = nom + '@' + domini >>> adr 'joan@exemple.com'
Repetició: operador
*>>> a = "Bon dia!" >>> b = a*3 >>> b Bon dia!Bon dia!Bon dia! >>> c = a + a + a >>> c Bon dia!Bon dia!Bon dia! >>> b == c True
Exemples d’operacions il·legals.
'a' / 'b' 'a' - 'b' 'a' ** 3
Longitud¶
La funció
len()retorna el nombre de caràcters d’un stringEl darrer element d’un string ocupa l’índex, longitud menys u.
Els índexs negatius comencen a comptar des del final de l'string.
>>> adr = "joan@exemple.com" >>> la = len(adr) >>> la 16 >>> adr[la - 1] 'm' >>> adr[-1] 'm'
String buit o nul.
>>> s = '' >>> type(s) <class 'str'> >>> s '' >>> len(s) 0
Llesques¶
L’operador llesca
string[n:m]obté el substring que comença en el caràcter d’indexninclòs i acaba en el d’índexmexclòs.nes pot ometre: comença en el primer caràctermes pot ometre: va fins al darrer caràcterSi s’ometen tots dos: tot l”string.
Llesques esteses:
string[n:m:p]obté el substring que comença en el caràcter d’índexninclòs i acaba en el d’índexmexclòs amb pasp.>>> adr = "joan@exemple.com"
>>> nom = adr[0:4] >>> nom 'joan' >>> domini = adr[5:16] >>> domini 'exemple.com'
>>> nom = adr[:4] >>> nom 'joan' >>> domini = adr[5:] >>> domini 'exemple.com'
>>> pd = adr[5:12] >>> pd 'exemple'
L’operador in¶
a in b: pertanyaa l”stringb?a not in b:ano pertany a l”stringb?>>> adr = "joan@exemple.com"
>>> '@' in adr True >>> ' ' not in adr True >>> not (' ' in adr) True
>>> adr_val = '@' in adr and '.' in adr and ' ' not in adr >>> adr_val True
Comparació d’strings¶
Operadors:
==,!=,<,>,<=,>=.Comparacions en ordre alfabètic
>>> x, y = 'hipopòtam', 'hipotàlem'
>>> x == y False >>> x != y True >>> x < y True >>> x > y False
>>> 'a' == 'A' False >>> 'a' < 'A' False >>> 'a' != 'à' True >>> 'a' > 'à' False
>>> '8' < '10' False >>> '08' < '10' True
Els strings són immutables¶
Un string no canvia mai.
Mètodes d’strings¶
A la pràctica, un mètode es comporta com una funció, però amb una sintaxi de crida diferent:
>>> 'maryland'.capitalize() 'Maryland' >>> "what's all this, then, amen?".title() "What'S All This, Then, Amen?" >>> 'How to Center Text Using Python'.center(70) ' How to Center Text Using Python ' >>> 'angola'.upper() 'ANGOLA'
Els mètodes d’string formen part dels objectes string, i s’invoquen (es criden) aplicant l’operador punt (.) després de l’objecte seguit pel nom del mètode.
Comptar¶
-
>>> adr = "joan@exemple.com" >>> adr_val = adr.count('@') == 1 and '.' in adr and ' ' not in adr >>> adr_val True
Cercar¶
substituir¶
-
>>> nom = "Joan del Riu" >>> domini = "exemple.com"
>>> adr = nom.replace(' ', '_') + '@' + domini >>> adr 'Joan_del_Riu@exemple.com'
-
>>> nom_b = " \t Joan del Riu\n" >>> nom_b ' \t Joan del Riu\n' >>> print(nom_b) Joan del Riu
>>> nom = nom_b.strip() >>> nom 'Joan del Riu'
>>> adr = nom.replace(' ', '_') + '@' + domini >>> adr 'Joan_del_Riu@exemple.com'
>>> domini_b = " \n exemple.com " >>> domini_b ' \n exemple.com ' >>> print(domini_b) exemple.com
>>> domini = domini_b.strip() >>> domini 'exemple.com'
Classificar¶
-
>>> ' '.isprintable() True >>> '\t'.isprintable() False >>> '\n'.isprintable() False
-
>>> ' \t\n'.isspace() True
-
>>> 'ABC'.isuuper() True >>> 'AbC'.isupper() False
Majúscules i minúscules¶
-
>>> 'abC 3'.upper() 'ABC 3'
-
>>> 'abC 3'.lower() 'abc 3'
-
>>> 'alguna paraula més?'.capitalize() 'Alguna paraula més?'
Formatació d'strings¶
Mètode
format().>>> hora = 8 >>> minuts = 30 >>> >>> '{}:{}'.format(hora, minuts) '8:30'
Exercicis¶
fi:examens/curs2022-2023/1/L1/G20/codi
fi:examens/curs2022-2023/1/L1/G30/encripta
fi:examens/curs2022-2023/1/L1/G60/aminoacids