Python Sprintf: la cadena formateada en Python

Zeeshan Afridi 21 junio 2023
  1. Cadena formateada en Python
  2. Diferentes métodos de cadena formateada en Python
Python Sprintf: la cadena formateada en Python

No existe la función integrada sprintf exacta para imprimir cadenas formateadas, pero gracias a Python, existen numerosos métodos para imprimir cadenas formateadas.

En este artículo, cubriremos cuatro funciones similares a sprintf en Python, incluido el operador %, format(), f-string y una función sprintf definida por el usuario, así que profundicemos en él.

Cadena formateada en Python

El formato de cadenas también se aborda como interpolación de cadenas, donde podemos insertar un valor personalizado, una cadena o una variable en el texto predefinido.

Es uno de los métodos preferidos y legibles para imprimir cadenas, incluidos algunos valores o resultados, lo que nos brinda la funcionalidad similar a sprintf en Python.

También podemos usar expresiones matemáticas en las cadenas formateadas. Por ejemplo, digamos que tenemos dos valores y queremos agregarlos para imprimir un resultado final.

Ejemplo de código:

x = 3
y = 4
print(f"The sum of {x} and {y} = {x+y}")  # formatted string
print("The sum of", x, "and", y, "=", (x + y))  # normal string

Producción :

The sum of 3 and 4 = 7
The sum of 3 and 4 = 7

Como podemos ver, el resultado de lo anterior es el mismo, pero la cadena normal es muy chatarra; sin embargo, la cadena formateada es más legible y es fácil para los desarrolladores escribir código usando la cadena formateada.

Diferentes métodos de cadena formateada en Python

Pythons es un lenguaje de programación de propósito general con una comunidad diversa de código abierto y soporte continuo que ofrece soluciones y funcionalidades a los desarrolladores para lograr cualquier tarea de muchas maneras, según la naturaleza del trabajo y el escenario particular.

De manera similar al uso de cadenas formateadas, tenemos diferentes métodos que podemos usar para imprimir cadenas de formato que discutiremos en este artículo una por una.

Cadena formateada utilizando el operador %

Es una de las técnicas antiguas para cadenas formateadas en Python y otros lenguajes de programación. En Python, las cadenas tienen una operación integrada a la que se puede acceder mediante el operador %, lo que nos permite formatear cadenas fácilmente, de forma similar a springf en C y C++.

Ejemplo de código:

name = "Zeeshan Afridi"
msg = "Hey! developers, it's %s." % name
print(msg)

Producción :

Hey! developers, it's Zeeshan Afridi.

En el código anterior, %s avisa al compilador que estoy esperando una cadena al final y, como se demostró, hemos especificado la cadena con el operador % como %name.

Existen diferentes especificadores de formato para diferentes tipos de datos en el formato de cadena.

Especificador de formato Tipo de datos Producción
%c carbonizarse Muestra un caracter Unicode
%d entero Entero
%f Punto flotante Número decimal
%o entero (octal) número octal
%s Cadena da una cuerda
%t Fecha y hora datos y tiempo

Cadena formateada utilizando la función format() en Python

El formato() es un nuevo método para formatear cadenas en Python, y se introdujo en Python 3.

Es un nuevo estilo para dar formato a cadenas donde no necesitamos recordar los especificadores de formato y su secuencia en la cadena; en su lugar, podemos usar el formato() al final de la cadena y proporcionar los argumentos en las posiciones especificadas.

Ejemplo de código:

program = "BSSE"
cgpa = 3.2
student = "Hi! I am a student of {}, and my CGPA is {}".format(program, cgpa)
print(student)

Producción :

Hi! I am a student of BSSE, and my CGPA is 3.2

En el programa anterior, hemos especificado las posiciones en las que queríamos insertar un valor con corchetes {}, y al final de la cadena estudiante, hemos utilizado la función .format() y le hemos dado dos argumentos en consecuencia.

Cadena literal con formato f-string en Python

Literal de cadena formateada también se conoce como f-string, y se incluye en Python 3.6 como un nuevo método de formato de cadena cuya sintaxis es más legible y directa.

f-string tiene una característica excelente y única que los otros métodos estaban perdiendo, y podemos definir las expresiones y valores dentro de la cadena.

No hay necesidad de usar .format() al final de la cadena. Veamos un ejemplo de f-String en Python a continuación.

Ejemplo de código:

my_fav_lang = "Python"
experience = 2

zeeshan = f"I love to code in {my_fav_lang}, and I have {experience} year experience in Python programming."
print(zeeshan)

Producción :

I love to code in Python, and I have 2 years of experience in Python programming.

¡Guau! el f-string es súper fácil y legible. A diferencia de los otros dos métodos, no necesitamos usar ningún otro método o comas, solo usamos f como prefijo para la cadena, y estamos listos para comenzar.

Cómo usar sprintf en Python

sprintf significa cadena de impresión; básicamente, es una función integrada en el lenguaje de programación C y C++ para imprimir una cadena formateada, y almacena la salida en un búfer char especificado en sprintf(). Y hay formas diferentes pero similares en Python.

El sprintf no es una función definida por el usuario en Python, pero podemos usar la instancia StringIO como un búfer. Y a diferencia del sprintf, debemos pasar una cadena al buf.write y el método de formateo. El % se utiliza para el formato de cadena en este caso.

Ejemplo de código:

import io
from io import StringIO


def sprintf(buf, fmt, *args):
    buf.write(fmt % args)


age = 24
fav_color = "Blue"

buf = io.StringIO()
sprintf(buf, "I'm %d years old, and my favourite colour is %s!", age, fav_color)

print(buf.getvalue())

Producción :

I'm 24 years old, and my favourite colour is Blue!

Si obtiene algún ImportError para este programa, instale las dependencias requeridas desde su interfaz de línea de comandos (CLI).

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python String