{"id":344,"date":"2022-12-26T12:18:54","date_gmt":"2022-12-26T11:18:54","guid":{"rendered":"https:\/\/www.pythonparatodo.com\/?p=344"},"modified":"2022-12-26T12:29:19","modified_gmt":"2022-12-26T11:29:19","slug":"usando-f-strings-literal-string-interpolation","status":"publish","type":"post","link":"https:\/\/www.pythonparatodo.com\/?p=344","title":{"rendered":"Usando f-strings (literal string interpolation)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">F-strings se introdujo en la versi\u00f3n 3.6 de Python para mejorar los sistemas habituales de formateado de texto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entre los sistemas mas comunes se encuentra el sistema de strings con % y usando los tipos de representaci\u00f3n de cadenas como por ejemplo %s para indicar cadenas de texto, %d para decimales, %c para caracteres, %b para binarios, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estos son algunos de los tipos de presentaci\u00f3n disponibles que se encuentran en la documentaci\u00f3n oficial:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>Tipo<\/th><th>Significado<\/th><\/tr><\/thead><tbody><tr><td><code>'s'<\/code><\/td><td>Formato de cadena de caracteres. \u00c9ste es el tipo por defecto y puede ser omitido.<\/td><\/tr><tr><td>None<\/td><td>Lo mismo que <code>'s'<\/code>.<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tipos de cadenas de caracteres<\/figcaption><\/figure>\n<cite>https:\/\/docs.python.org\/es\/3\/library\/string.html#custom-string-formatting<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>Tipo<\/th><th>Significado<\/th><\/tr><\/thead><tbody><tr><td><code>'b'<\/code><\/td><td>Formato binario. retorna el n\u00famero en base 2.<\/td><\/tr><tr><td><code>'c'<\/code><\/td><td>Car\u00e1cter. Convierte el entero en el car\u00e1cter unicode correspondiente antes de imprimirlo.<\/td><\/tr><tr><td><code>'d'<\/code><\/td><td>Decimal entero. retorna el n\u00famero en base 10.<\/td><\/tr><tr><td><code>'o'<\/code><\/td><td>Formato octal. retorna el n\u00famero en base 8.<\/td><\/tr><tr><td><code>'x'<\/code><\/td><td>Formato hexadecimal. retorna el n\u00famero en base 16, utilizando letras min\u00fasculas para los d\u00edgitos superiores a 9.<\/td><\/tr><tr><td><code>'X'<\/code><\/td><td>Formato hexadecimal. retorna el n\u00famero en base 16, utilizando letras may\u00fasculas para los d\u00edgitos superiores a 9. En caso de que <code>'#'<\/code> se especifique, el prefijo <code>'0x'<\/code> convertir\u00e1 en <code>'0X'<\/code> tambi\u00e9n.<\/td><\/tr><tr><td><code>'n'<\/code><\/td><td>N\u00famero. Es lo mismo que <code>'d'<\/code>, excepto que usa la configuraci\u00f3n regional actual para insertar el n\u00famero apropiado de caracteres separadores.<\/td><\/tr><tr><td>None<\/td><td>Lo mismo que <code>'d'<\/code>.<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tipos para enteros<\/figcaption><\/figure>\n<cite>https:\/\/docs.python.org\/es\/3\/library\/string.html#custom-string-formatting<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, en el siguiente c\u00f3digo reemplazamos los tipos %s y %d por las variables correspondientes para obtener el resultado: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">uno de enero del a\u00f1o 2023<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">day = \"uno\"\nmonth = \"enero\"\nyear = 2023\nmyformat = \"%s de %s del a\u00f1o %d\" %(day,month,year)\nprint(myformat)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si bien el sistema es efectivo puede resultar un poco confuso y hay que saber que tipo de variable vamos a poner para indicar el tipo correspondiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otro sistema com\u00fan es el string.format() donde introduces llaves vacias, con posici\u00f3n o pasando variables en el argumento. Por ejemplo  para obtener el resultado del ejemplo anterior escribiriamos algo as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">day = \"uno\"\nmonth = \"enero\"\nyear = 2023\nmyformat = \"{} de {} del a\u00f1o {}\".format(day,month,year)\nprint(myformat)\n\no\n\nmyformat = \"{0} de {1} del a\u00f1o {2}\".format(day,month,year)\nprint(myformat)\n\no\n\nmyformat = \"{day} de {month} del a\u00f1o {year}\".format(day=\"uno\",month=\"enero\",year=2023)\nprint(myformat)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El funcionamiento del nuevo sistema f-strings es bien f\u00e1cil de usar, ponemos una letra f delante del entrecomillado con lo cual le decimos al interprete que ese texto estar\u00e1 formateado y por cada variable incluimos llaves con el nombre de la variable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El ejemplo de antes, ampliado, quedar\u00eda asi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">day = \"uno\"\nmonth = \"enero\"\nyear =2023\nmyformat = f\"{day} de {month} del a\u00f1o {year}\"\nprint(myformat)\n\nprint(f\"El resultado de 3 x 15 es = {3*5}\")\n\nfrom datetime import datetime\nfecha = datetime.now()\nprint(f\"La fecha actual es: {fecha}\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Felices fiestas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F-strings se introdujo en la versi\u00f3n 3.6 de Python para mejorar los sistemas habituales de formateado de texto. Entre los &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-344","post","type-post","status-publish","format-standard","hentry","category-python"],"_links":{"self":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=344"}],"version-history":[{"count":6,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":351,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions\/351"}],"wp:attachment":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}