Actualizado el 23 de Marzo del 2020 (Publicado el 26 de Marzo del 2018)
3.625 visualizaciones desde el 26 de Marzo del 2018
271,3 KB
40 paginas
Creado hace 13a (22/02/2012)
El lenguaje
Python
David Masip Rodó
PID_00174138
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a
una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de
Creative Commons. Podéis copiarlos, distribuirlos y transmitirlos públicamente siempre que citéis
el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), no hagáis un uso
comercial y no hagáis una obra derivada. La licencia completa se puede consultar en
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
CC-BY-NC-ND • PID_00174138
Índice
El lenguaje Python
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.
Instalación de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
7
9
9
2.2. Cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3. Control de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.
Sentencias condicionales: la instrucción if . . . . . . . . . . . . . . . . . . . .
3.1.1.
Sentencias if-elif-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.
Secuencias iterativas: bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.
Bucles for ... in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.
Parámetros de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Valores de retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Tipos de datos en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.
5.2.
Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.
Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1.
Ficheros de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6. Python y la orientación a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.
Los objetos en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1. Creación de instancias (objetos) de una clase . . . . . . . . .
6.2. Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.
6.4.
Encapsulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Python como lenguaje funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.
Funciones lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Comprensión de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
12
13
13
14
14
16
16
18
20
20
21
23
24
24
25
27
27
28
28
30
31
32
34
34
CC-BY-NC-ND • PID_00174138
El lenguaje Python
8. Librerías: NumPy PyLab y SciPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1. NumPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.
8.3.
PyLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SciPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
36
36
36
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
CC-BY-NC-ND • PID_00174138
5
El lenguaje Python
Introducción
En este módulo aprenderemos las bases del lenguaje de programación Python.
Este módulo no pretende ser una guía exhaustiva de todas las características
que este lenguaje de programación nos ofrece, sino que está enfocado a in-
troducir al estudiante en el entorno Python. El objetivo del texto será ayudar
a comprender los ejemplos que se exponen en los módulos de teoría, y pro-
porcionar una base que permita al estudiante elaborar las distintas actividades
que el curso requiere.
A nivel de pre-requisitos, no asumiremos ningún conocimiento previo de
Python. Sin embargo, es muy importante tener conocimientos de algún len-
guaje de programación previo (C, C++, JAVA, ...), puesto que los conceptos
elementales (variable, bucle, función,...) no se tratarán en profundidad en es-
te módulo.
El lenguaje Python fue diseñado a finales de la década de los ochenta por Gui-
do van Rossum. Se trata de un lenguaje de programación de muy alto nivel,
con una sintaxis muy clara y una apuesta firme por la legibilidad del código.
Sin duda es un lenguaje de programación muy versátil, fuertemente tipado,
imperativo y orientado a objetos, aunque contiene también características que
lo convierten en un lenguaje de paradigma funcional.
Python se puede considerar un lenguaje semi-interpretado. A diferencia de C,
el código Python no se ejecuta directamente en la máquina destino, sino que
es ejecutado por un SW intermedio (o intérprete). Sin embargo, al igual que
JAVA, Python compila el código escrito en lenguaje de alto nivel para obtener
un pseudo código máquina (bytecode) que es el que propiamente ejecuta el
intérprete. Existen versiones del intérprete de Python para la mayor parte de
las plataformas.
En este módulo, explicaremos los pasos necesarios para instalar Python en
una determinada plataforma. A continuación veremos las principales caracte-
rísticas del lenguaje a nivel sintáctico.
CC-BY-NC-ND • PID_00174138
6
El lenguaje Python
Objetivos
Los objetivos que el alumno debe de haber conseguido una vez estudiados los
contenidos de este módulo son los siguientes:
1. Refrescar los conceptos elementales de programación aprendidos en cursos
anteriores.
2. Aprender las bases del lenguaje Python.
3. Ser capaz de entender el código que se muestra en los ejemplos de teoría y
poder modificarlo para realizar otras funcionalidades.
4. Usar características avanzadas de Python que permitan utilizarlo como len-
guaje rápido para el diseño y codificación de prototipos de inteligencia
artificial.
CC-BY-NC-ND • PID_00174138
7
El lenguaje Python
1. Instalación de Python
.
Existen actualmente múltiples implementaciones del lenguaje Python, en fun-
ción del lenguaje base en el que se ha construido el intérprete. La más conoci-
da es CPython, o simplemente Python, que ha sido implementada en lenguaje
C. Otras opciones disponibles son: IronPython (codificada en C#) o JPython
(codificada en JAVA).
Para instalar una determinada versión de Python, aconsejamos recurrir a su si-
tio web oficial*. En el momento de escribir estos manuales, esta URL contiene
toda la información necesaria para instalar el entorno. En la sección de des-
cargas** se pueden obtener los últimos paquetes de instalación para Windows,
Linux y MacOS X en sus distintas versiones.
* http://www.python.org/
** http://www.python.org
/download/
Una vez obtenido el paquete para el sistema operativo y versión adecuados,
ejecutaremos el instalador, y en una línea de comandos ejecutaremos el intér-
prete de Python, y probaremos que todo funciona correctamente mediante el
clásico “Hello World”.
macbook:~ david$ python
Python 2.6.6 (r266:84292, Oct 16 2010, 21:41:03)
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type ‘‘help’’, ‘‘copyright’’, ‘‘credits’’ or ‘‘license’’ for
more information.
>>> print ‘‘Hello World’’
Hello World
>>> quit()
macbook:~ david$
En este ejemplo, hemos llamado al intérprete de Python desde el símbolo de
sistema. Al iniciarse, después de imprimir la información de versiones, Python
nos muestra el símbolo “>>>” para indicarnos que el intérprete está espe-
rando comandos. En este pequeño ejemplo le pedimos que nos imprima la
cadena de caracteres “Hello World”, y después de ver el resultado, salimos de
Python mediante la instrucción quit(), volviendo al símbolo de sistema. Lle-
gados a este punto, podemos considerar que tenemos la instalación básica de
Python lista para su uso.
En este módulo trabajaremos fundamentalmente con un editor de textos, y
ejecutaremos los scripts, que programaremos mediante el intérprete. En el
ejemplo anterior, podríamos haber guardado la línea print “Hello World”
en un archivo llamado Hola.py, y ejecutarlo mediant
Comentarios de: El Lenguaje Python (0)
No hay comentarios