Created
July 20, 2022 09:56
-
-
Save hcosta/bb22b73199b3dc01e1ec91c05b346daa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# f-Strings\n", | |
"\n", | |
"Desde Python 3.6 encontramos una nueva funcionalidad que simplificar el formateo gracias a la interpolación de cadenas. \n", | |
"\n", | |
"En lugar de poner esto:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola Héctor\n" | |
] | |
} | |
], | |
"source": [ | |
"nombre = \"Héctor\"\n", | |
"cadena = \"Hola {}\".format(nombre)\n", | |
"print(cadena)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Podemos indicar que la cadena está formateada añadiendo `f\"\"` delante y pasando directamente las variables o datos interpretados:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola Héctor\n" | |
] | |
} | |
], | |
"source": [ | |
"nombre = \"Héctor\"\n", | |
"cadena = f\"Hola {nombre}\"\n", | |
"print(cadena)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Como véis es muy útil y permite ahorrarnos algo de código." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Contenido interpretado" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"La suma de 10 y 5 es 15\n" | |
] | |
} | |
], | |
"source": [ | |
"a, b = 10, 5\n", | |
"\n", | |
"print(f\"La suma de {a} y {b} es {a+b}\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"¡Hola Pepe!\n" | |
] | |
} | |
], | |
"source": [ | |
"def func():\n", | |
" return \"Pepe\"\n", | |
"\n", | |
"print(f\"¡Hola {func()}!\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"El número dos es 2\n" | |
] | |
} | |
], | |
"source": [ | |
"numero = {\"uno\":1, \"dos\": 2, \"tres\": 3}\n", | |
"\n", | |
"print(f\"El número dos es {numero['dos']}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Formateos avanzados" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Alineamientos" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola mundo \n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"{'Hola mundo':40}\") # a la izquierda 40 caracteres" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola mundo \n", | |
" Hola mundo\n", | |
" Hola mundo \n" | |
] | |
} | |
], | |
"source": [ | |
"texto = \"Hola mundo\"\n", | |
"\n", | |
"print(f\"{texto:40}\") # a la izquierda 40 caracteres\n", | |
"print(f\"{texto:>40}\") # a la derecha 40 caracteres\n", | |
"print(f\"{texto:^40}\") # al centro 40 caracteres" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Truncamiento" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"{texto:.4}\") # primeros 4 caracteres" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Truncamiento con variables" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Hola\n" | |
] | |
} | |
], | |
"source": [ | |
"limite = 4\n", | |
"\n", | |
"print(f\"{texto:.{limite}}\") # primeros 4 caracteres" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Alineamiento con truncamiento" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" Hola\n", | |
"Hola \n", | |
" Hola \n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"{texto:>30.4}\")\n", | |
"print(f\"{texto:<30.4}\")\n", | |
"print(f\"{texto:^30.4}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Alineamiento con truncamiento y variables" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" Hola\n", | |
"Hola \n", | |
" Hola \n" | |
] | |
} | |
], | |
"source": [ | |
"limite = 4\n", | |
"longitud = 30\n", | |
"\n", | |
"print(f\"{texto:>{longitud}.{limite}}\")\n", | |
"print(f\"{texto:<{longitud}.{limite}}\")\n", | |
"print(f\"{texto:^{longitud}.{limite}}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Formateo de números enteros, rellenados con espacios" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 1\n", | |
" 10\n", | |
" 100\n", | |
" 1000\n", | |
" 10000\n", | |
"100000\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"{1:6d}\")\n", | |
"print(f\"{10:6d}\")\n", | |
"print(f\"{100:6d}\")\n", | |
"print(f\"{1000:6d}\")\n", | |
"print(f\"{10000:6d}\")\n", | |
"print(f\"{100000:6d}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Formateo de números enteros, rellenados con ceros" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"000001\n", | |
"000010\n", | |
"000100\n", | |
"001000\n", | |
"010000\n", | |
"100000\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f\"{1:06d}\")\n", | |
"print(f\"{10:06d}\")\n", | |
"print(f\"{100:06d}\")\n", | |
"print(f\"{1000:06d}\")\n", | |
"print(f\"{10000:06d}\")\n", | |
"print(f\"{100000:06d}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Formateo de números flotantes, rellenados con espacios" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 3.142\n", | |
"153.210\n" | |
] | |
} | |
], | |
"source": [ | |
"# 4 dígitos: 3 enteros, 1 punto y 3 decimales\n", | |
"\n", | |
"print(f\"{3.1415926:7.3f}\") \n", | |
"print(f\"{153.21:7.3f}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Formateo de números flotantes, rellenados con ceros" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0003.1416\n", | |
"0153.2100\n" | |
] | |
} | |
], | |
"source": [ | |
"# 9 dígitos: 4 enteros, 1 punto y 4 decimales\n", | |
"\n", | |
"print(f\"{3.1415926:09.4f}\") \n", | |
"print(f\"{153.21:09.4f}\") " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Formateo de números con variables" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0000000003.1415926000\n" | |
] | |
} | |
], | |
"source": [ | |
"numero = 3.1415926\n", | |
"longitud = 21 # 1 para el decimal\n", | |
"decimales = 10\n", | |
"\n", | |
"print(f\"{numero:0{longitud}.{decimales}f}\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.10.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment