Glosario
Glosario
-Lenguaje informático: es un idioma artificial, utilizado por ordenadores, cuyo fin es transmitir
información de algo a alguien. Los lenguajes informáticos, pueden clasificarse en: a) lenguajes de
programación (Python, PHP, Pearl, C, etc.); b) lenguajes de especificación (UML); c) lenguajes de
consulta (SQL); d) lenguajes de marcas (HTML, XML); e) lenguajes de transformación (XSLT); f)
protocolos de comunicaciones (HTTP, FTP); entre otros.
-Lenguajes de alto nivel: son aquellos cuya característica principal, consiste en una estructura sintáctica
y semántica legible, acorde a las capacidades cognitivas humanas. A diferencia de los lenguajes de bajo
nivel, son independientes de la arquitectura del hardware, motivo por el cual, asumen mayor
portabilidad.
-Tipado dinámico: un lenguaje de tipado dinámico es aquel cuyas variables, no requieren ser definidas
asignando su tipo de datos, sino que éste, se auto-asigna en tiempo de ejecución, según el valor
declarado.
-Multiplataforma: significa que puede ser interpretado en diversos Sistemas Operativos como
GNU/Linux, Windows, Mac OS, Solaris, entre otros.
Python nos provee de un intérprete, es decir un programa que interpreta las órdenes que le damos a
medida que las escribimos.
Se dice que estamos usando el intérprete en modo interactivo, cuando los comandos son leídos desde
una terminal. En este modo la escritura de comandos se da con el prompt primario, usualmente tres
signos mayor-que (>>>); para las líneas de continuación está el prompt secundario, por defecto tres
puntos (...). Antes de mostrar el prompt primario, el intérprete muestra un mensaje de bienvenida
reportando su número de versión y una nota de copyright:
python
Python 2.6 (#1, Feb 28 2007, 00:02:06)
Type "help", "copyright", "credits" or "license" for more information.
>>>
Las líneas de continuación son necesarias cuando queremos ingresar un constructor multilínea. Como
en el ejemplo, mirá la sentencia if:
If this is your first time using Python, you should definitely check
out the tutorial on the Internet at http://www.python.org/doc/tut/.
Para ejecutar la ayuda disponible sobre la sintaxis Python ejecute el siguiente comando:
help> modules
>>> import os
>>>
Previamente importada la librería usted puede usar el comando dir para listar o descubrir que atributos, métodos
de la clase están disponibles con la importación
>>> dir(os)
['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST',
'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE',
…..
Finalizar una sesión interactiva
En Linux:
Ctrl+D o exit()
En Windows:
Ctrl+Z o exit()
*Manejo de errores
Cuando ocurre un error, el intérprete imprime un mensaje de error y la traza del error. En el modo
interactivo, luego retorna al prompt primario; cuando la entrada viene de un archivo, el programa
termina con código de salida distinto a cero luego de imprimir la traza del error. (Las excepciones
manejadas por una clausula except en una sentencia try no son errores en este contexto). Algunos
errores son incondicionalmente fatales y causan una terminación con código de salida distinto de cero;
esto se debe a inconsistencias internas o a que el intérprete se queda sin memoria. Todos los mensajes
de error se escriben en el flujo de errores estándar.
1. Clasificación estándar
Los tipos de datos compuestos estándar se pueden clasificar como los dos siguientes:
Mutable: su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
Inmutable: su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.
Se pueden resumir los tipos de datos compuestos estándar en la siguiente tabla:
En algunos lenguajes de programación, las variables se pueden entender como "cajas" en las que se
guardan los datos, pero en Python las variables son "etiquetas" que permiten hacer referencia a los
datos (que se guardan en unas "cajas" llamadas objetos).
Python es un lenguaje de programación orientado a objetos y su modelo de datos también está basado
en objetos.
Para cada dato que aparece en un programa, Python crea un objeto que lo contiene. Cada objeto tiene:
un identificador único (un número entero, distinto para cada objeto). El identificador permite a
Python referirse al objeto sin ambigüedades.
un tipo de datos (entero, decimal, cadena de caracteres, etc.). El tipo de datos permite saber a
Python qué operaciones pueden hacerse con el dato.
un valor (el propio dato)
Así, las variables en Python no guardan los datos, sino que son simples nombres para poder hacer
referencia a esos objetos. Si escribimos la instrucción ...
a=2
Para que IDLE muestre el valor de una variable, basta con escribir su nombre:
>>> x = 2.5
>>> x
2.5
>>> x = -10
>>> y
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
NameError: name 'y' is not defined
Una variable puede almacenar números, texto o estructuras más complicadas (que se verán más
adelante). Si se va a almacenar texto, el texto debe escribirse entre comillas simples (') o dobles ("), que
son equivalentes. A las variables que almacenan texto se les suele llamar cadenas (de texto).
Si no se escriben comillas, Python supone que estamos haciendo referencia a otra variable (que, si no
está definida, genera un mensaje de error):
El nombre de una variable debe empezar por una letra o por un guion bajo (_) y puede seguir con más
letras, números o guiones bajos.
PEP 8: variables
Se debe utilizar nombres descriptivos y en minúsculas. Para nombres compuestos, separar las
palabras por guiones bajos. Antes y después del signo =, debe haber uno (y solo un) espacio en
blanco
Correcto: mi_variable = 12
Incorrecto: MiVariable = 12 | mivariable = 12 | mi_variable=12 | mi_variable = 12
PEP 8: constantes
Se debe utilizar nombres descriptivos y en mayúsculas separando palabras por guiones bajos.
Ejemplo: MI_CONSTANTE = 12
>>> x = 3.8
>>> x
3.8
-------
>>> _x = 100
>>> _x
100
-------
>>>año = 1997
Los nombres de las variables pueden contener mayúsculas, pero tenga en cuenta que Python distingue
entre mayúsculas y minúsculas (en inglés se dice que Python es "case-sensitive").
Cuando el nombre de una variable contiene varias palabras, se aconseja separarlas con guiones bajos
para facilitar la legibilidad, aunque también se utiliza la notación camelCase, en las que las palabras no
se separan pero empiezan con mayúsculas (salvo la primera palabra).
Las palabras reservadas del lenguaje (las que IDLE escribe en naranja) están prohibidas como nombres
de variables:
>>> lambda = 3
SyntaxError: invalid syntax
Los nombres de las funciones integradas sí que se pueden utilizar como nombres de variables, pero más
vale no hacerlo porque a continuación ya no se puede utilizar la función como tal:
>>> print = 3
>>> print("Hola")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
print("Hola")
TypeError: 'int' object is not callable
Una vez se ha definido una variable, se puede utilizar para hacer cálculos o para definir nuevas
variables, como muestran los siguientes ejemplos:
>>> a = 2
>>> a + 3
5
-----
>>> horas = 5
>>> minutos = 60 * horas
>>> segundos = 60 * minutos
>>> segundos
18000
----
>>> horas = 1
>>> minutos = 2
>>> segundos = 3
>>> segundos + 60 * minutos + 3600 * horas
3723
En caso de utilizar una variable no definida anteriormente, Python genera un mensaje de error.
>>> a = 10
>>> a = a + 5
>>> a
15
Esto es posible porque el símbolo de igualdad significa siempre asignación. Lo que hace Python es
calcular la expresión situada a la derecha de la igualdad y después guardar el resultado en la variable
situada a la izquierda de la igualdad. En el ejemplo, Python coge el valor almacenado en la variable a
(10), le suma 5, y el resultado (15) lo guarda en la misma variable a.
Es importante tener presente que las igualdades son siempre asignaciones, nunca ecuaciones. En el
ejemplo, la expresión a = a + 5 no tendría mucho sentido como ecuación (no tendría solución), pero
como asignación lo que hace es aumentar en 5 el valor de la variable a.
Es importante también tener presente que los nombres de las variables no tienen sentido real para
Python, son simples etiquetas para referirse al contenido.
Por ejemplo, en el siguiente ejemplo se crean dos variables y se suman, aunque en el mundo real hay
gente que opina que se pueden sumar peras y manzanas:
>>> peras = 7
>>> manzanas = 22
>>> peras + manzanas
29
O el siguiente ejemplo en el que Python permite realizar cualquier operación con las variables distancia
y tiempo, aunque no tengan sentido físico (de hecho, sólo la división lo tiene, es la velocidad).
Cuando se modifica una variable, el valor anterior se pierde y no se puede recuperar (salvo si se realiza
la operación contraria o hay otra variable que conserva el valor anterior).
Hay que tener cuidado al modificar una variable que se ha utilizado para definir otras variables, porque
esto puede afectar al resto de variables:
Si se trata objetos inmutables, el resto de variables no resultan afectadas, como muestra el siguiente
ejemplo:
>>> a = 10
>>> b = a
>>> a, b
(10, 10)
>>> a = 20
>>> a, b
(20, 10)
>>> a = [10]
>>> b = a
>>> a, b
([10], [10])
>>> a[0] = 20
>>> a, b
([20], [20])
Asignaciones aumentadas
Cuando una variable se modifica a partir de su propio valor, se puede utilizar la denominada
"asignación aumentada", una notación compacta que existe también en otros lenguajes de
programación.
Por ejemplo:
>>> a = 10
>>> a += 5
>>> a
15
Es equivalente a:
>>> a = 10
>>> a = a + 5
>>> a
15
En general:
Nota: Las dos notaciones son completamente equivalentes en el caso de los objetos inmutables
(números, cadenas, tuplas), pero en el caso de los objetos mutables (listas, diccionarios, etc.) hay una
pequeña diferencia que se comenta en la lección Variables 2
En Python no existen los operadores incremento (++) o decremento (--) que sí existen en otros
lenguajes de programación:
>>> a = 5
>>> a++
SyntaxError: invalid syntax
En una misma línea se pueden definir simultáneamente varias variables, con el mismo valor o con
valores distintos, como muestra el siguiente ejemplo:
>>> a = b = 99
>>> c, d, e = "Mediterráneo", 10, ["pan", "queso"]
En el primer caso las dos variables tendrán el mismo valor. En el segundo caso la primera variable
tomará el primer valor y así sucesivamente.
>>> a, b, c = 1, 2
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a, b, c = 1, 2
ValueError: need more than 2 values to unpack
-----
>>> a, b, c = 1, 2, 3, 4
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a, b, c = 1, 2, 3, 4
ValueError: too many values to unpack
Se pueden modificar varias variables en una sola instrucción y la modificación se realiza en un solo
paso.
>>> a, b = 5, 10
>>> a, b
(5, 10)
>>> a, b = b, a
>>> a, b
(10, 5)
Obsérvese que si este procedimiento lo hubiéramos hecho paso a paso, el resultado hubiera sido
distinto:
>>> a, b = 5, 10
>>> a, b
(5, 10)
>>> a = b
>>> b = a
>>> a, b
(10, 10)
El motivo de este resultado se entiende fácilmente mostrando los valores tras cada operación:
>>> a, b = 5, 10
>>> a, b
(5, 10)
>>> a = b
>>> a, b
(10, 10)
>>> b = a
>>> a, b
(10, 10)
EJEMPLOS:
A continuación, se creará un par de variables a modo de ejemplo. Una de tipo cadenas de caracteres y
una de tipo entero:
A continuación, se cambiará el valor para una variable de tipo cadenas de caracteres a modo de
ejemplo:
A continuación, se creará múltiples variables (entero, coma flotante, cadenas de caracteres) asignando
múltiples valores:
Si usted quiere asignar el mismo valor a múltiples variables al mismo tiempo, usted puede hacer lo
siguiente:
>>> x = y = z = True
>>> print x
True
>>> print y
True
>>> print z
True
El segundo programa asigna el mismo valor booleano a todas las tres variables x, y, z.
TIPOS DE VARIABLES
Números
En números hay dos tipos principales, los números enteros (llamados int) y los reales (llamados float).
El separador decimal que tenemos que usar es el punto.
Aunque si no decimos el tipo de número que va a contener, Python intentará decidir por si mismo cuál
es el más apropiado, esto en ocasiones produce errores. Mi recomendación mientras estés empezando a
aprender, es la de que siempre especificar qué tipo de número es, ya que evitará futuras frustraciones.
Para saber de qué tipo es una determinada variable, basta con preguntarle a Python type(variable).
Texto
Las variables que almacenan texto se denominan strings (str). Tienen que estar entre comillas
sencillas(‘) o dobles («), o si el texto ocupa varias líneas, entre triples comillas dobles («»») .
--------
---------
Al igual que sucedía con los números, Python supone que lo que introducimos es un texto al estar entre
comillas, aunque siempre podemos forzarle a interpretarlo como texto usando el comando str.
>>> texto3=str(54)
>>> print(texto3)
54
EJEMPLO:
texto="Esto es un texto"
numero=15
Cadenas en Python puede ser incluida en cualquiera de los dos comillas simples (') o comillas dobles
(") o tambien comillas triples de cada una (''' o """)
Cadenas de comillas doble pueden contener comilla simple dentro de ellas, como en "Bruce's Beard", y
cadenas de comilla simple pueden tener comillas doble dentro de ellas tambien, como en 'Los
caballeros que dicen "Ni!"'.
Cadenas cerradas con tres apariciones de los símbolos citan son llamados cuerdas triples cita. Pueden
contener comillas simples o dobles:
>>> print('''"Oh no", ella exclamó, "La moto de Ben está dañada!"''')
"Oh no", ella exclamó, "La moto de Ben está dañada!"
>>>
EJEMPLO
Aunque se definan de forma similar, para Python no es lo mismo un número entero, un número decimal
o una cadena ya que, por ejemplo, dos números se pueden multiplicar pero dos cadenas no
(curiosamente, una cadena sí que se puede multiplicar por un número).
En el primer caso la variable fecha está almacenando un número entero, en el segundo fecha está
almacenando un número decimal y en el tercero fecha está almacenando una cadena de cuatro letras.
En el cuarto, fecha está almacenando una lista (un tipo de variable que puede contener varios elementos
ordenados).
Este ejemplo demuestra también que se puede volver a definir una variable. Python modifica el tipo de
la variable automáticamente.
Mostrar el valor de las variables en IDLE
Para que IDLE muestre el valor de una variable, basta con escribir su nombre.
>>> a = 2
>>> a
2
También se puede conocer el valor de varias variables a la vez escribiéndolas entre comas (IDLE las
mostrará entre paréntesis porque Python las considera como un conjunto ordenado llamado tupla),
como muestra el siguiente ejemplo:
>>> a = b = 2
>>> c = "pepe"
>>> a
2
>>> c, b
('pepe', 2)