El método integrado format () devuelve una representación formateada del valor dado controlado por el especificador de formato.
La format()
función es similar al método de formato de cadena. Internamente, ambos métodos llaman al __format__()
método de un objeto.
Si bien la format()
función incorporada es una implementación de bajo nivel para formatear un objeto utilizando __format__()
internamente, la cadena format()
es una implementación de nivel superior capaz de realizar operaciones de formateo complejas en múltiples cadenas de objetos también.
La sintaxis de format () es:
formato (valor (, especificación_formato))
format () Parámetros
La format()
función toma dos parámetros:
- valor : valor que debe formatearse
- format_spec : la especificación sobre cómo se debe formatear el valor.
El especificador de formato podría tener el formato:
((relleno) alinear) (signo) (#) (0) (ancho) (,) (. precisión) (tipo) donde, las opciones son relleno :: = cualquier carácter alinear :: = "" | "=" | signo "^" :: = "+" | "-" | "" ancho :: = precisión de entero :: = tipo de entero :: = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Visite estos enlaces para obtener más información sobre los tipos de formato y la alineación.
Valor de retorno del formato ()
La format()
función devuelve una representación formateada de un valor dado especificado por el especificador de formato.
Ejemplo 1: formato de número con formato ()
# d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))
Salida
123 123,456790 1100
Ejemplo 2: formato de número con relleno, alineación, signo, ancho, precisión y tipo
# integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))
Salida
* + 1,234 0123.4570
Aquí, al formatear el entero 1234
, hemos especificado el especificador de formato *>+7,d
. Entendamos cada opción:
*
- Es el carácter de relleno que llena los espacios vacíos después de formatear>
- Es la opción de alineación correcta que alinea la cadena de salida a la derecha+
- Es la opción de signo que obliga a firmar el número (con un signo a su izquierda)7
- Es la opción de ancho que obliga al número a tomar un ancho mínimo de 7, otros espacios se llenarán con carácter de relleno,
- Es el operador de miles que coloca una coma entre todos los miles.d
- Es la opción de tipo que especifica que el número es un entero.
Al formatear el número de punto flotante 123.4567
, hemos especificado el especificador de formato ^-09.3f
. Estos son:
^
- Es la opción de alineación central que alinea la cadena de salida con el centro del espacio restante-
- Es la opción de signo que obliga solo a los números negativos a mostrar el signo0
- Es el personaje que se coloca en lugar de los espacios vacíos.9
- Es la opción de ancho que establece el ancho mínimo del número en 9 (incluido el punto decimal, la coma de miles y el signo).3
- Es el operador de precisión que establece la precisión del número flotante dado en 3 lugaresf
- Es la opción de tipo que especifica que el número es un flotante.
Ejemplo 3: uso de format () anulando __format __ ()
# custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
Salida
23
Aquí, hemos anulado el __format__()
método de la clase Person
.
Ahora acepta un format
parámetro y devuelve 23 si es igual a 'age'
. Si no se especifica ningún formato, None
se devuelve.
La format()
función se ejecuta internamente Person().__format__("age")
para devolver 23.