in

Método Python String format () – GeeksforGeeks

gfg 200x200 min

Función de formato Python () se ha introducido para manejar el formato de cadenas complejas de manera más eficiente. Este método de la clase de cadena incorporada proporciona funcionalidad para sustituciones de variables complejas y formateo de valores. Esta nueva técnica de formato se considera más elegante. La sintaxis general del método format () es string.format (var1, var2,…)

Usando un solo formateador

Los formateadores funcionan colocando uno o más campos de reemplazo y marcadores de posición definidos por un par de llaves {} en una cadena y llamando al str.format (). El valor que deseamos poner en los marcadores de posición y concatenar con la cadena pasada como parámetros a la función de formato.

Sintaxis: {} .format (valor)

Parámetros:
(valor) : Puede ser un entero, una constante numérica de coma flotante, una cadena, caracteres o incluso variables.
Tipo de retorno: Devuelve una cadena formateada con el valor pasado como parámetro en la posición del marcador de posición.

Ejemplo 1: Demostración simple de formato ()

Python3

print("{}, A computer science portal for geeks."

      .format("GeeksforGeeks"))

str = "This article is written in {}"

print(str.format("Python"))

print("Hello, I am {} years old !".format(18))

Producción :

GeeksforGeeks, A computer science portal for geeks.
This article is written in Python
Hello, I am  18 years old!

Usando múltiples formateadores

Se pueden utilizar varios pares de llaves al formatear la cadena. Digamos que si se necesita otra sustitución de variable en la oración, se puede hacer agregando un segundo par de llaves y pasando un segundo valor al método. Python reemplazará los marcadores de posición con valores en pedido.

Sintaxis: {} {} .format (valor1, valor2)

Parámetros: (valor1, valor2): Pueden ser enteros, constantes numéricas de coma flotante, cadenas, caracteres e incluso variables. La única diferencia es que el número de valores pasados ​​como parámetros en el método format () debe ser igual al número de marcadores de posición creados en la cadena.

Errores y excepciones:

IndexError: Ocurre cuando la cadena tiene un marcador de posición adicional y no le pasamos ningún valor en el método format (). Python generalmente asigna los marcadores de posición con el índice predeterminado en orden como 0, 1, 2, 3…. para acceder a los valores pasados ​​como parámetros. Entonces, cuando encuentra un marcador de posición cuyo índice no tiene ningún valor pasado como parámetro, arroja IndexError.

Ejemplo 2: Formato de cadena de Python () Método IndexError

Python3

my_string = "{}, is a {} {} science portal for {}"

print(my_string.format("GeeksforGeeks", "computer", "geeks"))

Producción :

IndexError: tuple index out of range

Ejemplo 3: Formato de cadena de Python () con múltiples marcadores de posición

Python3

my_string = "{}, is a {} science portal for {}"

print(my_string.format("GeeksforGeeks", "computer", "geeks"))

print("Hi ! My name is {} and I am {} years old"

      .format("User", 19))

print("This is {} {} {} {}"

      .format("one", "two", "three", "four"))

Producción :

GeeksforGeeks, is a computer science portal for geeks
Hi! My name is User and I am 19 years old
This is one two three four

Formateo de cadenas mediante secuencias de escape

Puede utilizar dos o más caracteres especialmente designados dentro de una cadena para formatear una cadena o ejecutar un comando. Estos caracteres se denominan secuencias de escape. Una secuencia de Escape en Python comienza con una barra invertida (). Por ejemplo, n es una secuencia de escape en la que el significado común de la letra n se escapa literalmente y se le da un significado alternativo: una nueva línea.

Secuencia de escape Descripción Ejemplo
norte Rompe la cuerda en una nueva línea print (‘Diseñé esta rima para explicar a su debido tiempo nTodo lo que sé’)
t Agrega una pestaña horizontal print (‘El tiempo es algo valioso’)
\ Imprime una barra invertida print (‘Míralo volar \ mientras el péndulo se balancea’)
Imprime una sola cita print (‘No importa cuánto lo intentes’)
» Imprime una cita doble print (‘Es tan ”irreal ”’)
a hace un sonido como una campana imprimir (‘ a’)

Formateadores con argumentos posicionales y de palabras clave

Cuando los marcadores de posición {} están vacíos, Python reemplazará los valores pasados ​​a través de str.format () en orden.

Los valores que existen dentro del método str.format () son esencialmente tipos de datos de tupla y cada valor individual contenido en la tupla se puede llamar por su número de índice, que comienza con el número de índice 0. Estos números de índice se pueden pasar a las llaves que sirven como marcadores de posición en la cadena original.

Sintaxis: {0} {1} .format (positional_argument, keyword_argument)

Parámetros: (argumento_posicional, argumento_palabras clave)
Argumento_posicional pueden ser enteros, constantes numéricas de coma flotante, cadenas, caracteres e incluso variables.
Keyword_argument es esencialmente una variable que almacena algún valor, que se pasa como parámetro.

Ejemplo 4:

Python3

print("{0} love {1}!!".format("GeeksforGeeks",

                              "Geeks"))

print("{1} love {0}!!".format("GeeksforGeeks",

                              "Geeks"))

print("Every {} should know the use of {} {} programming and {}"

      .format("programmer", "Open", "Source",

              "Operating Systems"))

print("Every {3} should know the use of {2} {1} programming and {0}"

      .format("programmer", "Open", "Source", "Operating Systems"))

print("{gfg} is a {0} science portal for {1}"

      .format("computer", "geeks", gfg="GeeksforGeeks"))

Producción :

GeeksforGeeks aman a los geeks !!

¡¡A los geeks les encantan los GeeksforGeeks !!

Todo programador debe conocer el uso de la programación y los sistemas operativos de código abierto.

Todos los sistemas operativos deben conocer el uso de la programación y el programador de Source Open

GeeksforGeeks es un portal informático para geeks

Especificación de tipo

Se pueden incluir más parámetros dentro de las llaves de nuestra sintaxis. Utilice la sintaxis del código de formato {nombre del campo: conversión}, dónde nombre del campo especifica el número de índice del argumento del método str.format (), y la conversión se refiere al código de conversión del tipo de datos.

Ejemplo:% s – conversión de cadenas a través de str () antes de formatear

Python3

print("%20s" % ('geeksforgeeks', ))

print("%-20s" % ('Interngeeks', ))

print("%.5s" % ('Interngeeks', ))

Producción:

       geeksforgeeks
Interngeeks         
Inter

Ejemplo:% c– personaje

Python3

type = 'bug'

result = 'troubling'

print('I wondered why the program was %s me. Then

it dawned on me it was a %s .' %

      (result, type))

Producción:

Me preguntaba por qué el programa me estaba preocupando. Entonces me di cuenta de que era un error.

Ejemplo:% i entero decimal con signo y %D entero decimal con signo (base-10)

Python3

match = 12000

site = 'amazon'

print("%s is so useful. I tried to look

up mobile and they had a nice one that cost %d rupees." % (site, match))

Producción:

amazon es muy útil. Intenté buscar móviles y tenían uno bonito que costaba 12000 rupias.

Alguna otra especificación de tipo útil

  • % u entero decimal sin signo
  • % o entero octal
  • F – pantalla de punto flotante
  • B – binario
  • o – octal
  • %X – hexadecimal con letras minúsculas después de 9
  • %X– hexadecimal con letras mayúsculas después de 9
  • mi – notación exponente

También puede especificar símbolos de formato. El único cambio es usar dos puntos (:) en lugar de%. Por ejemplo, en lugar de% s use {: s} y en lugar de% d use (: d}

Sintaxis: Cadena {field_name: conversion} Example.format (valor)
Errores y excepciones:
ValueError: Se produce un error durante la conversión de tipo en este método.

Ejemplo 5:

Python3

print("The temperature today is {0:d} degrees outside !"

      .format(35.567))

                                            

Producción :

ValueError: Unknown format code 'd' for object of type 'float'

Ejemplo 6:

Python3

print("This site is {0:f}% securely {1}!!".

      format(100, "encrypted"))

print("My average of this {0} was {1:.2f}%"

      .format("semester", 78.234876))

print("My average of this {0} was {1:.0f}%"

      .format("semester", 78.234876))

print("The {0} of 100 is {1:b}"

      .format("binary", 100))

print("The {0} of 100 is {1:o}"

      .format("octal", 100))

Producción :

This site is 100.000000% securely encrypted!!
My average of this semester was 78.23%
My average of this semester was 78%
The binary of 100 is 1100100
The octal of 100 is 144

Relleno de sustituciones o generación de espacios

Ejemplo 7: demostración del espaciado cuando las cadenas se pasan como parámetros

De forma predeterminada, las cadenas se justifican a la izquierda dentro del campo y los números se justifican a la derecha. Podemos modificar esto colocando un código de alineación justo después de los dos puntos.

<   :  left-align text in the field
^   :  center text in the field
>   :  right-align text in the field

Python3

print("{0:4}, is the computer science portal for {1:8}!"

      .format("GeeksforGeeks", "geeks"))

print("It is {0:5} degrees outside !"

      .format(40))

print("{0:4} was founded in {1:16}!"

      .format("GeeksforGeeks", 2009))

print("{0:^16} was founded in {1:<4}!"

      .format("GeeksforGeeks", 2009))

print("{:*^20s}".format("Geeks"))

Producción :

GeeksforGeeks, is the computer science portal for geeks   !
It is    40 degrees outside!
GeeksforGeeks was founded in             2009!
 GeeksforGeeks   was founded in 2009 !
*******Geeks********

Aplicaciones

Los formateadores se utilizan generalmente para organizar datos. Los formateadores pueden verse de la mejor manera cuando se utilizan para organizar una gran cantidad de datos de forma visual. Si mostramos bases de datos a los usuarios, el uso de formateadores para aumentar el tamaño del campo y modificar la alineación puede hacer que la salida sea más legible.

Ejemplo 8: Demostrar la organización de datos grandes usando formato ()

Python3

def unorganized(a, b):

    for i in range(a, b):

        print(i, i**2, i**3, i**4)

def organized(a, b):

    for i in range(a, b):

        

        

        print("{:6d} {:6d} {:6d} {:6d}"

              .format(i, i ** 2, i ** 3, i ** 4))

n1 = int(input("Enter lower range :-n"))

n2 = int(input("Enter upper range :-n"))

print("------Before Using Formatters-------")

unorganized(n1, n2)

print()

print("-------After Using Formatters---------")

print()

organized(n1, n2)

Producción :

Enter lower range :-
3
Enter upper range :-
10
------Before Using Formatters-------
3 9 27 81
4 16 64 256
5 25 125 625
6 36 216 1296
7 49 343 2401
8 64 512 4096
9 81 729 6561

-------After Using Formatters---------

     3      9     27     81
     4     16     64    256
     5     25    125    625
     6     36    216   1296
     7     49    343   2401
     8     64    512   4096
     9     81    729   6561

Usar un diccionario para formatear cadenas

Usar un diccionario para descomprimir valores en los marcadores de posición de la cadena que debe formatearse. Básicamente usamos ** para descomprimir los valores. Este método puede resultar útil en la sustitución de cadenas al preparar una consulta SQL.

Python3

introduction = 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'

full_name = {

    'first_name': 'Tony',

    'middle_name': 'Howard',

    'last_name': 'Stark',

    'aka': 'Iron Man',

}

print(introduction.format(**full_name))

Producción:

My name is Tony Howard Stark AKA the Iron Man.

Formato Python () con lista

Dada una lista de valores flotantes, la tarea es truncar todos los valores flotantes a 2 dígitos decimales. Veamos los diferentes métodos para realizar la tarea.

Python3

  

Input = [100.7689454, 17.232999, 60.98867, 300.83748789]

  

Output = ['{:.2f}'.format(elem) for elem in Input]

  

print(Output)

Producción:

['100.77', '17.23', '60.99', '300.84']

¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

OOP en C, implícitamente pasar self como parámetro

edit

F-15 vs F-16 Fighting Falcon – Diferencia y comparación