Strings¶
El tipus str¶
El text es representa en objectes de tipus (o classe)
str, string o cadenaPython no té el tipus caràcter: un caràcter és un string de longitud u
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
Vegeu escape-sequences a python:reference/index
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¶
Vegeu String Methods a The Python Standard Library.
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¶
count()>>> adr = "joan@exemple.com" >>> adr_val = adr.count('@') == 1 and '.' in adr and ' ' not in adr >>> adr_val True
Cercar¶
find()index()>>> adr = "joan@exemple.com"
>>> iarroba = adr.find('@') >>> iarroba 4 >>> ipunt = adr.find('.') >>> ipunt 12
>>> nom = adr[:iarroba] >>> nom 'joan'
>>> domini = adr[iarroba+1:] >>> domini 'exemple.com'
>>> pd = adr[iarroba+1:ipunt] >>> pd 'exemple'
substituir¶
replace()>>> nom = "Joan del Riu" >>> domini = "exemple.com"
>>> adr = nom.replace(' ', '_') + '@' + domini >>> adr 'Joan_del_Riu@exemple.com'
strip().>>> 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¶
isalnum()isalpha()isdecimal()isdigit()islower()isnumeric()isprintable()>>> ' '.isprintable() True >>> '\t'.isprintable() False >>> '\n'.isprintable() False
isspace()>>> ' \t\n'.isspace() True
isupper()>>> 'ABC'.isuuper() True >>> 'AbC'.isupper() False
Majúscules i minúscules¶
upper()>>> 'abC 3'.upper() 'ABC 3'
lower()>>> 'abC 3'.lower() 'abc 3'
capitalize()>>> 'alguna paraula més?'.capitalize() 'Alguna paraula més?'
Formatació d'strings¶
Mètode
format().>>> hora = 8 >>> minuts = 30 >>> >>> '{}:{}'.format(hora, minuts) '8:30'