En este artículo, discutiremos cómo formatear una string Python. El formateo de strings es el proceso de infundir cosas en la string dinámicamente y presentar la string. Hay cuatro formas diferentes de realizar el formateo de strings: –
- Formateo con % Operador.
- Formateo con el método de string format().
- Formateo con literales de string, llamados f-strings.
- Formateo con la clase de plantilla de string
Así que veremos la totalidad de las formas mencionadas anteriormente, y también nos centraremos en qué estrategia de formato de string es la mejor.
String de formato usando el operador %
Es el método más antiguo de formateo de strings. Aquí usamos el operador módulo % . El módulo % también se conoce como el «operador de formato de string».
Ejemplo: String de formato usando el operador %
Python3
print("The mangy, scrawny stray dog %s gobbled down" + "the grain-free, organic dog food." %'hurriedly')
Producción:
El perro callejero, sarnoso y flacucho, engulló apresuradamente la comida para perros orgánica y sin granos.
También puede inyectar varias strings a la vez y también puede usar variables para insertar objetos en la string.
Ejemplo: Inyectar múltiples strings usando el operador %
Python3
x = 'looked' print("Misha %s and %s around"%('walked',x))
Producción:
Misha walked and looked around.
‘%s’ se usa para inyectar strings de forma similar a ‘%d’ para números enteros, ‘%f’ para valores de coma flotante, ‘%b’ para formato binario. Para todos los formatos, métodos de conversión, visite la documentación oficial.
Ejemplo:
Python3
print('Joe stood up and %s to the crowd.' %'spoke') print('There are %d dogs.' %4)
Producción:
Joe stood up and spoke to the crowd. There are 4 dogs.
Precisión flotante con el método de marcador de posición:
Los números de coma flotante usan el formato %a.bf . Aquí, a sería el número mínimo de dígitos que debe haber en la string; estos pueden rellenarse con espacios en blanco si el número entero no tiene tantos dígitos. Cerca de esto, bf representa cuántos dígitos se mostrarán después del punto decimal.
Veamos algunos ejemplos:
Ejemplo 1: Precisión de punto flotante usando el operador %
Python3
print('The value of pi is: %5.4f' %(3.141592))
Producción:
The value of pi is: 3.1416
Ejemplo 2:
Python3
print('Floating point numbers: %1.0f' %(13.144))
Producción:
Floating point numbers: 13
Ejemplo 3: puede usar varios tipos de conversión de formato en una sola instrucción de impresión
Python3
variable = 12 string = "Variable as integer = %d \n\ Variable as float = %f" %(variable, variable) print (string)
Variable as integer = 12 Variable as float = 12.000000
Nota: Para obtener más información sobre el formato %, consulte Formato de string en Python usando %
String de formato usando el método format()
El método Format() se introdujo con Python3 para manejar el formateo de strings complejas de manera más eficiente. Los formateadores funcionan colocando uno o más campos de reemplazo y marcadores de posición definidos por un par de llaves { } en una string y llamando a str.format(). El valor que deseamos poner en los marcadores de posición y concatenar con la string pasada como parámetros en la función de formato.
Sintaxis: ‘String aquí {} luego también {}’.format(‘algo1’, ‘algo2’)
Ejemplo: String de formato usando el método format()
Python3
print('We all are {}.'.format('equal'))
Producción:
We all are equal.
El método .format() tiene muchas ventajas sobre el método de marcador de posición:
- Podemos insertar un objeto usando una posición basada en índice:
Python3
print('{2} {1} {0}'.format('directions', 'the', 'Read'))
Producción:
Read the directions.
- Podemos insertar objetos usando palabras clave asignadas:
Python3
print('a: {a}, b: {b}, c: {c}'.format(a = 1, b = 'Two', c = 12.3))
Producción:
a: 1, b: Two, c: 12.3
- Podemos reutilizar los objetos insertados para evitar la duplicación:
Python3
print('The first {p} was alright, but the {p} {p} was tough.'.format(p = 'second'))
Producción:
El primer segundo estuvo bien, pero el segundo segundo fue duro.
Precisión flotante con el método .format():
Sintaxis: {[índice]:[ancho][.precisión][tipo]}
El tipo se puede utilizar con códigos de formato:
- ‘d’ para números enteros
- ‘f’ para números de punto flotante
- ‘b’ para números binarios
- ‘o’ para números octales
- ‘x’ para números octales hexadecimales
- ‘s’ para string
- ‘e’ para punto flotante en un formato de exponente
Ejemplo:
Python3
print('The valueof pi is: %1.5f' %3.141592) # vs. print('The valueof pi is: {0:1.5f}'.format(3.141592))
Producción:
The valueof pi is: 3.14159 The valueof pi is: 3.14159
Nota: para saber más sobre str.format(), consulte la función format() en Python
String formateada usando strings F
PEP 498 introdujo un nuevo mecanismo de formato de strings conocido como interpolación de strings literales o más comúnmente como strings F (debido al carácter f inicial que precede a la string literal). La idea detrás de f-strings es simplificar la interpolación de strings.
Para crear una string f, prefije la string con la letra «f». La string en sí se puede formatear de la misma manera que lo haría con str.format(). F-strings proporciona una forma concisa y conveniente de incrustar expresiones de Python dentro de literales de string para formatear.
Ejemplo: String de formato con F-Strings
Python3
name = 'Ele' print(f"My name is {name}.")
Producción:
My name is Ele.
Esta nueva sintaxis de formato es muy poderosa y fácil. También puede insertar expresiones arbitrarias de Python e incluso puede realizar operaciones aritméticas en él.
Ejemplo: Operaciones aritméticas usando F-strings
Python3
a = 5 b = 10 print(f"He said his age is {2 * (a + b)}.")
Producción:
He said his age is 30.
También podemos usar expresiones lambda en formato f-string .
Ejemplo: Expresiones lambda usando strings F
Python3
print(f"He said his age is {(lambda x: x*2)(3)}")
Producción:
He said his age is 6
Precisión flotante en el método f-String:
Sintaxis: {valor:{ancho}.{precisión}}
Ejemplo: Float Precision usando F-strings
Python3
num = 3.14159 print(f"The valueof pi is: {num:{1}.{5}}")
Producción:
The valueof pi is: 3.1416
Nota: para obtener más información sobre strings f, consulte strings f en Python
Clase de plantilla de string
En el módulo String, Template Class nos permite crear una sintaxis simplificada para la especificación de salida. El formato utiliza nombres de marcador de posición formados por $con identificadores de Python válidos (caracteres alfanuméricos y guiones bajos). Si rodea el marcador de posición con llaves, puede ir seguido de más letras alfanuméricas sin espacios intermedios. Escribir $$crea un solo $escapado:
Ejemplo: string de formato usando la clase de plantilla
Python3
# Python program to demonstrate # string interpolation from string import Template n1 = 'Hello' n2 = 'GeeksforGeeks' # made a template which we used to # pass two variable so n3 and n4 # formal and n1 and n2 actual n = Template('$n3 ! This is $n4.') # and pass the parameters into the # template string. print(n.substitute(n3=n1, n4=n2))
Nota: para obtener más información sobre la clase de plantilla de string, consulte Clase de plantilla de string en Python
¿Qué método de formato de string es el mejor?
f-strings son más rápidas y mejores que %-formatting y str.format() . Las expresiones f-strings se evalúan en tiempo de ejecución, y también podemos incrustar expresiones dentro de f-string, usando una sintaxis muy simple y fácil. Las expresiones dentro de las llaves se evalúan en tiempo de ejecución y luego se juntan con la parte de string de la string f y luego se devuelve la string final.
Nota: Use f-Strings si está en Python 3.6+ y el método.format() si no lo está.
Publicación traducida automáticamente
Artículo escrito por gaurvendra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA