Strings ======= Conceptes ~~~~~~~~~ - :term:`tipus` :term:`seqüència` - tipus :ref:`cadena (de caràcters) ` o *string* (:class:`str`) - :term:`valor literal` de tipus :class:`str`, string buit - :term:`funció` de conversió: :class:`int` , :class:`float`, :class:`str` - :ref:`operacions comunes de seqüències `: * :term:`funcions predefinides `: :func:`len`, :func:`max`, :func:`min` * operador de :term:`concatenació` (``+``) i repetició (``*``) * :term:`índex`, accés per índex * :term:`llesca` (*slice*) (``[:]``) * operador de pertinença: ``in``, ``not in`` - :term:`ordre lexicogràfic` i :term:`alfabètic ` - :term:`operador relacional`: ``==, !=, <, <=, >, >=`` - :term:`objecte` :term:`mutable` i :term:`immutable` - :term:`mètode`: * comú a seqüències: :meth:`~str.count` * específic d'strings: :meth:`~str.replace`, :meth:`~str.find`, :meth:`~str.strip`, :meth:`~str.lower`, :meth:`~str.upper`, :meth:`~str.islower`, :meth:`~str.isupper`, :meth:`~str.isalpha`, :meth:`~str.isdigit`, :meth:`~str.isspace` - :term:`caràcter`, :term:`seqüència d'escapament`, :term:`caràcter de control` - :term:`iteració` d'strings, :term:`sentència` ``for`` Exemples ~~~~~~~~ .. code-block:: python3 :caption: Valors literals de tipus :class:`str`. '', 'hola', "hola", 'AeIoU' .. code-block:: python3 :caption: Seqüències d'escapament. '\n' (salt de línia) '\t' (tabulador) .. code-block:: pycon :caption: Funcions predefinides. >>> len('longitud') # longitud 8 >>> max('fonaments') 't' >>> min('fonaments') 'a' .. code-block:: pycon :caption: Conversions. >>> str(352) # conversió a str '352' >>> str(3.52) '3.52' >>> print("el resultat és") el resultat és >>> int('352') # conversió a int 352 >>> float('3.52') # conversió a float 3.52 .. code-block:: pycon :caption: Operacions d'strings. >>> 'hola' + 'que tal' # concatenació 'holaque tal' >>> 'hola!' * 2 'hola!hola!' >>> s = 'fonaments' >>> s[2] # indexació 'n' >>> s[-1] 's' >>> s[3:7] # talls o llesques(slices) 'amen' >>> s[:3] 'fon' >>> s[3:] 'aments' >>> 'a' in s # pertinença True >>> 'amen' in s True >>> 'ae' in s False >>> 'F' not in s True >>> 'a' not in s False .. code-block:: pycon :caption: Operadors relacionals >>> x, y = 'serradora', 'serrar' >>> x == y False >>> x != y True >>> x < y True >>> x > y False .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.count`. >>> numn = s.count('n') # comptar aparicions d'elements >>> numn 2 .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.replace`. >>> s2 = s.replace('n','x') # substituir aparicions d'un str per un altre >>> s2 'foxamexts' >>> s3 = s.replace('n','') >>> s3 'foamets' >>> s3 = s.replace('aments','tdelgat') >>> s3 'fontdelgat' .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.find`. >>> pos = s3.find('t') # trobar posició de la primera aparició >>> pos 3 >>> pos = s3.find('x') >>> pos -1 .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.strip`. >>> linia = '\t dada1 dada2 \n' >>> s = linia.strip() # elimina espais en blanc (incloent salts de línia i tabuladors) al principi i al final d’una cadena >>> s 'dada1 dada2' .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.upper`, :meth:`~str.lower`. >>> s4 = 'hola' >>> s5 = s4.upper() # conversió a majúscules >>> s5 'HOLA' >>> s6 = s5.lower() # conversió a minúscules >>> s6 'hola' .. code-block:: pycon :caption: Mètodes d'strings: :meth:`~str.isupper`, :meth:`~str.islower`, :meth:`~str.isdigit`, :meth:`~str.isalpha`, :meth:`~str.isspace`. >>> s5.isupper() # comprovació si és majúscula True >>> s5[0].isupper() True >>> s6[0].islower() # comprovació si és minúscula True >>> s7 = '123,un,dos,tres' >>> s7[0].isdigit() # comprovació si és dígit True >>> s7[5].isalpha() # comprovació si és alfabètic True >>> ' \t\n'.isspace() True .. code-block:: pycon :caption: Sentència for. >>> s = 'hola' >>> for car in s: ... print(car) h o l a Exercicis del tema ~~~~~~~~~~~~~~~~~~ .. toctree:: :glob: :maxdepth: 1 */index Referències ~~~~~~~~~~~~~~~~~~~~ .. rubric:: Principals - Capítol :doc:`toni:strings/index` de :doc:`toni:index` .. - Capítol 7 del llibre `Introducció a la programació `__ - Capítol :doc:`howto:strings` del llibre :doc:`howto:index` .. rubric:: Complementàries - :ref:`python:string-methods` a :doc:`python:library/index`