La salida que se muestra como resultado de un programa debe organizarse para que sea legible y comprensible. Las strings de salida se pueden imprimir y formatear de varias maneras, como se indica a continuación.
- Usando imprimir()
- Uso de especificadores de formato.
- Usando el método format() .
- Uso de literal de string con formato (f-string) .
Este artículo cubre los primeros tres métodos dados anteriormente.
Usando imprimir()
La función print() se utiliza para mostrar cualquier mensaje o resultado de los procesos realizados en Python. Esta función se puede utilizar para imprimir strings o cualquier objeto. Pero, antes de imprimir el objeto que no es de tipo string, print() lo convierte en una string. La string se puede formatear con los parámetros de este método o usando el resto de los métodos que se tratan en este artículo. El parámetro separador ( sep ) de esta función puede ayudar a mostrar el símbolo deseado entre cada elemento que se imprime.
Ejemplo: imprimir los intercambios en cada iteración mientras se organiza una lista en orden ascendente
Python3
# initialize the list li = [1, 4, 93, 2, 3, 5] print("Swaps :") # loop for arranging for i in range(0, len(li)): for j in range(i+1, len(li)): # swap if i>j if li[i] > li[j]: temp = li[j] li[j] = li[i] li[i] = temp # print swapped elements print(li[i], li[j], sep="<--->") print("Output :", li)
Swaps : 2<--->4 4<--->93 3<--->4 4<--->93 5<--->93 Output : [1, 2, 3, 4, 5, 93]
Uso de especificadores de formato
Los especificadores de formato son los que usamos en lenguajes como la programación C. Python no tiene un printf() como en C, pero aquí se proporciona la misma funcionalidad. El operador de módulo (‘%’) está sobrecargado por la clase de string para formatear la salida. El operador % formatea el conjunto de variables contenidas dentro de una tupla. Si se enstringn varios especificadores de formato, el primer especificador actúa sobre el elemento 0 de la tupla , el segundo actúa sobre el elemento 1 de la tupla y así sucesivamente. Los especificadores de formato se dan en la siguiente tabla.
Especificador de formato |
Descripción |
---|---|
%s |
Especifica la string |
%C |
Especifica un solo carácter |
%d |
Especifica el entero |
%F |
Especifica el flotador. Cualquier número de dígitos puede estar presente después del punto decimal |
%<espacio>.<número>f |
Especifica el flotador. <espacio> denota el número de espacios para agregar antes de imprimir el número. <número> denota el número de dígitos que deben estar presentes después del punto decimal. |
%x / %X |
Especifica la representación hexadecimal del valor. |
%o |
Especifica la representación octal de un valor. |
%e / %e |
Especifica los números flotantes en formato exponencial |
%g / %G |
Similar a %e/%E. Especifica el formato exponencial solo si el exponente es mayor que -4 |
Ejemplo:
Python3
# string st = "This is a string" print("String is %s" % (st)) # single character ch = 'a' print("Single character is %c" % (ch)) # integer num = 45 print("The number is %d" % (num)) # float without specified precision float1 = 34.521094 print("The float is %f" % (float1)) # float with precision float2 = 7334.34819560 print("The float with precision is %.3f" % (float2)) # multiple specifiers in print() # Hexa decimal representation print("The hexadecimal form of %d is %x" % (num, num)) # octal representation print("The octal form of %d is %o" % (num, num)) # exponential form print("The exponential form of %f is %e" % (float1, float1)) # exponential form with appended space print("The exponential form of %f is %10.3g" % (float2, float2)) # exponent less than -4 with appended space float3 = 3.14 print("The exponential form of %.2f is %10.3g" % (float3, float3))
String is This is a string Single character is a The number is 45 The float is 34.521094 The float with precision is 7334.348 The hexadecimal form of 45 is 2d The octal form of 45 is 55 The exponential form of 34.521094 is 3.452109e+01 The exponential form of 7334.348196 is 7.33e+03 The exponential form of 3.14 is 3.14
Usando el método format()
format() es uno de los métodos en la clase de string que permite la sustitución de los marcadores de posición con los valores a formatear.
Sintaxis: { }…..{ } . formato (argumentos)
Parámetros:
- { }: marcadores de posición para contener índices/claves. Se permite colocar cualquier número de marcadores de posición.
- args – Tupla de valores a formatear.
Los parámetros se clasifican en dos tipos, a saber:
- Posicional: el índice del objeto a formatear se escribirá dentro de los marcadores de posición.
- Palabra clave : los parámetros serán del tipo clave = valor . Las claves se escribirán dentro de los marcadores de posición.
El formateo específico del tipo también se puede realizar con este método. Los objetos de fecha y hora, los números complejos también se pueden formatear con este método.
Ejemplo:
Python3
# complex number c = complex(5+9j) # without format() method print("Without format() - Imaginary :", str(c.imag), " Real :", str(c.real)) # with format() method print("With format() - Imaginary : {} Real : {}".format(c.imag, c.real))
Without format() - Imaginary : 9.0 Real : 5.0 With format() - Imaginary : 9.0 Real : 5.0
El método format() se puede anular con la ayuda de clases y métodos dunder .
Python3
# class for holding person's details class person: # constructor def __init__(self, name, age, des): self.name = name self.age = age self.des = des # overriding format() def __format__(self, f): if f == 'name': return "I am "+self.name if f == 'age': return "My age is "+str(self.age) if f == 'des': return "I work as "+self.des p = person('nisha', 23, 'manager') print("{:name}, {:age}".format(p, p)) print("{:des}".format(p))
I am nisha, My age is 23 I work as manager
Usando f-string
Este método se introdujo en la versión Python 3.6. Esto es mucho más fácil que usar un especificador de formato o un método format(). Las strings f son expresiones que se evalúan en el tiempo de ejecución y están formateadas por el método __format__() . Para formatear una string usando la string f, la expresión de formato debe escribirse entre comillas precedida por ‘f’/’F’ .
Sintaxis: f “<texto> {marcador de posición} <texto>” o F”<texto> {marcador de posición} <texto>”
Ejemplo 1 :
El nombre y la edad son variables. Se pueden formatear e imprimir con la ayuda de f-string colocando la variable en los marcadores de posición apropiados. Los marcadores de posición son solo las llaves que se encuentran dentro de los textos.
Python3
name = "Rinku" age = 20 print(f"Hi! my name is {name} and my age is {age}")
Hi! my name is Rinku and my age is 20
Ejemplo 2:
Las expresiones también se pueden evaluar y mostrar utilizando este método de string f.
Python3
a = 5 b = 6 print(F"Addition : {a+b}") print(F"Subtraction : {a-b}") print(F"Multiplication : {a*b}") print(F"Division without roundoff : {a/b}") print(F"Division with roundoff : {round(a/b,3)}")
Addition : 11 Subtraction : -1 Multiplication : 30 Division without roundoff : 0.8333333333333334 Division with roundoff : 0.833
Ejemplo 3:
Incluso las funciones se pueden llamar desde los marcadores de posición f-string. Una función para evaluar la expresión a 2 + 3b 2 + ab se define y llama dentro del marcador de posición.
Python3
# f function to evaluate expression def exp_eval(a, b): ans = (a*a)+(3*(b*b))+(a*b) return ans # values to be evaluated a = 2 b = 4 # formatting print(f"The expression a**2+3b**2+(a*b) = {exp_eval(a,b)}")
The expression a**2+3b**2+(a*b) = 60
Publicación traducida automáticamente
Artículo escrito por erakshaya485 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA