{"id":351,"date":"2024-10-20T18:26:18","date_gmt":"2024-10-20T18:26:18","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=351"},"modified":"2024-10-18T18:30:55","modified_gmt":"2024-10-18T18:30:55","slug":"tipos-de-datos-cadena-de-caracteres-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/tipos-de-datos-cadena-de-caracteres-python\/","title":{"rendered":"Tipos de Datos | Cadena de caracteres | Python"},"content":{"rendered":"<h1>Tipo cadenas de caracteres<\/h1>\n<p>Las cadenas de caracteres, son secuencias inmutables que contienen caracteres encerrado entre comillas.<\/p>\n<div id=\"cadenas-cortas\" class=\"section\"><span id=\"python-str-short\"><\/span><\/p>\n<h2>Cadenas cortas<\/h2>\n<p>Son caracteres encerrado entre comillas simples (<code class=\"docutils literal notranslate\"><span class=\"pre\">'<\/span><\/code>) o dobles (<code class=\"docutils literal notranslate\"><span class=\"pre\">\"<\/span><\/code>).<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"s1\">'Hola Mundo'<\/span>\r\n<span class=\"go\">'Hola Mundo'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"cadenas-largas\" class=\"section\"><span id=\"python-str-long\"><\/span><\/p>\n<h2>Cadenas largas<\/h2>\n<p>Son caracteres encerrados entre grupo comillas triples simples (<code class=\"docutils literal notranslate\"><span class=\"pre\">'''<\/span><\/code>) o dobles (<code class=\"docutils literal notranslate\"><span class=\"pre\">\"\"\"<\/span><\/code>), est\u00e1n son generalmente son referenciadas como\u00a0<em>cadenas de triple comillas<\/em>.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sd\">\"\"\"Clase que representa una Persona\"\"\"<\/span>\r\n<span class=\"go\">'Clase que representa una Persona'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sd\">'''Clase que representa un Supervisor'''<\/span>\r\n<span class=\"go\">'Clase que representa un Supervisor'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"clases\" class=\"section\"><span id=\"python-str-clases\"><\/span><\/p>\n<h2>Clases<\/h2>\n<p>A continuaci\u00f3n, una lista de clases integradas Python para los tipos de cadenas de caracteres:<\/p>\n<div id=\"basestring\" class=\"section\"><span id=\"python-str-basestring-cls\"><\/span><\/p>\n<h3>basestring<\/h3>\n<p>Es la\u00a0<em>clase base<\/em>\u00a0de las clases\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">str<\/span><\/code>\u00a0y\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">unicode<\/span><\/code>.<\/p>\n<\/div>\n<div id=\"str\" class=\"section\"><span id=\"python-str-cls\"><\/span><\/p>\n<h3>str<\/h3>\n<p>Son\u00a0<em>secuencias inmutables<\/em>\u00a0de cadenas de caracteres con soporte a caracteres\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">ASCII<\/span><\/code>.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"s1\">'Hola Mundo'<\/span>\r\n<span class=\"go\">'Hola Mundo'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"s2\">\"Hola Mundo\"<\/span>\r\n<span class=\"go\">'Hola Mundo'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"unicode\" class=\"section\"><span id=\"python-unicode-cls\"><\/span><\/p>\n<h3>unicode<\/h3>\n<p>Son\u00a0<em>secuencias inmutables<\/em>\u00a0de cadenas de caracteres con soporte a caracteres\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">Unicode<\/span><\/code>.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sa\">u<\/span><span class=\"s1\">'Jekechit\u00fc'<\/span>\r\n<span class=\"go\">u'Jekechit\\xfc'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"prefijo-de-cadenas\" class=\"section\"><span id=\"python-str-prefijo\"><\/span><\/p>\n<h2>Prefijo de cadenas<\/h2>\n<p>Una cadena puede estar precedida por el car\u00e1cter:<\/p>\n<ul>\n<li>\n<p class=\"first\"><code class=\"docutils literal notranslate\"><span class=\"pre\">r<\/span><\/code>\/<code class=\"docutils literal notranslate\"><span class=\"pre\">R<\/span><\/code>, el cual indica, que se trata de una cadena\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">raw<\/span><\/code>\u00a0(del ingl\u00e9s, cruda). Las cadenas\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">raw<\/span><\/code>\u00a0se distinguen de las normales en que los caracteres escapados mediante la barra invertida (<code class=\"docutils literal notranslate\"><span class=\"pre\">\\<\/span><\/code>) no se sustituyen por sus contrapartidas. Esto es especialmente \u00fatil, por ejemplo, para usar las expresiones regulares.<\/p>\n<blockquote>\n<div>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">raw<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">r<\/span><span class=\"s2\">\"\\t\\nHola Plone\\n\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">raw<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">&lt;type 'str'&gt;<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/blockquote>\n<\/li>\n<li>\n<p class=\"first\"><code class=\"docutils literal notranslate\"><span class=\"pre\">u<\/span><\/code>\/<code class=\"docutils literal notranslate\"><span class=\"pre\">U<\/span><\/code>, el cual indica, que se trata de una cadena que utiliza codificaci\u00f3n\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion3\/tipo_cadenas.html#python-unicode-cls\"><span class=\"std std-ref\">unicode<\/span><\/a>.<\/p>\n<blockquote>\n<div>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">saber_mas<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">u<\/span><span class=\"s2\">\"At\u00fcjaa oo'om\u00fcin...\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">saber_mas<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">&lt;type 'unicode'&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">vocales<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">U<\/span><span class=\"s2\">\"\u00e4\u00f3\u00e8\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">vocales<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">&lt;type 'unicode'&gt;<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/blockquote>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"cadenas-de-escape\" class=\"section\"><span id=\"python-str-escape\"><\/span><\/p>\n<h2>Cadenas de escape<\/h2>\n<p>Para escapar caracteres dentro de cadenas de caracteres se usa el car\u00e1cter\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\\<\/span><\/code>\u00a0seguido de cualquier car\u00e1cter ASCII.<\/p>\n<table class=\"docutils\" border=\"1\">\n<colgroup>\n<col width=\"35%\" \/>\n<col width=\"65%\" \/><\/colgroup>\n<thead valign=\"bottom\">\n<tr class=\"row-odd\">\n<th class=\"head\">Secuencia Escape<\/th>\n<th class=\"head\">Significado<\/th>\n<\/tr>\n<\/thead>\n<tbody valign=\"top\">\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\newline<\/span><\/code><\/td>\n<td>Ignorado<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\\\<\/span><\/code><\/td>\n<td>Backslash (<code class=\"docutils literal notranslate\"><span class=\"pre\">\\<\/span><\/code>)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\'<\/span><\/code><\/td>\n<td>Comillas simple (<code class=\"docutils literal notranslate\"><span class=\"pre\">'<\/span><\/code>)<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\\"<\/span><\/code><\/td>\n<td>Comillas doble (<code class=\"docutils literal notranslate\"><span class=\"pre\">\"<\/span><\/code>)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\a<\/span><\/code><\/td>\n<td>Bell ASCII (BEL)<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\b<\/span><\/code><\/td>\n<td>Backspace ASCII (BS)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\f<\/span><\/code><\/td>\n<td>Formfeed ASCII (FF)<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\n<\/span><\/code><\/td>\n<td>Linefeed ASCII (LF)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\N{name}<\/span><\/code><\/td>\n<td>Car\u00e1cter llamado\u00a0<em>name<\/em>\u00a0en base de datos Unicode (Solo Unicode)<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\r<\/span><\/code><\/td>\n<td>Carriage Return ASCII (CR)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\t<\/span><\/code><\/td>\n<td>Tabulaci\u00f3n Horizontal ASCII (TAB)<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\uxxxx<\/span><\/code><\/td>\n<td>Car\u00e1cter con valor hex 16-bit\u00a0<em>xxxx<\/em>\u00a0(Solamente Unicode). Ver\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion5\/funciones_integradas.html#python-fun-hex\"><span class=\"std std-ref\">hex<\/span><\/a>.<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\Uxxxxxxxx<\/span><\/code><\/td>\n<td>Car\u00e1cter con valor hex 32-bit\u00a0<em>xxxxxxxx<\/em>\u00a0(Solamente Unicode). Ver\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion5\/funciones_integradas.html#python-fun-hex\"><span class=\"std std-ref\">hex<\/span><\/a>.<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\v<\/span><\/code><\/td>\n<td>Tabulaci\u00f3n Vertical ASCII (VT)<\/td>\n<\/tr>\n<tr class=\"row-even\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\ooo<\/span><\/code><\/td>\n<td>Car\u00e1cter con valor octal\u00a0<em>ooo<\/em>. Ver\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion5\/funciones_integradas.html#python-fun-oct\"><span class=\"std std-ref\">octal<\/span><\/a>.<\/td>\n<\/tr>\n<tr class=\"row-odd\">\n<td><code class=\"docutils literal notranslate\"><span class=\"pre\">\\xhh<\/span><\/code><\/td>\n<td>Car\u00e1cter con valor hex\u00a0<em>hh<\/em>. Ver\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion5\/funciones_integradas.html#python-fun-hex\"><span class=\"std std-ref\">hex<\/span><\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tambi\u00e9n es posible encerrar una cadena entre triples comillas (simples o dobles). De esta forma puede escribir el texto en varias l\u00edneas, y al imprimir la cadena, se respetar\u00e1n los saltos de l\u00ednea que se introdujeron sin tener que recurrir a los caracteres escapados y las comillas como los anteriores.<\/p>\n<\/div>\n<div id=\"operaciones\" class=\"section\"><span id=\"python-str-operaciones\"><\/span><\/p>\n<h2>Operaciones<\/h2>\n<p>Las cadenas tambi\u00e9n admiten operadores aritm\u00e9ticos como los siguientes:<\/p>\n<ul>\n<li>\n<p class=\"first\">El operador\u00a0<span class=\"std std-ref\">suma<\/span>\u00a0para realizar concatenaci\u00f3n de cadenas de caracteres:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"uno\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">a<\/span> <span class=\"o\">+<\/span> <span class=\"n\">b<\/span>\r\n<span class=\"go\">'unodos'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p class=\"first\">El operador\u00a0<span class=\"std std-ref\">multiplicaci\u00f3n<\/span>\u00a0para repetir la cadena de caracteres por N veces definidas en la multiplicaci\u00f3n:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"tres\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">3<\/span>\r\n<span class=\"go\">'trestrestres'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p class=\"first\">El operador\u00a0<span class=\"std std-ref\">modulo<\/span>\u00a0usado la t\u00e9cnica de interpolaci\u00f3n variables dentro de una cadena de caracteres. M\u00e1s informaci\u00f3n consulte la secci\u00f3n\u00a0<span class=\"std std-ref\">formateo %<\/span>.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"comentarios\" class=\"section\"><span id=\"python-str-comentarios\"><\/span><\/p>\n<h2>Comentarios<\/h2>\n<p>Son cadenas de caracteres las cuales constituyen una ayuda esencial tanto para quien est\u00e1 desarrollando el programa, como para otras personas que lean el c\u00f3digo.<\/p>\n<p>Los comentarios en el c\u00f3digo tienen una vital importancia en el desarrollo de todo programa, algunas de las funciones m\u00e1s importantes que pueden cumplir los comentarios en un programa, son:<\/p>\n<ul class=\"simple\">\n<li>Brindar informaci\u00f3n general sobre el programa.<\/li>\n<li>Explicar qu\u00e9 hace cada una de sus partes.<\/li>\n<li>Aclarar y\/o fundamentar el funcionamiento de un bloque espec\u00edfico de c\u00f3digo, que no sea evidente de su propia lectura.<\/li>\n<li>Indicar cosas pendientes para agregar o mejorar.<\/li>\n<\/ul>\n<p>El signo para indicar el comienzo de un comentario en Python es el car\u00e1cter numeral\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">#<\/span><\/code>, a partir del cual y hasta el fin de la l\u00ednea, todo se considera un comentario y es ignorado por el int\u00e9rprete Python.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"c1\"># comentarios en linea<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"go\">&gt;&gt;&gt;<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>El car\u00e1cter\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">#<\/span><\/code>\u00a0puede estar al comienzo de l\u00ednea (en cuyo caso toda la l\u00ednea ser\u00e1 ignorada), o despu\u00e9s de finalizar una instrucci\u00f3n v\u00e1lida de c\u00f3digo.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"c1\"># Programa que calcula la sucesi\u00f3n<\/span>\r\n<span class=\"gp\">... <\/span><span class=\"c1\"># de n\u00fameros Fibonacci<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"c1\"># se definen las variables<\/span>\r\n<span class=\"gp\">... <\/span><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">while<\/span> <span class=\"n\">b<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">100<\/span><span class=\"p\">:<\/span> <span class=\"c1\"># mientras b sea menor a 100 itere<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"n\">b<\/span><span class=\"p\">,<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"n\">a<\/span> <span class=\"o\">+<\/span> <span class=\"n\">b<\/span> <span class=\"c1\"># se calcula la sucesi\u00f3n Fibonacci<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"go\">1 1 2 3 5 8 13 21 34 55 89<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<div id=\"comentarios-multilinea\" class=\"section\"><span id=\"python-comentarios-multilinea\"><\/span><\/p>\n<h3>Comentarios multil\u00ednea<\/h3>\n<p>Python no dispone de un m\u00e9todo para delimitar bloques de comentarios de varias l\u00edneas.<\/p>\n<p>Al igual que los comentarios de un sola linea, son cadenas de caracteres, en este caso van entre triples comillas (simples o dobles), esto tiene el inconveniente que, aunque no genera c\u00f3digo ejecutable, el bloque delimitado no es ignorado por el int\u00e9rprete Python, que crea el correspondiente objeto de tipo\u00a0<span class=\"std std-ref\">cadena de caracteres<\/span>.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sd\">\"\"\"comentarios en varias lineas\"\"\"<\/span>\r\n<span class=\"go\">'comentarios en varias lineas'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sd\">'''comentarios en varias lineas'''<\/span>\r\n<span class=\"go\">'comentarios en varias lineas'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>A continuaci\u00f3n, una comparaci\u00f3n entre comentarios multil\u00ednea y comentarios en solo una linea:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"c1\"># Calcula la sucesi\u00f3n<\/span>\r\n<span class=\"gp\">... <\/span><span class=\"c1\"># de n\u00fameros Fibonacci<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sd\">\"\"\"Calcula la sucesi\u00f3n<\/span>\r\n<span class=\"gp\">... <\/span><span class=\"sd\">de n\u00fameros Fibonacci\"\"\"<\/span>\r\n<span class=\"go\">'Calcula la sucesi\\xc3\\xb3n \\nde n\\xc3\\xbameros Fibonacci'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Entonces existen al menos dos (02) alternativas para introducir comentarios multil\u00ednea son:<\/p>\n<ul class=\"simple\">\n<li>Comentar cada una de las l\u00edneas con el car\u00e1cter #: en general todos los editores de programaci\u00f3n y entornos de desarrollo (IDEs) disponen de mecanismos que permiten comentar y descomentar f\u00e1cilmente un conjunto de l\u00edneas.<\/li>\n<li>Utilizar triple comillas (simples o dobles) para generar una cadena multil\u00ednea: si bien este m\u00e9todo es aceptado.<\/li>\n<\/ul>\n<p>A continuaci\u00f3n, un ejemplo de Comentarios multil\u00ednea y de solo una linea:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"sa\">u<\/span><span class=\"sd\">\"\"\"Calcula la sucesi\u00f3nde n\u00fameros Fibonacci\"\"\"<\/span>\r\n<span class=\"go\">u'Calcula la sucesi\\xf3nde n\\xfameros Fibonacci'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"c1\"># se definen las variables<\/span>\r\n<span class=\"gp\">... <\/span><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">while<\/span> <span class=\"n\">b<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">100<\/span><span class=\"p\">:<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"n\">b<\/span><span class=\"p\">,<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"c1\"># se calcula la sucesi\u00f3n Fibonacci<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"n\">a<\/span> <span class=\"o\">+<\/span> <span class=\"n\">b<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"go\">1 1 2 3 5 8 13 21 34 55 89<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Los comentarios multil\u00ednea usado con mucha frecuencia como en las varias sintaxis Python como\u00a0<span class=\"std std-ref\">comentarios de documentaci\u00f3n<\/span>\u00a0a continuaci\u00f3n se listan las sintaxis m\u00e1s comunes:<\/p>\n<ul class=\"simple\">\n<li><span class=\"std std-ref\">M\u00f3dulos<\/span>.<\/li>\n<li><span class=\"std std-ref\">Funciones<\/span>.<\/li>\n<li><span class=\"std std-ref\">Clases<\/span>.<\/li>\n<li><span class=\"std std-ref\">M\u00e9todos<\/span>.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div id=\"docstrings\" class=\"section\"><span id=\"python-str-docstrings\"><\/span><\/p>\n<h2>Docstrings<\/h2>\n<p>En Python todos los objetos cuentan con una variable especial llamada\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">__doc__<\/span><\/code>, gracias a la cual puede describir para qu\u00e9 sirven los objetos y c\u00f3mo se usan. Estas variables reciben el nombre de\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">docstrings<\/span><\/code>, o\u00a0cadenas de documentaci\u00f3n.<\/p>\n<p>Ten en cuenta, una buena documentaci\u00f3n siempre dar\u00e1 respuesta a las dos preguntas:<\/p>\n<ul class=\"simple\">\n<li>\u00bfPara qu\u00e9 sirve?<\/li>\n<li>\u00bfC\u00f3mo se utiliza?<\/li>\n<\/ul>\n<div id=\"funciones\" class=\"section\"><span id=\"python-str-docstrings-def\"><\/span><\/p>\n<h3>Funciones<\/h3>\n<p>Python implementa un sistema muy sencillo para establecer el valor de las\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">docstrings<\/span><\/code>\u00a0en las funciones, \u00fanicamente tiene que crear un comentario en la primera l\u00ednea despu\u00e9s de la declaraci\u00f3n.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">def<\/span> <span class=\"nf\">hola<\/span><span class=\"p\">(<\/span><span class=\"n\">arg<\/span><span class=\"p\">):<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"sd\">\"\"\"El docstring de la funci\u00f3n\"\"\"<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"s2\">\"Hola\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">arg<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"!\"<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">hola<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"Plone\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">Hola Plone !<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Puede puede consultar la documentaci\u00f3n de la funci\u00f3n\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">hola()<\/span><\/code>\u00a0debe utilizar la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">help()<\/span>\u00a0y pasarle el argumento del objeto de funci\u00f3n\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">hola()<\/span><\/code>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">hola<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on function hola in module __main__:<\/span>\r\n\r\n<span class=\"go\">hola(arg)<\/span>\r\n<span class=\"go\">    El docstring de la funci\u00f3n<\/span>\r\n\r\n<span class=\"go\">&gt;&gt;&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">hola<\/span><span class=\"o\">.<\/span><span class=\"vm\">__doc__<\/span>\r\n<span class=\"go\">El docstring de la funci\u00f3n<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"clases-y-metodos\" class=\"section\">\n<h3>Clases y m\u00e9todos<\/h3>\n<p>De la misma forma puede establecer la documentaci\u00f3n de la clase despu\u00e9s de la definici\u00f3n, y de los m\u00e9todos, como si fueran funciones:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">class<\/span> <span class=\"nc\">Clase<\/span><span class=\"p\">:<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"sd\">\"\"\"El docstring de la clase\"\"\"<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">def<\/span> <span class=\"fm\">__init__<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">):<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"sd\">\"\"\"El docstring del m\u00e9todo constructor de clase\"\"\"<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">def<\/span> <span class=\"nf\">metodo<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">):<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"sd\">\"\"\"El docstring del m\u00e9todo de clase\"\"\"<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">o<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Clase<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">o<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on instance of Clase in module __main__:<\/span>\r\n\r\n<span class=\"go\">class Clase<\/span>\r\n<span class=\"go\"> |  El docstring de la clase<\/span>\r\n<span class=\"go\"> |<\/span>\r\n<span class=\"go\"> |  Methods defined here:<\/span>\r\n<span class=\"go\"> |<\/span>\r\n<span class=\"go\"> |  __init__(self)<\/span>\r\n<span class=\"go\"> |      El docstring del m\u00e9todo constructor de clase<\/span>\r\n<span class=\"go\"> |<\/span>\r\n<span class=\"go\"> |  metodo(self)<\/span>\r\n<span class=\"go\"> |      El docstring del m\u00e9todo de clase<\/span>\r\n\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">o<\/span><span class=\"o\">.<\/span><span class=\"vm\">__doc__<\/span>\r\n<span class=\"go\">'El docstring de la clase'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">o<\/span><span class=\"o\">.<\/span><span class=\"fm\">__init__<\/span><span class=\"o\">.<\/span><span class=\"vm\">__doc__<\/span>\r\n<span class=\"go\">'El docstring del m\u00e9todo constructor de clase'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">o<\/span><span class=\"o\">.<\/span><span class=\"n\">metodo<\/span><span class=\"o\">.<\/span><span class=\"vm\">__doc__<\/span>\r\n<span class=\"go\">'El docstring del m\u00e9todo de clase'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"scripts-y-modulos\" class=\"section\">\n<h3>Scripts y m\u00f3dulos<\/h3>\n<p>Cuando tiene un script o m\u00f3dulo, la primera l\u00ednea del mismo har\u00e1 referencia al\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">docstrings<\/span><\/code>\u00a0del m\u00f3dulo, en \u00e9l debe explicar el funcionamiento del mismo:<\/p>\n<p>En el archivo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">mi_modulo.py<\/span><\/code>\u00a0debe contener el siguiente c\u00f3digo:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"sd\">\"\"\"El docstring del m\u00f3dulo\"\"\"<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">despedir<\/span><span class=\"p\">():<\/span>\r\n    <span class=\"sd\">\"\"\"El docstring de la funci\u00f3n despedir\"\"\"<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"s2\">\"Adi\u00f3s! desde funci\u00f3n despedir() del m\u00f3dulo prueba\"<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">saludar<\/span><span class=\"p\">():<\/span>\r\n    <span class=\"sd\">\"\"\"El docstring de la funci\u00f3n saludar\"\"\"<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"s2\">\"Hola! desde funci\u00f3n saludar() del m\u00f3dulo prueba\"<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Entonces, usted debe importar el m\u00f3dulo anterior, para consultar la documentaci\u00f3n del m\u00f3dulo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">mi_modulo<\/span><\/code>\u00a0debe utilizar la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">help()<\/span>\u00a0y pasarle el argumento el nombre de m\u00f3dulo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">mi_modulo<\/span><\/code>, de la siguiente manera:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"kn\">import<\/span> <span class=\"nn\">mi_modulo<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">mi_modulo<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on module mi_modulo:<\/span>\r\n\r\n<span class=\"go\">NAME<\/span>\r\n<span class=\"go\">    mi_modulo - El docstring del m\u00f3dulo<\/span>\r\n<span class=\"go\">FUNCTIONS<\/span>\r\n<span class=\"go\">    despedir()<\/span>\r\n<span class=\"go\">        El docstring de la funci\u00f3n despedir<\/span>\r\n<span class=\"go\">    saludar()<\/span>\r\n<span class=\"go\">        El docstring de la funci\u00f3n saludar<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Tambi\u00e9n puede consultar la documentaci\u00f3n de la funci\u00f3n\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">despedir()<\/span><\/code>\u00a0dentro del m\u00f3dulo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">mi_modulo<\/span><\/code>, usando la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">help()<\/span>\u00a0y pasarle el argumento el formato\u00a0<em>nombre_modulo.nombre_funcion<\/em>, es decir,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">mi_modulo.despedir<\/span><\/code>, de la siguiente manera:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">mi_modulo<\/span><span class=\"o\">.<\/span><span class=\"n\">despedir<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on function despedir in module mi_modulo:<\/span>\r\n\r\n<span class=\"go\">despedir()<\/span>\r\n<span class=\"go\">    El docstring de la funci\u00f3n despedir<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Opcionalmente , usted puede listar las variables y funciones del m\u00f3dulo con la funci\u00f3n\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">dir()<\/span><\/code>, de la siguiente manera:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">dir<\/span><span class=\"p\">(<\/span><span class=\"n\">mi_modulo<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">['__builtins__',<\/span>\r\n<span class=\"go\"> '__cached__',<\/span>\r\n<span class=\"go\"> '__doc__',<\/span>\r\n<span class=\"go\"> '__file__',<\/span>\r\n<span class=\"go\"> '__loader__',<\/span>\r\n<span class=\"go\"> '__name__',<\/span>\r\n<span class=\"go\"> '__package__',<\/span>\r\n<span class=\"go\"> '__spec__',<\/span>\r\n<span class=\"go\"> 'despedir',<\/span>\r\n<span class=\"go\"> 'saludar']<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Como puede apreciar, muchas de estas variables son especiales, puede comprobar sus valores:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">mi_modulo<\/span><span class=\"o\">.<\/span><span class=\"vm\">__name__<\/span>     <span class=\"c1\"># Nombre del m\u00f3dulo<\/span>\r\n<span class=\"go\">'mi_modulo'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">mi_modulo<\/span><span class=\"o\">.<\/span><span class=\"vm\">__doc__<\/span>      <span class=\"c1\"># Docstring del m\u00f3dulo<\/span>\r\n<span class=\"go\">'El docstring del m\u00f3dulo'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">mi_modulo<\/span><span class=\"o\">.<\/span><span class=\"n\">__package__<\/span>  <span class=\"c1\"># Nombre del paquete del m\u00f3dulo<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"formateo-de-cadenas\" class=\"section\"><span id=\"python-str-formateo\"><\/span><\/p>\n<h2>Formateo de cadenas<\/h2>\n<p>Python soporta m\u00faltiples formas de formatear una cadena de caracteres. A continuaci\u00f3n se describen:<\/p>\n<div id=\"formateo\" class=\"section\"><span id=\"python-str-formateo-modulo\"><\/span><\/p>\n<h3>Formateo %<\/h3>\n<p>El car\u00e1cter modulo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">%<\/span><\/code>\u00a0es un operador integrado en Python. Ese es conocido como el operador de interpolaci\u00f3n. Usted necesitar\u00e1 proveer el % seguido por el tipo que necesita ser formateado o convertido. El operador % entonces substituye la frase \u201c%tipodato\u201d con cero o mas elementos del tipo de datos especificado:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">%s<\/span><span class=\"s2\"> es <\/span><span class=\"si\">%f<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">%<\/span> <span class=\"p\">(<\/span><span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.414214<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Tambi\u00e9n aqu\u00ed se puede controlar el formato de salida. Por ejemplo, para obtener el valor con 8 d\u00edgitos despu\u00e9s de la coma:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">%s<\/span><span class=\"s2\"> es <\/span><span class=\"si\">%.8f<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">%<\/span> <span class=\"p\">(<\/span><span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.41421356<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Con esta sintaxis hay que determinar el tipo del objeto:<\/p>\n<ul class=\"simple\">\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%c<\/span><\/code>\u00a0= str, simple car\u00e1cter.<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%s<\/span><\/code>\u00a0= str, cadena de car\u00e1cter.<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%d<\/span><\/code>\u00a0= int, enteros.<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%f<\/span><\/code>\u00a0= float, coma flotante.<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%o<\/span><\/code>\u00a0= octal.<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">%x<\/span><\/code>\u00a0= hexadecimal.<\/li>\n<\/ul>\n<p>A continuaci\u00f3n un ejemplo por cada tipo de datos:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"CMS: <\/span><span class=\"si\">%s<\/span><span class=\"s2\">, \u00bfActivar S o N?: <\/span><span class=\"si\">%c<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">%<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Plone\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"S\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">CMS: Plone, \u00bfActivar S o N?: S<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"N. factura: <\/span><span class=\"si\">%d<\/span><span class=\"s2\">, Total a pagar: <\/span><span class=\"si\">%f<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">%<\/span> <span class=\"p\">(<\/span><span class=\"mi\">345<\/span><span class=\"p\">,<\/span> <span class=\"mf\">658.23<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">N. factura: 345, Total a pagar: 658.230000<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"Tipo Octal: <\/span><span class=\"si\">%o<\/span><span class=\"s2\">, Tipo Hexadecimal: <\/span><span class=\"si\">%x<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">%<\/span> <span class=\"p\">(<\/span><span class=\"mi\">027<\/span><span class=\"p\">,<\/span> <span class=\"mh\">0x17<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">Tipo Octal: 27, Tipo Hexadecimal: 17<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"clase-formatter\" class=\"section\"><span id=\"python-str-formatter\"><\/span><\/p>\n<h3>Clase formatter<\/h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">formatter<\/span><\/code>\u00a0es una de las clases integradas\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">string<\/span><\/code>. Ese provee la habilidad de hacer variable compleja de substituciones y formateo de valores usando el m\u00e9todo\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion3\/tipo_cadenas.html#python-mtd-format\"><span class=\"std std-ref\">format()<\/span><\/a>. Es le permite crear y personalizar sus propios comportamientos de formatos de cadena de caracteres para reescribir los m\u00e9todos p\u00fablicos y contiene:\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">format()<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">vformat()<\/span><\/code>. Ese tiene algunos m\u00e9todos que son destinado para ser remplazados por las sub-clases:\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">parse()<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">get_field()<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">get_value()<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">check_unused_args()<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">format_field()<\/span><\/code>\u00a0y\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">convert_field()<\/span><\/code>.<\/p>\n<div id=\"format\" class=\"section\"><span id=\"python-mtd-format\"><\/span><\/p>\n<h4>format()<\/h4>\n<p>Este m\u00e9todo devuelve una versi\u00f3n formateada de una cadena de caracteres, usando substituciones desde argumentos\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">args<\/span><\/code>\u00a0y\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs<\/span><\/code>. Las substituciones son identificadas entre llaves\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">{<\/span>\u00a0<span class=\"pre\">}<\/span><\/code>\u00a0dentro de la cadena de caracteres (llamados campos de formato), y son sustituidos en el orden con que aparecen como argumentos de\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">format()<\/span><\/code>, contando a partir de cero (<em>argumentos posicionales<\/em>).<\/p>\n<p>Esto es una forma m\u00e1s clara y elegante es referenciar objetos dentro de la misma cadena, y usar este\u00a0<em>m\u00e9todo<\/em>\u00a0para sustituirlos con los objetos que se le pasan como argumentos.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">{}<\/span><span class=\"s2\"> es <\/span><span class=\"si\">{}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.41421356237<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Tambi\u00e9n se puede referenciar a partir de la posici\u00f3n de los valores utilizando \u00edndices:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">{0}<\/span><span class=\"s2\"> es <\/span><span class=\"si\">{1}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.41421356237<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Los objetos tambi\u00e9n pueden ser referenciados utilizando un identificador con una clave y luego pasarla como argumento al m\u00e9todo:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">{nombre}<\/span><span class=\"s2\"> es <\/span><span class=\"si\">{resultado}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"n\">nombre<\/span><span class=\"o\">=<\/span><span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">resultado<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.41421356237<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Formateo avanzado<\/strong><\/p>\n<p>Este m\u00e9todo soporta muchas t\u00e9cnicas de formateo, aqu\u00ed algunos ejemplos:<\/p>\n<p>Alinear una cadena de caracteres a la derecha en 30 caracteres, con la siguiente sentencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:&gt;30}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">     ra\u00edz cuadrada de dos<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Alinear una cadena de caracteres a la izquierda en 30 caracteres (crea espacios a la derecha), con la siguiente sentencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:30}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">ra\u00edz cuadrada de dos<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Alinear una cadena de caracteres al centro en 30 caracteres, con la siguiente sentencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:^30}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">    ra\u00edz cuadrada de dos<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Truncamiento a 9 caracteres, con la siguiente sentencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:.9}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">ra\u00edz cua<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Alinear una cadena de caracteres a la derecha en 30 caracteres con truncamiento de 9, con la siguiente sentencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:&gt;30.9}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">                     ra\u00edz cua<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Formateo por tipo<\/strong><\/p>\n<p>Opcionalmente se puede poner el signo de dos puntos despu\u00e9s del n\u00famero o nombre, y explicitar el tipo del objeto:<\/p>\n<ul class=\"simple\">\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">s<\/span><\/code>\u00a0para cadenas de caracteres (tipo\u00a0<span class=\"std std-ref\">str<\/span>).<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">d<\/span><\/code>\u00a0para n\u00fameros enteros (tipo\u00a0<span class=\"std std-ref\">int<\/span>).<\/li>\n<li><code class=\"docutils literal notranslate\"><span class=\"pre\">f<\/span><\/code>\u00a0para n\u00fameros de coma flotante (tipo\u00a0<span class=\"std std-ref\">float<\/span>).<\/li>\n<\/ul>\n<p>Esto permite controlar el formato de impresi\u00f3n del objeto. Por ejemplo, usted puede utilizar la expresi\u00f3n\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">.4f<\/span><\/code>\u00a0para determinar que un n\u00famero de coma flotante (<code class=\"docutils literal notranslate\"><span class=\"pre\">f<\/span><\/code>) se imprima con cuatro d\u00edgitos despu\u00e9s de la coma (<code class=\"docutils literal notranslate\"><span class=\"pre\">.4<\/span><\/code>).<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tipo_calculo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"ra\u00edz cuadrada de dos\"<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">**<\/span><span class=\"mf\">0.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"el resultado de <\/span><span class=\"si\">{0}<\/span><span class=\"s2\"> es <\/span><span class=\"si\">{resultado:.4f}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"n\">tipo_calculo<\/span><span class=\"p\">,<\/span> <span class=\"n\">resultado<\/span><span class=\"o\">=<\/span><span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">el resultado de ra\u00edz cuadrada de dos es 1.4142<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Formateo de n\u00fameros enteros, rellenados con espacios, con las siguientes sentencias:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:4d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">  10<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:4d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">100<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\"> 100<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:4d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">1000<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">1000<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Formateo de n\u00fameros enteros, rellenados con ceros, con las siguientes sentencias:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:04d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">0010<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:04d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">100<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">0100<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:04d}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mi\">1000<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">1000<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Formateo de n\u00fameros flotantes, rellenados con espacios, con las siguientes sentencias:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:7.3f}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mf\">3.1415926<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">  3.142<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:7.3f}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mf\">153.21<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">153.210<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Formateo de n\u00fameros flotantes, rellenados con ceros, con las siguientes sentencias:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:07.3f}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mf\">3.1415926<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">003.142<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"<\/span><span class=\"si\">{:07.3f}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span><span class=\"mf\">153.21<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">153.210<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"convertir-a-cadenas-de-caracteres\" class=\"section\">\n<h2>3.8.10. Convertir a cadenas de caracteres<\/h2>\n<p>Para convertir a\u00a0<em>tipos cadenas de caracteres<\/em>\u00a0debe usar la funci\u00f3n\u00a0<span class=\"std std-ref\">str()<\/span>\u00a0la cual\u00a0<span class=\"std std-ref\">esta integrada<\/span>\u00a0en el interprete Python.<\/p>\n<div class=\"admonition tip\">\n<p class=\"first admonition-title\">Truco<\/p>\n<p class=\"last\">Para m\u00e1s informaci\u00f3n consulte las funciones integradas para\u00a0<span class=\"std std-ref\">operaciones en cadenas de caracteres<\/span>.<\/p>\n<\/div>\n<hr class=\"docutils\" \/>\n<\/div>\n<div id=\"ejemplos\" class=\"section\"><span id=\"python-str-ejs\"><\/span><\/p>\n<h2>Ejemplos<\/h2>\n<p>A continuaci\u00f3n, se presentan algunos ejemplos de su uso:<\/p>\n<p><strong>Ejemplo de definir cadenas de caracteres con comillas simples<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"c1\"># Definir comillas simples<\/span>\r\n<span class=\"n\">cadena1<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Texto entre comillas simples,'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de definir cadenas de caracteres con comillas dobles<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"c1\"># Definir comillas dobles<\/span>\r\n<span class=\"n\">cadena2<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Texto entre comillas dobles,\"<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de definir cadenas de caracteres con c\u00f3digo escapes<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"c1\"># Definir cadena con c\u00f3digo escapes<\/span>\r\n<span class=\"n\">cadena3<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Texto entre <\/span><span class=\"se\">\\n\\t<\/span><span class=\"s1\">comillas simples,'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de definir cadenas de caracteres con varias lineas<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"c1\"># Definir cadena varias lineas<\/span>\r\n<span class=\"n\">cadena4<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"\"\"Texto linea 1<\/span>\r\n<span class=\"s2\">linea 2<\/span>\r\n<span class=\"s2\">linea 3<\/span>\r\n<span class=\"s2\">linea 4<\/span>\r\n<span class=\"s2\">.<\/span>\r\n<span class=\"s2\">.<\/span>\r\n<span class=\"s2\">.<\/span>\r\n<span class=\"s2\">.<\/span>\r\n<span class=\"s2\">.<\/span>\r\n<span class=\"s2\">linea N\"\"\"<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo operadores de repetici\u00f3n de cadenas de caracteres<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">cadena5<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Cadena\"<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">3<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">cadena5<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">\",\"<\/span><span class=\"p\">,<\/span> <span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">cadena5<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo operadores de concatenaci\u00f3n de cadenas de caracteres<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">nombre<\/span><span class=\"p\">,<\/span> <span class=\"n\">apellido<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Leonardo\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Caballero\"<\/span>\r\n<span class=\"n\">nombre_completo<\/span> <span class=\"o\">=<\/span> <span class=\"n\">nombre<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">\" \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">apellido<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">nombre_completo<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">\",\"<\/span><span class=\"p\">,<\/span> <span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">nombre_completo<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de medir tama\u00f1o de la cadena con funci\u00f3n \u00ablen()\u00bb<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"El tama\u00f1o de la cadena es:\"<\/span><span class=\"p\">,<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">nombre_completo<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de acceder a rango de la cadena<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Acceso a rango de cadena: \"<\/span><span class=\"p\">,<\/span> <span class=\"n\">nombre_completo<\/span><span class=\"p\">[<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">13<\/span><span class=\"p\">])<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de consulta de ayuda a la funci\u00f3n len<\/strong><\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"nb\">len<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on built-in function len in module __builtin__:<\/span>\r\n\r\n<span class=\"go\">len(...)<\/span>\r\n<span class=\"go\">    len(object) -&gt; integer<\/span>\r\n\r\n<span class=\"go\">    Return the number of items of a sequence or collection.<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de consulta de ayuda a la clase int<\/strong><\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"nb\">int<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on class int in module __builtin__:<\/span>\r\n\r\n<span class=\"go\">class int(object)<\/span>\r\n<span class=\"go\"> |  int(x=0) -&gt; int or long<\/span>\r\n<span class=\"go\"> |  int(x, base=10) -&gt; int or long<\/span>\r\n<span class=\"go\"> |<\/span>\r\n<span class=\"go\"> |  Convert a number or string to an integer, or return 0 if no arguments<\/span>\r\n<span class=\"go\"> |  are given.  If x is floating point, the conversion truncates towards zero.<\/span>\r\n<span class=\"go\"> |  If x is outside the integer range, the function returns a long instead.<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de consulta de ayuda del m\u00f3dulo<\/strong><\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"kn\">import<\/span> <span class=\"nn\">datetime<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">datetime<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"go\">Help on built-in module datetime:<\/span>\r\n\r\n<span class=\"go\">NAME<\/span>\r\n<span class=\"go\">    datetime - Fast implementation of the datetime type.<\/span>\r\n\r\n<span class=\"go\">FILE<\/span>\r\n<span class=\"go\">    (built-in)<\/span>\r\n\r\n<span class=\"go\">CLASSES<\/span>\r\n<span class=\"go\">    __builtin__.object<\/span>\r\n<span class=\"go\">        date<\/span>\r\n<span class=\"go\">            datetime<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"ayuda-integrada\" class=\"section\">\n<h2>3.8.12. Ayuda integrada<\/h2>\n<p>Usted puede consultar toda la documentaci\u00f3n disponible sobre las\u00a0<span class=\"std std-ref\">cadenas de caracteres<\/span>\u00a0desde la\u00a0<span class=\"std std-ref\">consola interactiva<\/span>\u00a0de la siguiente manera:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"nb\">str<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Para salir de esa ayuda presione la tecla\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">q<\/span><\/code>.<\/p>\n<p>Usted puede consultar toda la documentaci\u00f3n disponible sobre las cadenas de caracteres\u00a0<span class=\"std std-ref\">unicode<\/span>\u00a0desde la\u00a0<span class=\"std std-ref\">consola interactiva<\/span>\u00a0de la siguiente manera:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">help<\/span><span class=\"p\">(<\/span><span class=\"n\">unicode<\/span><span class=\"p\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tipo cadenas de caracteres Las cadenas de caracteres, son secuencias inmutables que contienen caracteres encerrado entre comillas. Cadenas cortas Son caracteres encerrado entre comillas simples (&#8216;) o dobles (\u00ab). &gt;&gt;&gt; &#8216;Hola Mundo&#8217; &#8216;Hola Mundo&#8217; Cadenas largas Son caracteres encerrados entre grupo comillas triples simples (\u00bb&#8217;) o dobles (\u00ab\u00bb\u00bb), est\u00e1n son generalmente son referenciadas como\u00a0cadenas de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[39,40],"tags":[],"class_list":["post-351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/equipomedios.com\/blog\/wp-content\/uploads\/2024\/08\/python-logo-master-v3-TM.png?fit=601%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/comments?post=351"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/351\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/351\/revisions\/352"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media?parent=351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}