23. Mètodes de la cadena de text

Els mètodes de "cadenes de text <ds <https://docs.python.org/es/3/libry/stdtypes.html#sting-methods>`__ són funcions que funcionen associades a cadenes de text, que s'utilitzen com a argument.

Associats a les cadenes de text, s’anomenen afegint un punt i el nom que hi ha darrere de la cadena de text o darrere de la variable que conté la cadena de text. L’argument de la funció serà la cadena de text que precedeix el punt.

Aquesta és una nova manera d’utilitzar funcions, que s’estudiarà amb més profunditat de la secció dedicada a les classes en programació orientada a Python i Object.

Exemples

>>> 'PaLaBrA'.upper()    # Mayúsculas
    'PALABRA'

>>> 'PaLaBrA'.lower()    # Minúsculas
    'palabra'

>>> 'PALAbra'.swapcase() # Cambia mayúsculas por minúsculas y viceversa
    'palaBRA'

>>> cadena = 'En un lugar de la Mancha'
>>> cadena.title()       # Mayúsculas tipo título
    'En Un Lugar De La Mancha'

>>> cadena.find('lugar') # Busca el texto 'lugar' dentro de la cadena
    6

>>> '  Borra espacios iniciales y finales  '.strip()
    'Borra espacios iniciales y finales'

>>> 'Hola nombre'.replace('nombre', 'Miguel')
    'Hola Miguel'

>>> 'Divide la cadena'.split(' ') # Divide por los espacios
    ['Divide', 'la', 'cadena']

Hi ha molts més mètodes de cadena de text, però de moment amb aquests que s’han enumerat podem fer la major part de les operacions que necessitem.

Judici `` in ''

El judici `` in '' serveix per saber si un text es troba dins d'un altre text

>>> # ¿Se encuentra el texto 'Hola' en 'Hola, mundo'?
>>> 'Hola' in 'Hola, mundo'
    True
>>> 'á' in 'aeiouáéíóú'
    True
>>> 'n' in 'aeiou'
    False

La frase és sensible a la part superior i minúscula, de manera que de vegades pot ser interessant utilitzar el `` `` `

>>> # Falso porque no coinciden las letras 'h' y 'H'
>>> 'hola' in 'Hola, mundo'
    False

>>> # Verdadero porque convertimos el texto a minúsculas
>>> 'hola' in 'Hola, mundo'.lower()
    True

Exercicis

  1. Escriviu una funció que accepti una cadena de text com a argument i retorna la cadena de text en majúscules i en minúscules alternatives. La primera lletra s’ha de capitalitzar, la segona minúscula del tercer capital, la quarta minúscula i, per tant, seguir la seqüència fins al final del text.

    Exemple

    >>> MayusculaMinuscula('Este es un texto de ejemplo')
        'EsTe eS Un tExTo dE EjEmPlO'
    

    Pista

    def MayusculaMinuscula(texto):
        texto_nuevo = ''
        mayuscula = True
        for letra in texto:
            if mayuscula == True:
                mayuscula = ...
                texto_nuevo = texto_nuevo + ...
            else:
                mayuscula = ...
                texto_nuevo = texto_nuevo + ...
        print(...)
    

    La variable `` il·legal 'ha de canviar el valor de veritable a fals i viceversa cada vegada que s'afegeix una nova lletra a la variable' Reefuevo '.

  2. Modifiqueu el programa anterior de manera que només la primera lletra i les cartes que es troben en un índex múltiple de 3 siguin capital.

    Exemple

    >>> MayusculaMinuscula('Este es un texto de ejemplo')
        'EstE eS uN tExtO dE eJemPlo'
    

    Pista

    def MayusculaMinuscula(texto):
        texto_nuevo = ''
        for i in range(len(texto)):
            if i % 3 ... :
                texto_nuevo = texto_nuevo + texto[i]...
            else:
                ...
    
  3. Escriviu un programa que demani una frase a l’usuari que descrigui Lionel Messi sense escriure en aquesta frase cap paraula tabú.

    Les paraules tabú són Argentina, Barcelona, ​​Futbol.

    El programa ha de detectar si s'ha escrit una paraula tabú independentment de la part superior o inferior.

    Pista

    print('Describe a Lionel Messi sin escribir ninguna palabra tabú.')
    print('Las palabras tabú son: Argentina, Barcelona, futbol, PSG')
    descripcion = input('Descripción: ')
    descripcion = ....                    # Transforma en minúsculas
    
    if descripcion.find(...) >= 0:
        print('Error, he encontrado la palabra tabú ... en la descripción')
    elif ... :
        ...
    
  4. Escriviu una funció que accepti una cadena de text com a argument i imprimeix la cadena de text amb totes les vocals substituïdes per una altra vocal que establim en el segon argument. Truqueu a la funció amb diverses frases d’exemple per provar el seu funcionament.

    De manera predeterminada, la vocal de substitució serà la "e".

    Per facilitar el programa, transformarem el text en minúscules.

    Pista

    def reemplaza_vocales(texto, vocal='e'):
        # Transforma en minúsculas
        texto = texto...
    
        # Reemplaza todas las vocales
        texto = texto.replace('a', vocal)
        ...
        ...
        ...
        ...
        print(texto)
    
    reemplaza_vocales('En un lugar de la mancha')