Replace
str.replace(old, new[, count])
Devuelve una cadena reemplazando todas las apariciones de la subcadena ‘old‘ reemplazadas por la nueva ‘new‘. Si se envía el parámetro count, solo se reemplazan las primeras count ocurrencias de la subcadena old. Por ejemplo:
>>> "Azul Web".replace("Web", "School")
'Azul School'
>>> "Azul Web Web Web".replace("Web", "School", 2)
'Azul School School Web'
- Si utilizamos la cadena “Azul Web” y el método replace con los argumentos “Web” y “School”, vemos que devuelve la cadena “Azul School”, reemplazando la coincidencia de “Web” por “S chool”.
- Si repetimos 3 veces la palabra web y en replace enviamos 2 de argumento para count, vemos que que solo se reemplazan las primeras 2 ocurrencias.
Format
str.format(*args, **kwargs)
De los más utilizados para cadenas, realiza una operación para formatear una cadena. Cuando una cadena utiliza este método, puede tener texto literal o campos de reemplazo delimitados por llaves {}. Cada campo de reemplazo puede ser el índice numérico de la posición de un argumento o el nombre de la clave de un argumento.
Format devuelve una cadena donde cada campo de reemplazo se reemplaza con la conversión a str del argumento correspondiente. Por ejemplo:
>>> 'El resultado de {0}*{1} es {2}.'.format(2,5,2*5)
'El resultado de 2*5 es 10.'
- Creamos una cadena indicando campos de reemplazo con las llaves, y cada una de ellas posee la posición del argumento con el que debe ser reemplazado.
- Aplicamos format pasando como argumento los enteros 2, 5 y 2*5.
- Como vemos, al reemplazar se convierte el valor entero a una cadena y es sustituida en cada una de los campos de reemplazo entre llaves.
- El valor {0} es el primer argumento (2), {1} es el segundo (5) y {2} es el tercero (2*5).
Además de esto, también se puede definir la forma en que debe sustituirse el campo de reemplazo. Para ello, debes utilizar el símbolo dos puntos (:) para marcar el comienzo de una especificación de formato. Por ejemplo:
>>> '{0}'.format(3/7)
'0.42857142857142855'
>>> '{0:.1f}'.format(3/7)
'0.4'
- creamos una cadena con un campo de reemplazo sin indicar un formato y pasamos 3/7 como argumento de format y vemos que se imprimen todos los caracteres del valor decimal.
- Creamos otra cadena con un campo de reemplazo especificando el formato ‘.1f’ luego de los 2 puntos.
- ‘.1‘ significa que se redondee a la décima más próxima, es decir que se muestra únicamente un dígito después del punto decimal.
- El especificador ‘f‘ indica que el número debe mostrarse con formato de punto flotante y no como notación exponencial u otra representación numérica.
Formar_map
str.format_map(mapping)
Es similar a format, a diferencia de que los campos de reemplazo deben indicar los nombres de claves incluidas en el parámetro mapping. Por ejemplo:
>>> claves = {'prefijo': 'https://www.', 'sufijo':'.net'}
>>> '{prefijo}azulschool{sufijo}'.format_map(claves)
'https://www.azulschool.net'
- Creamos el diccionario con las claves prefijo y sufijo con los valores correspondientes a un sitio web.
- Aplicamos format_map pasando el diccionario claves como argumento y especificando como campos de reemplazo los nombres de las claves del diccionario (prefijo y sufijo).
Encoding
Encode
str.encode(encoding="utf-8", errors="strict")
Tal como vimos, el tipo str en Python está destinado a representar texto legible por humanos y puede contener cualquier caracter Unicode. A diferencia de esto último, el tipo bytes representa datos binarios o secuencia de bytes sin procesar y no tienen una codificación puntual.
El método encode es utilizado para codificar una cadena en una secuencia de bytes. La codificación por defecto es ‘utf-8’, pero siempre es más seguro especificarlo. Por ejemplo:
>>> 'El niño está en la escuela'.encode('utf-8')
b'El ni\xc3\xb1o est\xc3\xa1 en la escuela'
- Utilizamos el método encode para la cadena ‘El niño está en la escuela’ pasando ‘utf-8’ como argumento y vemos que los caracteres ‘ñ’ y ‘á’ son reemplazados por la secuencia de bytes \xc3\xb1 y \xc3\xa1 respectivamente.
- Si recuerdas, cuando hablamos de las codificaciones Unicode, en utf-8 los caracteres pertenecientes a la tabla ASCII son guardados en un solo byte (por ello que se ven igual que en la cadena).
- Caso contrario, aquellos que no pertenecen a esta tabla (como la ñ, ó, ü, etc) son guardados en 2 bytes, por ello los valores \xc3\xb1 y \xc3\xa1.
Decode**
bytes.decode(encoding="utf-8", errors="strict")
bytearray.decode(encoding="utf-8", errors="strict")
Devuelve una cadena decodificada de los bytes dados, donde la codificación predeterminada es ‘utf-8’. Se pueden dar errores para establecer un esquema diferente de manejo de errores y el valor predeterminado para los errores es ‘strict’, lo que significa que los errores de codificación elevan una excepción UnicodeError. Otros posibles valores son ‘ignore’, ‘replace’ y cualquier otro nombre registrado con codecs.register_error(). Para obtener una lista de posibles codificaciones, consulte la sección Codificaciones estándar.