martes, 1 de diciembre de 2015

T1. OPERADORES DE LAS STRING. TAMBIÉN TIENEN DERECHO.

QUEBRADAS EN EL MACIZO DE TENO, ZONA DE MASCA, CON EL TEIDE ASOMANDO AL FONDO
     De la misma forma que los números, fuera cual fuese su tipo, cuando hablábamos del uso de Python como calculadora, soportan OPERADORES ARITMÉTICOS para interactuar entre ellos; construir expresiones aritméticas simples como la suma, la exponenciación, la resta, etc. y devolver un resultado, las STRING, qué menos,  cuentan también con sus propios OPERADORES DE LAS STRING para interactuar entre ellas, hacer ciertas cosas y devolver un resultado.
Empecemos por los ESCAPES:
A) OPERADOR \ (llamado "barra invertida", "backslash" o "contrabarra"): Se utiliza normalmente para escapar comillas. Si escribimos esto:


Observaremos que no tenemos ningún problema a la hora de mostrar el resultado. pues el genitivo sajón (¡ay, ese inglés!) es una sola comilla ("single quote"), Barney's, como una substring que forma parte de una string que la contiene y que hemos acotado entre comillas dobles ("double quotes"). Si en lugar de hacerlo así hubiéramos empezado y terminado nuestra string con comillas simples, hubiera ocurrido esto:



Para evitar esto usamos un operador \ que colocamos detrás de la comilla. En este caso la frase se mostrará de manera correcta:


Veámoslo también en estos otros ejemplos:


Para hacer desaparecer las comillas que encierran nuestras frases podemos recurrir a la función print() que nos devuelve un resultado más natural, sin "corsé":


 Para finalizar, estudiemos el siguiente ejemplo:



En 1 empleamos una única barra invertida dentro de la string porque hemos dispuesto que nos salga así. Sin embargo, cuando a continuación llamamos a la variable para que nos muestre lo que tiene almacenado en su espacio de memoria, nos muestra una doble barra invertida, dado que es así como Python la conserva en memoria para su consumo interno. Pero si le pasamos la función print(), aquéllo que el usuario ve impreso en pantalla como sabemos, Python nos devolverá la string con una única barra invertida. En 2, como vemos, sucede igual, a pesar de que en esta ocasión hemos introducido una doble contrabarra en la string que hemos asignado a la variable a: la función print() nos devuelve de nuevo una única barra invertida, como en el caso precedente. Si quisiéramos que la función print() imprimiera las dobles barras tendríamos que escribir tres en la string de la asignación: a = "numerador\\\denominador".

TABAIBAS DULCES SOBRE BANCALES ABANDONADOS EN LA COSTA DE MASCA, FRENTE AL MAR
B) OPERADOR \n: Antes que nada: Al conjunto de contrabarra más carácter se le llama SECUENCIA DE ESCAPE.  Permite escribir en renglones distintos, con los textos separados por el operador unos encimas de otros. Esto es lo que se llama un SALTO DE LÍNEA.
     Tomemos el siguiente ejemplo:


Tal y como podemos ver, la ejecución nos ha devuelto el resultado en "columna", un resultado ITERADO como se suele decir en la jerga de Python, con el matiz peculiar de que la primera entrada va a mostrase siempre un pelín más hacia la izquierda que las demás. Para evitar esto nos basta con dejar un espacio en blanco entre la comilla de apertura y el primer carácter de la substring:


Tengamos presente, sin embargo, que esto sucede así siempre y cuando declaremos el resultado a través de la función print(), porque si lo hacemos directamente desde la variable, esto es lo que ocurre:


Indudablemente, no es éste un resultado lógico ni deseable.
Existe una segunda posibilidad para escribir líneas de texto en renglones distintos: la triple comilla, ("triple quotes"). Éramos pocos y parió la abuela, vaya. Cuando recurrimos a este sistema, una vez hemos completado nuestra primera línea de texto, pulsamos ENTER y, automáticamente, bajamos una línea, sin que nos aparezca el prompt. Fijémonos en que los textos siguen coloreándose en ese verde tranquilizador y sosegante, que nos indica que seguimos construyendo una string dentro de los cánones correctos de Python. Al cabo, cuando hayamos escrito nuestra última línea, cerramos con las tres comillas de rigor (""" o ''', según hayamos optado por las dobles o las simples), y listo. Llamamos a la función print() que nos mostrará el resultado en pantalla:


Notemos que en esta ocasión, la primera línea no está desplazada hacia la izquierda mostrando una iteración perfectamente alineada en todas sus entradas, tres en este caso.
Insistimos: debemos invocar a la función print() para que se nos muestre el resultado tal y como esperamos verlo, porque si lo hacemos directamente desde la variable, esto es lo que ocurre:



Observa que Python realiza una interpretación similar a que si hubiéramos empleado \n.
Un apunte final: las comillas triples tendrán su particular intríngulis cuando hablemos de las DOCSTRINGS. Pero como terminaban las películas de Conan el Bárbaro, "Ésa es otra historia", una historia que, claro está, estudiaremos en su momento.

FLOR DE LA GAMONA EN LA CAMPIÑA DE IFONCHE, VILAFLOR.
C) OPERADOR r: Constituye un caso muy singular. Configura lo que se llama una RAW STRING, una "CADENA CRUDA", traducido al castellano, y de ahí el carácter r, de "raw", que da nombre al operador. Se utiliza para salvar una barra invertida seguida de n, el caso anterior, vamos,\n, cuando ésta tiene alguna significación, por ejemplo, cuando escribimos una url completa o una ruta en las que, casualmente, se da el caso:


 Para corregir este error tan sólo tendremos que escribir r antes de las comillas:


Básicamente, con el operador r se pretende solventar posibles conflictos de sintaxis. Observemos el ejemplo siguiente:


La excepción nos advierte de que se ha producido un error en el carácter de escape \n que es interpretado por Python como un salto de línea, y que el también carácter de escape \t, que ya estudiaremos en su momento, es una tabulación horizontal. Esto es lo que evita precisamente la RAW STRING, la CADENA CRUDA. Para crearla tan sólo tenemos que anteponer la letra r/R, en tanto que admite tanto la minúscula como la mayúscula, a la comilla, simple o doble, de apertura, lo que inducirá a Python a ignorar la condición de secuencias de escape de las expresiones \n y \t:


Pongamos nuestra atención en el detalle: a pesar de que escribimos la r/R fuera del ámbito de las comillas, Python nos la colorea en verde. Es su manera de hacernos saber que está interpretando la cadena como una RAW STRING.
Como hemos podido ver en el ejemplo, nos sirve igualmente una doble barra invertida, en tanto que la segunda contrabarra constituye un escape para la primera, con lo que obtenemos un resultado similar al que tendríamos de haber recurrido a la RAW STRING.
Existen todavía algunos operadores más que estudiaremos algunos capítulos más adelante, cuando la emprendamos con las EXPRESIONES REGULARES, y que cumplen una función muy específica (y hasta divertida, sí, aunque cueste creerlo), pero en principio nos quedamos con estas tres que son las más habituales, más unas pocas que vemos a continuación.

OPERADORES ARIMÉTICOS COMO OPERADORES DE LAS STRING



     Podemos utilizar dos operadores aritméticos, los operadores + y *, para realizar ciertas operaciones con las string. Veamos cuáles:
A) OPERADOR +: Se utiliza para concatenar variables, o una variable con un carácter literal o conjunto de caracteres literarios. Ejemplo:


     
Como acabamos de ver, la función print() también admite como argumento expresiones no excesivamente complejas, como la suma, que hemos representado en el ejemplo, redundando en una de sus características fundamentales: su versatilidad.
Veamos un ejemplo clásico de su uso:


B) OPERADOR *: Se utiliza para repetir de forma concatenada una string tantas veces como indique la cifra que escojamos. Ejemplo al canto: 



CASONA RURAL EN RUINAS EN LA LADERA DE IFONCHE



No hay comentarios:

Publicar un comentario