Elementos del Lenguaje


Delimitadores

Cuando se usan funciones PCRE, se requiere que el patrón esté encerrado entre delimitadores. Un delimitador puede ser cualquier carácter no alfanumérico, que no sea una barra invertida, y que no sea un espacio en blanco.
Los delimitadores que se usan a menudo son barras oblícuas (/), signos de número (#) y virgulillas (~). Los siguientes ejemplos son todos patrones delimitados válidos.
/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
También es posible utilizar los delimitadores estilo corchete, donde los corchetes de apertura y cierre son los delimitadores inicial y final, respectivamente. (){}[] y <> son todos pares de delimitadores válidos.
(this [is] a (pattern))
{this [is] a (pattern)}
<this [is] a (pattern)>
[this [is] a (pattern)]

Si el delimitador necesita ser comparado dentro del patrón se debe escapar usando una barra invertida. Si el delimitador aparece a menudo dentro del patrón, es una buena idea escoger otro delimitador para aumentar la legibilidad.
/http:\/\//
#http://#
La función preg_quote() se puede usar para escapar una cadena para inyectarla dentro de un patrón y su segundo parámetro opcional de puede usar parar especificar el delimitador a escapar.
Puede añadir modificadores de patrón después del delimitador final. El siguiente es un ejemplo de comparación insensible a mayúsculas-minúsculas:
#[a-z]#i
1) Carácter usado para separar las sub-cadenas, en la cadena a devolver.

2) Se llama delimitador a las palabras reservadas if, else, then, Select Case, switch, for, while, etc. 

El juego de caracteres



La codificación de caracteres es el método que convierte un carácter de un lenguaje natural en un símbolo de otro sistema de representación, como un número o en el caso de un ordenador una secuencia de unos y ceros. El juego de caracteres es la equivalencia carácter a carácter de la codificación de los caracteres de un lenguaje natural a un sistema de representación.

El juego de caracteres es la pesadilla de cualquier informático. Desgraciadamente, es un problema que heredamos desde los orígenes de los ordenadores y que parece que no nos lo vamos a poder quitar de encima… Por ejemplo, en la siguiente figura podemos ver lo que ocurre cuando se recibe un correo electrónico y el juego de caracteres utilizado o indicado en el correo no es el correcto.


Ejemplo de correo electrónico que no se visualiza correctamente porque existe un problema con el juego de caracteres empleado.




Durante muchos años, el juego de caracteres más extendido era ASCII. En ASCII, a cada carácter se le asigna un número del 0 al 127 (7 bits). ASCII sólo permite 128 caracteres diferentes, suficientes para el inglés, pero no incluye ni la eñe, ni las vocales acentuadas ni el comienzo de interrogación o exclamación que se usa en castellano, ni símbolos (matemáticos, letras griegas...) que son necesarios en muchos contextos.

En la siguiente figura se muestra la tabla de caracteres ASCII incluida en el manual de un terminal del año 1972. Para calcular el código en decimal de un carácter se debe multiplicar por 16 el valor indicado en "Column" y sumar el valor indicado en "Row". Por ejemplo, la letra "A" mayúscula es 4x16 + 1 = 65, mientras que la letra "a" minúscula es 6x16 + 1 = 97.



ASCII Code Chart, scanner copied from the material delivered with TermiNet 300 impact type printer with Keyboard, February 1972, General Electric Data communication Product Dept., Waynesboro VA. 


El juego de caracteres ASCII extendido de 256 caracteres (8 bits) permite representar caracteres no ingleses como las vocales acentuadas o la eñe. Los caracteres de la parte superior (128 a 255) del ASCII extendido varían entre distintos juegos de caracteres. Por ejemplo, el ISO Latin-1 (oficialmente ISO 8859-1), es el empleado en España, ya que contiene las vocales acentuadas y la eñe. Este juego de caracteres también es el que normalmente se emplea en los países de Europa occidental. Sin embargo, ISO 8859-1 no es capaz de representar todos los caracteres y símbolos que se puedan necesitar en diferentes países, por lo que existen diferentes variantes tal como se puede observar en la siguiente figura que muestra un fragmento de las diferencias que existen entre las variantes ISO 8859-1 e ISO 8859-16 (la variante ISO 8859-12 fue abandonada).


Diferencias del juego de caracteres ISO 8859. Fuente: Wikipedia, ISO/IEC 8859




En esta tabla se pueden apreciar estas diferencias entre los diferentes juegos de caracteres. Algunos ejemplos de estas diferencias son:


En los juegos de caracteres ISO 8859-1 (Europa occidental), 8859-2 (Europa occidental y Centroeuropa), 8859-3 (Europa occidental y Europa del sur) y 8859-4 (Europa occidental y países bálticos) el código decimal 201 representa el carácter “É”, mientras que en ISO 8859-5 (Alfabeto cirílico) eso mismo código representa el carácter “Щ”.
En el juego de caracteres ISO 8859-1 el código decimal 209 representa el carácter “Ñ”, en ISO 8859-2 el carácter “Ń”, en ISO 8859-2 el carácter “Ñ”, en ISO 8859-1 el carácter “Ņ” y en ISO 8859-1 el carácter “б”.

En la actualidad se recomienda utilizar Unicode en las páginas web. Unicode es un estándar diseñado para facilitar el tratamiento informático, la transmisión y la visualización de textos escritos en múltiples lenguajes.


Manejo de Operadores en Programación


Las estructuras de control permiten determinar la secuencia de ejecución de las sentencias o instrucciones de un programa. En programación existen tres tipos de estructuras de control, la secuencia, las de decisión (también llamadas selectivas o condicionales) y las repetitivas.




La estructura secuencial permite ejecutar las instrucciones de un programa en forma de secuencia, cada una de las instrucciones están separadas por el carácter punto y coma (;) y se ejecutan una después de la otra.

Las estructuras de decisión (condicionales) determinan si se ejecutan un grupo de instrucciones u otras según se cumpla o no una determinada condición. En programación existen básicamente tres tipos de estructuras de decisión, el if, el if – else y la estructura switch.

Las estructuras repetitivas permiten ejecutar de forma repetida un bloque específico de instrucciones. Existen tres tipos de ciclos o estructuras repetitivas, la estructura while, la do – while y la estructura for.

Los operadores en programación se dividen en aritméticos, relacionales y lógicos.

Operadores aritméticos

Se usan para realizar operaciones de la matemática básica como la suma, resta, multiplicación, división.



Operadores de Relacionales

Los operadores relacionales se usan para evaluar expresiones condicionales y se basan en el concepto de verdadero o falso.

Operadores Lógicos

Los operadores lógicos son usados para concatenar dos o más expresiones con operadores relacionales.

Ejemplos

  • 3 > 2 && 4 < 5 VERDADERO, porque ambas expresiones son verdaderas
  • 3 > 2 && 4 < 3 FALSO, porque hay una expresión falsa
  • 3 > 2 || 4 < 3 VERDADERO, Porque hay una expresión verdadera
  • 6 < 4 || 7 > 8 FALSO, Porque ambas expresiones son verdaderas
El operador lógico “and” solo da como resultado Verdadero si ambas expresiones son verdaderas.


El operador “or” da como resultado Verdadero cuando al menos una de las expresiones sea verdadera.


Tipos de datos

Un tipo de datos es la propiedad de un valor que determina su dominio (qué valores puede tomar), qué operaciones se le pueden aplicar y cómo es representado internamente por el computador.
Todos los valores que aparecen en un programa tienen un tipo.
A continuación revisaremos los tipos de datos elementales de Python. Además de éstos, existen muchos otros, y más adelante aprenderemos a crear nuestros propios tipos de datos.

Números enteros

El tipo int (del inglés integer, que significa «entero») permite representar números enteros.
Los valores que puede tomar un int son todos los números enteros: ... -3-2-10123, ...
Los números enteros literales se escriben con un signo opcional seguido por una secuencia de dígitos:
1570
+4591
-12

Números reales

El tipo float permite representar números reales.
El nombre float viene del término punto flotante, que es la manera en que el computador representa internamente los números reales.
Hay que tener mucho cuidado, porque los números reales no se pueden representar de manera exacta en un computador. Por ejemplo, el número decimal 0.7 es representado internamente por el computador mediante la aproximación 0.69999999999999996. Todas las operaciones entre valores float son aproximaciones. Esto puede conducir a resultados algo sorpresivos:
>>> 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7
0.9999999999999998
Los números reales literales se escriben separando la parte entera de la decimal con un punto. Las partes entera y decimal pueden ser omitidas si alguna de ellas es cero:
>>> 881.9843000
881.9843
>>> -3.14159
-3.14159
>>> 1024.
1024.0
>>> .22
0.22
Otra representación es la notación científica, en la que se escribe un factor y una potencia de diez separados por una letra e. Por ejemplo:
>>> -2.45E4
-24500.0
>>> 7e-2
0.07
>>> 6.02e23
6.02e+23
>>> 9.1094E-31
9.1094e-31
Los dos últimos valores del ejemplo son iguales, respectivamente, a 6.02×1023 (la constante de Avogadro) y 9.1094×1031 (la masa del electrón).

Números complejos

El tipo complex permite representar números complejos.
Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada agregando una j inmediatamente después de su valor:
3 + 9j
-1.4 + 2.7j

Valores lógicos

Los valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores lógicos.
El nombre bool viene del matemático George Boole, quien creó un sistema algebraico para la lógica binaria. Por lo mismo, a True y False también se les llama valores booleanos. El nombre no es muy intuitivo, pero es el que se usa en informática, así que hay que conocerlo.

Texto

A los valores que representan texto se les llama strings, y tienen el tipo str.
Los strings literales pueden ser representados con texto entre comillas simples o comillas dobles:
"ejemplo 1"
'ejemplo 2'
La ventaja de tener dos tipos de comillas es que se puede usar uno de ellos cuando el otro aparece como parte del texto:
"Let's go!"
'Ella dijo "hola"'
Es importante entender que los strings no son lo mismo que los valores que en él pueden estar representados:
>>> 5 == '5'
False
>>> True == 'True'
False
Los strings que difieren en mayúsculas y minúsculas, o en espacios también son distintos:
>>> 'mesa' == 'Mesa'
False
>>> ' mesa' == 'mesa '
False

Nulo

Existe un valor llamado None (en inglés, «ninguno») que es utilizado para representar casos en que ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga sentido.
El valor None tiene su propio tipo, llamado NoneType, que es diferente al de todos los demás valores.






Comentarios