0% encontró este documento útil (0 votos)
28 vistas97 páginas

TEMA 1 - Introducción A Python

Este documento introduce Python y su configuración como entorno de desarrollo. Explica cómo instalar Anaconda para ejecutar programas Python, y cómo usar Jupyter Notebook y Spyder IDE para escribir y ejecutar código Python. También describe los elementos básicos de un programa Python, incluyendo palabras clave, funciones incorporadas, literales, delimitadores, identificadores y operadores.

Cargado por

cuyonen
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas97 páginas

TEMA 1 - Introducción A Python

Este documento introduce Python y su configuración como entorno de desarrollo. Explica cómo instalar Anaconda para ejecutar programas Python, y cómo usar Jupyter Notebook y Spyder IDE para escribir y ejecutar código Python. También describe los elementos básicos de un programa Python, incluyendo palabras clave, funciones incorporadas, literales, delimitadores, identificadores y operadores.

Cargado por

cuyonen
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 97

MACHINE LEARNING WITH

PYTHON

1
INTRODUCCIÓN A PYTHON
INTRODUCCIÓN A PYTHON

 Introducción
 Configuración del entorno de desarrollo
 Elementos de un programa Python
 Variables
 Tipos de datos
 Entrada y salida
 Estructuras de control
 Funciones

2
INTRODUCCIÓN
¿Qué es más
Subetapas Python?
comunes

Python es un lenguaje de programación…


• Interpretado: Se ejecuta sin necesidad de ser procesado
por el compilador y se detectan los errores en tiempo de
ejecución.
• Multiparadigma: Soporta programación funcional,
programación imperativa y programación orientada a
objetos.
• Para recordar los paradigmas de programación:
https://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%
B3n
• De tipado dinámico: La comprobación de tipificación se
realiza durante la ejecución.
• Multiplataforma: disponible para plataformas de
Windows, Linux o MAC. 3
• Gratuito: No dispone de licencia para programar.
INTRODUCCIÓN
¿Qué es más
Subetapas Python?
comunes

Python contiene una gran cantidad de librerías, tipos de


datos y funciones incorporadas en el propio lenguaje, que
ayudan a realizar muchas tareas comunes sin necesidad de
tener que programarlas desde cero.

Para ejecutar programas Python, hay dos opciones


disponibles:
• Instalar Python (https://www.python.org/), usar un editor de
texto, como el Bloc de notas, para escribir los programas
Python y ejecutarlos desde la línea de comandos.
• Instalar un Entorno de Desarrollo Integrado (IDE) para
4
Python que proporcione un entorno de programación
completo (editores y herramientas de depuración)
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Anaconda es un IDE para Python liviano, fácil de instalar y


que incluye varias herramientas de desarrollo. Anaconda
tiene su propia línea de comandos para instalar software de
terceros. Además, con Anaconda, no tenemos que instalar
Python por separado.

A continuación, detallaremos como instalar Anaconda en un


entorno Windows (en Mac y en Linux el proceso es similar).
1. Accede a la siguiente url:
https://www.anaconda.com/distribution/#download-section
2. Haz clic en el botón "Download" para descargar el archivo
5
adecuado a tu sistema operativo.
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

6
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

3. Una vez descargado el archivo, ejecútalo. El nombre del


archivo ejecutable debe ser similar a "Anaconda3-2020.11-
Windows-x86_64". Cuando ejecutes el archivo, aparecerá
un asistente de instalación. Haga clic en el botón “Next >".
4. Aparece el cuadro de diálogo “License Agreement”. Lee el
acuerdo de licencia y haz clic en el botón “I Agree”.
5. Desde el cuadro de diálogo "Select Installation Type",
marca el botón de opción “Just me" y haz clic en el botón
“Next >".
6. Elige el directorio de instalación (es recomendable dejar el
que ofrece el asistente) en el cuadro de diálogo "Choose
Install Location" y haz clic en el botón “Next >". Deberías
disponer de alrededor de 3 GB de espacio libre. 7
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

7. En el cuadro de diálogo "Advanced Installation Options",


selecciona la segunda casilla de verificación "Register
Anaconda as my default Python 3.8" y haz clic en el botón
"Install". Comenzará el proceso de instalación.
8. Completada la instalación, haz clic en el botón “Next >”.
9. Aparece la ventana “Microsoft Visual Studio Code
Installation”. Haz clic en el botón “Skip”.
10. Felicidades, has instalado Anaconda. Desmarca ambas
casillas de verificación en el cuadro de diálogo que aparece
y haz clic en el botón "Finalizar".

8
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Ahora vas a ejecutar tu primer programa.

Ejecuta la aplicación “Anaconda Navigator” y…¡ten paciencia!.


.

9
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Desde el panel de control, puedes ver todas las herramientas


disponibles para desarrollar aplicaciones en Python.
En este curso usaremos principalmente "Jupyter Notebook“.
Jupyter Notebook se ejecuta en el navegador predeterminado.
Desde el Anaconda Navigator, inicia "Jupyter Notebook“ haciendo
clic en el botón “Launch”.

Jupyter Notebook se iniciará en una nueva pestaña del navegador 10


predeterminado.
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Para crear un nuevo notebook, haz clic en el botón “New" en la


esquina superior derecha del panel de control del Jupyter
Notebook. Desde el menú desplegable, selecciona "Python 3.“

Verás el nuevo notebook de Python 3:

11
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

El notebook Jupyter consta de celdas. El script de Python se


escribe en esas celdas.
En la primera celda del notebook, escribe print (‘hola
mundo’) y presiona CTRL + INTRO. Se ejecutará el script de la
primera celda:

La función “print" imprime la cadena que se le pasa como


parámetro, en la salida. 12
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Para crear una nueva celda, haz clic en el botón "+" en el menú
superior izquierdo:

Puede escribir el script Python en la nueva celda y presionar


CTRL + INTRO para ejecutarlo.
Si bien el Jupyter Notebook es un buen sitio para comenzar a
escribir programas Python, una vez que te sientas cómodo con 13
Python, debes pasar a Spyder IDE.
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Spyder nos permite crear directamente archivos Python. Spyder es


similar a los editores de texto más convencionales con opciones
para ejecutar un archivo, ejecutar un trozo de código, depurar
código, etc.
Puede ejecutar Spyder desde Anaconda Navigator, haciendo clic en
el botón “Launch”.

14
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

Se te presentará la siguiente interfaz de usuario:

15
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

En el lado izquierdo de la interfaz de Spyder, puedes ver el editor


de texto; aquí es donde escribimos el script de Python. En la parte
inferior derecha tenemos una ventana de consola. Puede ejecutar
scripts directamente en la ventana de la consola. Además, la salida
del código escrito en el editor también aparece en la ventana de
consola.
Escribamos el programa hola mundo en Spyder.
Para ejecutar el script Python tenemos dos opciones. Puedes hacer
clic en el triángulo verde en el menú superior o puede seleccionar
el fragmento de código que deseas ejecutar y presionar CTRL +
INTRO desde el teclado. Verás el resultado en la ventana de
consola.
16
INTRODUCCIÓN
Configuración
Subetapas más comunes del entorno de desarrollo

17
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Un programa Python es un fichero de texto (normalmente


guardado con el juego de caracteres UTF-8) que contiene
expresiones y sentencias del lenguaje Python. Esas expresiones y
sentencias se consiguen combinando los elementos básicos del
lenguaje.
El lenguaje Python está formado por elementos (tokens) de
diferentes tipos:
• palabras reservadas (keywords)
• funciones integradas (built-in functions)
• literales
• delimitadores
• identificadores
• operadores
18
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Líneas y espacios
Un programa de Python está formado por líneas de texto.
Se recomienda que cada línea contenga una única instrucción,
aunque puede haber varias instrucciones en una línea,
separadas por un punto y coma (;).
Por motivos de legibilidad, se recomienda que las líneas no
superen los 79 caracteres. Si una instrucción supera esa
longitud, se puede dividir en varias líneas usando el carácter
contrabarra (\)

19
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Líneas y espacios
Los elementos del lenguaje se separan por espacios en blanco
(normalmente, uno), aunque en algunos casos no se escriben
espacios:
• entre los nombres de las funciones y el paréntesis
• antes de una coma (,)
• entre los delimitadores y su contenido (paréntesis,
llaves, corchetes o comillas)
Los espacios no son significativos, es decir, da lo mismo un
espacio que varios, excepto al principio de una línea.

20
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Líneas y espacios
Los espacios al principio de una línea (el sangrado) indican un
nivel de agrupamiento. El sangrado inicial es una de las
características de Python que lo distinguen de otros lenguajes,
que utilizan un carácter para delimitar agrupamientos (en
muchos lenguajes se utilizan las llaves { }). Por ello, una línea
no puede contener espacios iniciales, a menos que forme parte
de un bloque de instrucciones o de una instrucción dividida en
varias líneas.
El carácter almohadilla (#) marca el inicio de un comentario.
Python ignora el resto de la línea (desde la almohadilla hasta
el final de la línea).
21
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Palabras reservadas (keywords)


Las palabras reservadas de Python son las que forman el
núcleo del lenguaje Python. Son las siguientes:

False class finally is return


None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise

Estas palabras no pueden utilizarse para nombrar otros


elementos (variables, funciones, etc.), aunque pueden aparecer
en cadenas de texto.
22
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Funciones integradas (built-in functions)


Una función es un bloque de instrucciones agrupadas, que
permiten reutilizar partes de un programa.
Python incluye las siguientes funciones de forma
predeterminada (es decir, estas funciones siempre están
disponibles):
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip() 23
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Literales
Los literales son los datos simples que Python es capaz de
manejar:
• números: valores lógicos, enteros, decimales y
complejos, en notación decimal, octal o hexadecimal
• cadenas de texto
Delimitadores
Los delimitadores son los caracteres que permiten delimitar,
separar o representar expresiones. Son los siguientes:

' " # \
( ) [ ] { } 24
, : . ; @ = ->
+= -= *= /= //= %= @=
&= |= ^= >>= <<= **=
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Operadores
Python tiene algunas características de la programación
funcional. Esto quiere decir que está basada en una
programación declarativa de funciones matemáticas.
Operadores aritméticos: Al hacer operaciones con números
enteros y decimales el resultado es siempre decimal
En el caso de que el resultado no tenga parte decimal, Python
escribe 0 como parte decimal.
Suma +
Resta -
Multiplicación *
División /
Potencia ** 25
Resto %
Cociente //
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Operadores
Operadores lógicos: son utilizados, en la mayoría de las
ocasiones, en las estructuras condicionales. Los resultados que
devuelven son de tipo booleano, es decir, verdadero (True) o falso
(False).

Igual que ==
Distinto que !=
Mayor que >
Mayor o igual que >=
Menor que <
Menor o igual que <=
26
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Operadores
Expresiones compuestas: Se utilizan para evaluar varias
expresiones lógicas.
• and: "y" lógico. Este operador da como resultado True si y
sólo si sus dos operandos son True
• or: "o" lógico. Este operador da como resultado True si
algún operando es True
• not: negación. Este operador da como resultado True si y
sólo si su argumento es False
Python evalúa primero los not, luego los and y por último los or
Se recomienda utilizar paréntesis para asegurar el orden de las
27
operaciones.
INTRODUCCIÓN
Elementos de un programa Python
Subetapas más comunes

Funciones adicionales
Un programa puede definir nuevas funciones o redefinir las
funciones integradas. Los nombres de las funciones no pueden
coincidir con las palabras reservadas.
Un programa puede también importar nuevas funciones que se
encuentran definidas en otros ficheros llamados módulos.
Python incluye una biblioteca de módulos (llamada Biblioteca
estándar - https://docs.python.org/3/library/) especializados en
todo tipo de tareas.
Además de la biblioteca estándar, existen miles de módulos
escritos por diferentes programadores y accesibles en Internet.
El principal repositorio de módulos es el Python Package Index
28
(Índice de paquetes de Python - https://pypi.python.org/pypi),
más conocido por PyPI.
INTRODUCCIÓN
Variables
Subetapas más comunes

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
29
simples nombres para poder hacer referencia a esos objetos.
INTRODUCCIÓN
Variables
Subetapas más comunes

En Python se distingue entre objetos mutables y objetos inmutables:


• Los objetos inmutables son objetos que no se pueden modificar.
Por ejemplo, los números, las cadenas y las tuplas son objetos
inmutables
• Los objetos mutables son objetos que se pueden modificar. Por
ejemplo, las listas y los diccionarios son objetos mutables.
Las variables en Python se crean cuando se les asigna un valor por
primera vez. Para asignar un valor a una variable se utiliza el
operador de igualdad (=). A la izquierda de la igualdad se escribe el
nombre de la variable y a la derecha el valor que se quiere dar a la
variable.
La instrucción del borra completamente una variable.
30
INTRODUCCIÓN
Variables
Subetapas más comunes

El nombre de una variable debe empezar por una letra o por un


guión bajo (_) y puede seguir con más letras, números o guiones
bajos.
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 su legibilidad
También se utiliza la notación camelCase
(https://en.wikipedia.org/wiki/Camel_case), en las que las palabras no
se separan pero empiezan con mayúsculas (salvo la primera palabra).
Las palabras reservadas del lenguaje están prohibidas como
31
nombres de variables
INTRODUCCIÓN
Variables
Subetapas más comunes

Los nombres de las funciones integradas sí que se pueden utilizar


como nombres de variables
• Es mejor no hacerlo porque a continuación ya no se puede utilizar la
función como tal
• Borrando con del la variable con nombre de función, se recupera la
función.

32
INTRODUCCIÓN
Variables
Subetapas más comunes

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 de objetos inmutables,
el resto de variables no resultan
afectadas.

• Si se trata de objetos mutables y


al modificar la variable se
modifica el objeto, el resto de
variables sí resultan afectadas
33
INTRODUCCIÓN
Variables
Subetapas más comunes

Cuando una variable se modifica a partir de su propio valor, se


puede utilizar la denominada "asignación aumentada“
(https://docs.python.org/3/reference/simple_stmts.html#assignment-
statements)
Asignación es equivalente a
aumentada
a += b a=a+b
a -= b a=a-b
a *= b a=a*b
a /= b a=a/b
a **= b a = a ** b
a //= b a = a // b
34
a %= b a=a%b
INTRODUCCIÓN
Variables
Subetapas más comunes

Se pueden modificar varias variables en una sola instrucción y la


modificación se realiza en un solo paso.

Si este procedimiento lo hubiéramos hecho paso a paso, el resultado


hubiera sido distinto

35
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

En programación, un tipo de dato es la forma de representación del


dato e indica la clase de dato que se va a manejar. Esto incluye
imponer restricciones en los datos, como qué valores pueden tomar y
qué operaciones se pueden realizar.
Python es un lenguaje de programación de propósito general y por
ello contiene una gran cantidad de tipos de datos con los que se
puede programar.
• Numéricos: En Python los números pueden ser enteros, flotantes o
complejos.
• Booleanos: Los tipos de datos booleanos se utilizan para
representar verdadero y falso, mediante las palabras reservadas
True o False respectivamente. Este tipo de datos es muy
importante para el control de flujo de un programa.
36
• …
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

• …
• Cadenas: Aunque las cadenas no son usualmente importantes para
análisis numérico, sí lo son para mostrar resultados por la terminal
o shell. Una cadena debe delimitarse con comillas simples o dobles y
admite caracteres de escape.
• Listas: Una lista es una colección de objetos: números enteros,
flotantes, complejos, cadenas, etc. Una lista se delimita utilizando [ ]
y sus elementos han de separarse con comas. Es posible acceder a
sus elementos indicando el índice del elemento deseado.
• Tuplas: En muchos sentidos una tupla es como una lista, contienen
una colección de objetos de distinto tipo. Es decir, son lista de
elementos de diferente tipo de dato.
• Una lista puede ser alterada, no así una tupla.
• Una tupla puede ser utilizada como clave en un diccionario, no así una
37
lista.
• Una tupla consume menos espacio que una lista.
• …
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

• …
• Diccionario: Un diccionario se compone de dos partes: una clave
(palabra) y un valor (definición). Las claves siempre deben ser un
tipo de datos primitivo. La clave y el valor se separan con : y sus
elementos con comas.

38
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Números
Python distingue entre números enteros y decimales. Al escribir un
número decimal, el separador entre la parte entera y la parte decimal
es un punto.
• OJO: Si se escribe una coma como separador entre la parte entera y la
decimal, Python no lo entiende como separador, sino como una pareja de
números (concretamente, lo entiende como una tupla de dos elementos
Si se escribe un número con parte decimal 0, Python considera el
número como número decimal.
Python trae soporte por defecto para los números complejos, dónde la
parte imaginaria va a estar representada por la letra j en lugar de
utilizar la i como en la notación matemática.

39
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Números
Al sumar, restar o multiplicar números enteros, el resultado es entero.
Al dividir números enteros, el resultado es siempre decimal, aunque sea
un número entero.
• Cuando Python escribe un número decimal, lo escribe siempre con parte
decimal, aunque sea nula.

Al hacer operaciones en las que intervienen números enteros y


decimales, el resultado es siempre decimal. En el caso de que el
resultado no tenga parte decimal, Python escribe 0 como parte decimal
para indicar que el resultado es un número decimal
OJO: Al realizar operaciones con decimales, los resultados pueden
presentar errores de redondeo
• Este error se debe a que Python almacena los números decimales en 40
binario y pasar de decimal a binario provoca errores de redondeo
• Si necesitas precisión absoluta, deberás utilizar bibliotecas específicas.
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Números
Cuando en una fórmula aparecen varias operaciones, Python las
efectúa aplicando las reglas usuales de prioridad de las operaciones
(primero multiplicaciones y divisiones, después sumas y restas)
• En caso de querer que las operaciones se realicen en otro orden,
se deben utilizar paréntesis
El operador cociente // tiene la misma prioridad que la división. El
resultado es siempre un número entero, pero será de tipo entero o
decimal dependiendo del tipo de los números empleados (en caso de ser
decimal, la parte decimal es siempre cero).
El operador resto % tiene la misma prioridad que la división. El resto
de la división tendrá tipo entero o decimal, de acuerdo con el resultado
de la operación.
41
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Números
Las potencias tienen prioridad sobre las multiplicaciones y divisiones.
Utilizando exponentes negativos o decimales se pueden calcular
potencias inversas o raíces n-ésimas.
También se pueden calcular potencias o raíces mediante la función
pow(x,y). Si se da un tercer argumento, pow(x, y, z), la función es
igual a xy % z.
Para redondear un número se puede utilizar la función round(). Admite
uno o dos argumentos numéricos.
• Si sólo hay un argumento, la función devuelve el argumento redondeado
al entero más próximo
• Si se escriben dos argumentos, siendo el segundo un número entero, la
función round() devuelve el primer argumento redondeado en la posición
indicada por el segundo argumento. Si el segundo argumento es
42
negativo, se redondea a decenas, centenas, etc. Si el segundo argumento
es 0, se redondea al entero más próximo pero el resultado es decimal y
no entero.
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Números
Para redondear un número al entero anterior o posterior, se pueden
utilizar las funciones floor() y ceil(), que están incluidas en la
biblioteca math. Estas funciones sólo admiten un argumento numérico
y devuelven valores enteros.
Antes de utilizar estas funciones, hay que importarlas, o se generará un
error: from math import floor
La función integrada abs() calcula el valor absoluto de un número, es
decir, el valor sin signo.

43
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Booleanos
En Python cualquier variable (en general, cualquier objeto) puede
considerarse como una variable booleana. En general, los elementos
nulos o vacíos se consideran False y el resto se consideran True.
Para comprobar si un elemento se considera True o False, se puede
convertir a su valor booleano mediante la función bool().

44
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
Una cadena es una secuencia inmutable de caracteres Unicode,
delimitada por comillas.
• Las cadenas de texto se pueden delimitar con comillas simples (') o con
comillas dobles ("). Son completamente equivalentes.

Las comillas triples permiten que las cadenas ocupen más de una línea.
• Se utilizan, sobre todo, para la documentación de módulos,
funciones, clases o métodos. Son las llamadas docstrings,
definidas en el PEP 257 (https://www.python.org/dev/peps/pep-
0257/). Son cadenas que se escriben al principio del elemento
describiendo lo que hace el elemento. No producen ningún
resultado en el programa, pero las herramientas de
documentación de Python pueden extraerlas para generar
documentación automáticamente. 45
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
Se pueden escribir comillas simples en cadenas delimitadas con
comillas dobles y viceversa.
Otra forma de escribir comillas en una cadena es utilizar los caracteres
especiales \" y \' que representan los caracteres comillas dobles y
simples respectivamente y que Python no interpreta en ningún caso
como delimitadores de cadena.
• Se pueden utilizar ambos caracteres especiales
independientemente del delimitador utilizado
• Otros caracteres especiales:
• Salto de línea: \n
• Tabulador: \t
46
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
En el Jupyter Notebook se pueden escribir cadenas sueltas, sin
necesidad de escribir la función print()

Si un programa contiene cadenas muy largas, las cadenas se pueden


simplemente partir en varias cadenas.
El operador + nos permite concatenar dos cadenas.

47
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
También es posible concatenar una variable de tipo string con una
cadena o concatenar directamente dos variables.

En ocasiones, la expresión es más fácil de leer si empleamos el método


format(). Este método admite emplear, dentro de la cadena de texto,
los caracteres { }, entre los que irá, un número o el nombre de una
variable. Como argumentos del método pueden pasarse variables que
serán sustituidas, en tiempo de ejecución, por los marcadores { },
indicados en la cadena de texto.
48
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
La concatenación entre strings y números también es posible, siendo
para ello necesario el uso de funciones como int() y str().

El operador * aplicado a cadenas de texto nos permite repetir una


cadena n veces.
Gracias al operador in podemos averiguar si un determinado carácter
se encuentra o no en una cadena de texto.

49
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Cadenas de texto
Una cadena es inmutable en Python, pero podemos acceder, a través de
índices, a cada carácter que forma parte de ella.
Los índices también nos pueden ayudar a obtener subcadenas de texto
basadas en la original.
Los índices negativos también funcionan, simplemente indican que se
empieza a contar desde el último carácter.

50
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Las listas son conjuntos ordenados de elementos (números, cadenas,
listas, etc.). Las listas se delimitan por corchetes ([ ]) y los elementos se
separan por comas.
Las listas pueden contener
• elementos del mismo tipo
• elementos de tipos distintos
• listas
Las listas pueden tener muchos niveles de anidamiento
Las variables de tipo lista hacen referencia a la lista completa
Una lista que no contiene ningún elemento se denomina lista vacía
Al definir una lista se puede hacer referencia a otras variables
51
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Se puede acceder a cualquier elemento de una lista escribiendo el
nombre de la lista y entre corchetes el número de orden en la lista.
• El primer elemento de la lista es el número 0.

Se pueden concatenar dos listas utilizando la operación suma (+)


• Necesita que los dos operandos sean listas

52
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Cada elemento se identifica por su posición en la lista, teniendo en
cuenta que se empieza a contar por 0.
Se pueden utilizar números negativos (el último elemento tiene el
índice -1 y los elementos anteriores tienen valores descendentes)
Se puede modificar cualquier elemento de una lista haciendo referencia
a su posición

53
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
De una lista se pueden extraer sublistas, utilizando la notación
nombreDeLista[inicio:límite]
Se puede modificar una lista modificando sublistas. De esta manera se
puede modificar un elemento o varios a la vez e insertar o eliminar
elementos
Al definir sublistas, Python acepta valores fuera del rango, que se
interpretan como extremos (al final o al principio de la lista)

54
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas

55
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
La palabra reservada del permite eliminar un elemento o varios
elementos a la vez de una lista, e incluso la misma lista.

56
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Si queremos copiar una lista, de manera que conservemos su valor
aunque modifiquemos la lista original debemos utilizar la notación de
sublistas.

57
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Se puede recorrer una lista de principio a fin de dos formas distintas:
1. Recorrer directamente los elementos de la lista, es decir, que la variable
de control del bucle tome los valores de la lista que estamos recorriendo:

2. Recorrer indirectamente los elementos de la lista, es decir, que la


variable de control del bucle tome como valores los índices de la lista
que estamos recorriendo (0,1 ,2 , etc.).

58
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Listas
Para saber si un valor está en una lista se puede utilizar el operador
in. La sintaxis sería "elemento in lista" y devuelve un valor lógico:
True si el elemento está en la lista, False si el elemento no está en la
lista.

59
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Tuplas
En Python, una tupla es un conjunto ordenado e inmutable de
elementos del mismo o diferente tipo.
• Una vez inicializada la tupla no podemos agregar, borrar o modificar sus
elementos.

Las tuplas se representan escribiendo los elementos entre paréntesis y


separados por comas.
• En realidad no es necesario escribir los paréntesis para indicar que se
trata de una tupla, basta con escribir las comas, pues Python escribe
siempre los paréntesis
La función len() devuelve el número de elementos de una tupla
Una tupla puede no contener ningún elemento, es decir, ser una tupla
vacía. Una tupla puede incluir un único elemento, pero para que 60
Python entienda que nos estamos refiriendo a una tupla es necesario
escribir al menos una coma.
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Tuplas
Python posibilita la conversión de tuplas a listas y viceversa mediante
las funciones:
list(parametro de tipo tupla)
tuple(parametro de tipo lista)
Empaquetado: Se puede generar una tupla asignando a una variable
un conjunto de variables o valores separados por coma

Desempaquetado:

61
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Diccionarios
En Python, un diccionario es una colección no-ordenada de valores que
son accedidos a través de una clave.
• En lugar de acceder a la información mediante el índice numérico, como
es el caso de listas y tuplas, es posible acceder a los valores a través de
sus claves.

Las claves son únicas dentro de un diccionario.


• Si se asigna un valor a una clave ya existente, se reemplaza el valor
anterior.

Cualquier variable de tipo inmutable, puede ser clave de un diccionario:


cadenas, enteros, tuplas, etc.
No hay restricciones para los valores que el diccionario puede contener:
listas, cadenas, tuplas, otros diccionarios, objetos, etc. 62

Un diccionario es una estructura de datos mutable es decir podemos


agregar elementos, modificar y borrar.
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Diccionarios
Es posible definir un diccionario directamente con los miembros que va
a contener, o bien inicializar el diccionario vacío y luego agregar los
valores de uno en uno.

63
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Diccionarios
Para acceder al valor asociado a una determinada clave, se utiliza la
clave. Esto falla si se proporciona una clave que no esta en el
diccionario. Por ello, se recomienda utilizar la función get, que
devuelve None, o un valor por omisión que se establece opcionalmente,
si la clave no está en el diccionario.

64
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Diccionarios
Existen diversas formas de recorrer un diccionario:
1. Recorrer sus claves y usar esas claves para acceder a los valores

2. Obtener los valores como tuplas donde el primer elemento es la clave y


el segundo el valor

65
INTRODUCCIÓN
Tipos demásdatos
Subetapas comunes

Diccionarios
Para verificar si una clave se encuentra en el diccionario, se utiliza la
palabra reservada in

66
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
Para que Jupyter Notebook muestre el valor de una variable, basta con
escribir su nombre.
También se puede conocer el valor de varias variables a la vez
escribiéndolas separadas por comas (Jupyter Notebook las mostrará
entre paréntesis)
En los programas, para mostrar texto o variables hay que utilizar la
función print().
• El texto a mostrar se escribe como argumento de la función
La función print() admite varios argumentos seguidos. En el
programa, los argumentos deben separarse por comas. Los argumentos
se muestran en el mismo orden y en la misma línea, separados por
espacios. 67
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
Al final de cada print(), Python añade automáticamente un salto de
línea
• Si no se quiere que Python añada un salto de línea al final de un
print(), se debe añadir al final el argumento end=""

Para generar una línea en blanco, se puede escribir una orden print()
sin argumentos
Para incluir comillas dentro de comillas, se puede escribir una
contrabarra (\) antes de la comilla para que Python reconozca la
comilla como carácter, no como delimitador de la cadena o escribir
comillas distintas a las utilizadas como delimitador de la cadena

68
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
La función print() permite incluir variables o expresiones como
argumento, lo que nos permite combinar texto y variables

La función print() muestra los argumentos separados por espacios,


lo que a veces no es conveniente:

69
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
Para eliminar ese espacio, se puede reducir el número de argumentos,
concatenando texto y variables con el operador suma (+):

OJO: no se pueden concatenar cadenas y números con el operador suma


(+). Hay que convertir los números a cadenas con la función str()
antes de concatenarlos:

70
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
En Python 3.6 se añadió (PEP 498 -
https://www.python.org/dev/peps/pep-0498/) una nueva notación para
cadenas llamada cadenas "f", que simplifica la inserción de variables y
expresiones en las cadenas.
Una cadena "f" contiene variables y expresiones entre llaves ({ }) que se
sustituyen directamente por su valor.
Se reconocen porque comienzan por una letra f antes de las comillas de
apertura

Esta notación no añade espacios que en la notación "clásica" aparecían


71
al incluir varios argumentos separados por comas.
Si se quieren escribir los carácteres { o } se deben escribir duplicados
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Salida
Las cadenas "f" permiten dar formato a las variables, siguiendo la
sintaxis del método str.format()
(https://docs.python.org/3/library/string.html#formatstrings )

72
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Entrada
La función input() permite obtener texto escrito por teclado. Al llegar
a la función, el programa se detiene esperando que se escriba algo y se
pulse la tecla INTRO.
El usuario escribe su respuesta en una línea distinta a la pregunta
porque Python añade un salto de línea al final de cada print().
Si se prefiere que el usuario escriba su respuesta a continuación de la
pregunta, se podría utilizar el argumento opcional end en la función
print(), que indica el carácter o caracteres a utilizar en vez del salto
de línea.

73
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Entrada
Otra solución, más compacta, es aprovechar que a la función input()
se le puede enviar un argumento que se escribe en la pantalla (sin
añadir un salto de línea)

De forma predeterminada, la función input() convierte la entrada en


una cadena. Si se quiere que Python interprete la entrada como un
número entero o un número decimal, se debe utilizar las funciones
int() y float(), respectivamente.
La función input() sólo puede tener un argumento.
74
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Ficheros
Antes de poder realizar cualquier operación de lectura/escritura hay
que abrir el archivo con open() indicando su ubicación y nombre
seguido, opcionalmente, por el modo o tipo de operación a realizar y la
codificación que tendrá el archivo.
• Si no se indica el tipo de operación el archivo se abrirá en modo de
lectura y si se omite la codificación se utilizará la codificación actual del
sistema.

¿Y que codificación utiliza nuestro sistema? Podemos averiguarlo


ejecutando las siguiente líneas de código:
import locale
print(locale.getpreferredencoding())

75
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Ficheros
Las operaciones que pueden realizarse sobre un archivo:

r Lectura
r+ Lectura/Escritura
w Sobreescritura. Si no existe el archivo se
creará.
a Añadir. Escribe al final del archivo.
b Binario
+ Permite lectura/escritura simultanea
U Salta de línea universal
Win CR*LF
Linux LF
Mac CR
rb Lectura binaria
76
wb Sobreescritura binaria
r+b Lectura/Escritura binaria
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Ficheros
Después de terminar de trabajar con un archivo lo cerraremos con el
método close.
Con el método read() es posible leer un número de bytes
determinados.
• Si no se indica número se leerá todo lo que reste o si se alcanzó el final
de fichero devolverá una cadena vacía.
El método readline() lee de un archivo una línea completa
El método readlines() lee todas las líneas de un archivo como una
lista. Si se indica el parámetro de tamaño leerá esa cantidad de bytes
del archivo y lo necesario hasta completar la última línea
with-as permite usar los archivos de forma óptima cerrándolos y
liberando la memoria al concluir el proceso de lectura. 77
INTRODUCCIÓN
Entrada y comunes
Subetapas más salida

Ficheros
El método write() escribe una cadena y el método writelines()
escribe una lista a un archivo.
• Si en el momento de escribir el archivo no existe se creará uno nuevo.
El método seek() desplaza el puntero a una posición del archivo y el
método tell() devuelve la posición del puntero en un momento dado
(en bytes).
Para leer y escribir cualquier tipo de objeto Python podemos importar
la librería pickle y usar sus métodos dump() y load() para leer y
escribir los datos.

78
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

Sentencias condicionales: if...


La estructura de control if... permite que un programa ejecute unas
instrucciones cuando se cumpla una condición.
La primera línea contiene la condición a evaluar y es una expresión
lógica. Esta línea debe terminar siempre por dos puntos (:).
A continuación viene el bloque de órdenes que se ejecutan cuando la
condición se cumple (es decir, cuando la condición es verdadera).
Importante: este bloque debe ir sangrado, puesto que Python utiliza el
sangrado para reconocer las líneas que forman un bloque de
instrucciones. Para terminar un bloque, basta con volver al principio de
la línea.

79
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

Bifurcaciones: if ... else ...


La estructura de control if ... else ... permite que un programa
ejecute unas instrucciones cuando se cumple una condición y otras
instrucciones cuando no se cumple esa condición

Si por algún motivo no se quisiera ejecutar ninguna orden en alguno de


los bloques, el bloque de órdenes debe contener al menos la orden pass
(esta orden le dice a Python que no tiene que hacer nada) 80
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

Sangrado de bloques
Un bloque de instrucciones puede contener varias instrucciones. Todas
las instrucciones del bloque deben tener el mismo sangrado.
Sentencias condicionales anidadas
Una sentencia condicional puede contener a su vez otra sentencia
anidada. OJO con los sangrados.
Más de dos alternativas: if ... elif ... else ...
La estructura de control if ... elif ... else ... permite
encadenar varias condiciones. "elif" es una contracción de "else if".
Se pueden escribir tantos bloques elif como sean necesarios

81
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

Condiciones no booleanas
Dado que cualquier variable puede interpretarse como una variable
booleana, si la condición es una comparación con cero, podemos omitir
la comparación.

82
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

El bucle for
Un bucle es una estructura de control que repite un bloque de
instrucciones.
Un bucle for es un bucle que repite el bloque de instrucciones un
número predeterminado de veces. El bloque de instrucciones que se
repite se suele llamar cuerpo del bucle y cada repetición se suele llamar
iteración.
La sintaxis de un bucle for es la siguiente:
for variable in elemento iterable (lista, cadena, range, etc.):
cuerpo del bucle

No es necesario definir la variable de control antes del bucle, aunque se


puede utilizar como variable de control una variable ya definida en el
programa.
83
El cuerpo del bucle se ejecuta tantas veces como elementos tenga el
elemento recorrible (elementos de una lista o de un range(),
caracteres de una cadena, etc.)
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

El bucle for
La variable de control puede ser una variable empleada antes del bucle.
El valor que tuviera la variable no afecta a la ejecución del bucle, pero
cuando termina el bucle, la variable de control conserva el último valor
asignado:

84
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

El bucle for
En vez de una lista se puede escribir una cadena. En este caso, la
variable de control va tomando como valor cada uno de los caracteres:

Se recomienda utilizar tipos range(), entre otros motivos, porque


durante la ejecución del programa ocupan menos memoria en el
ordenador. El argumento del tipo range() controla el número de veces
que se ejecuta el bucle
Aunque en Python no es necesario, se recomienda que los nombres de 85
las variables de control de los bucles anidados no coincidan, para evitar
ambigüedades.
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

El bucle while
Un bucle while permite repetir la ejecución de un grupo de
instrucciones mientras se cumpla una condición (es decir, mientras la
condición tenga el valor True)
La sintaxis del bucle while es la siguiente:
while condicion:
cuerpo del bucle
Cuando llega a un bucle while, Python evalúa la condición y, si es
cierta, ejecuta el cuerpo del bucle. Una vez ejecutado el cuerpo del
bucle, se repite el proceso (se evalúa de nuevo la condición y, si es
cierta, se ejecuta de nuevo el cuerpo del bucle) una y otra vez mientras
la condición sea cierta. Únicamente cuando la condición sea falsa, el
cuerpo del bucle no se ejecutará y continuará la ejecución del resto del
programa.
86
INTRODUCCIÓN
Estructuras de control
Subetapas más comunes

El bucle while
Si la condición del bucle se cumple siempre, el bucle no terminará
nunca de ejecutarse y tendremos lo que se denomina un bucle infinito.
Para interrumpir un bucle infinito, hay que pulsar la combinación de
teclas Ctrl+C.

87
INTRODUCCIÓN
Funciones
Subetapas más comunes

Las funciones se pueden crear en cualquier punto de un programa,


escribiendo su definición.
• Para poder utilizar una función en un programa se tiene que haber definido
antes. Por ello, normalmente las definiciones de las funciones se suelen
escribir al principio de los programas

La primera línea de la definición de una función contiene:


• la palabra reservada def

• el nombre de la función (la guía de estilo de Python recomienda escribir todos


los caracteres en minúsculas separando las palabras por guiones bajos)
• paréntesis (que pueden incluir los argumentos de la función)

Las instrucciones que forman la función se escriben con sangría con


respecto a la primera línea.
Por comodidad, se puede indicar el final de la función con la palabra
88
reservada return aunque no es obligatorio.
INTRODUCCIÓN
Funciones
Subetapas más comunes

Variables locales
Si no se han declarado como globales o no locales, las variables a las
que se asigna valor en una función se consideran variables locales, es
decir, sólo existen en la propia función, incluso cuando en el programa
exista una variable con el mismo nombre.

Las variables locales sólo existen en la propia función y no son


accesibles desde niveles superiores
Si en el interior de una función se asigna valor a una variable que no se
89
ha declarado como global o no local, esa variable es local a todos los
efectos.
INTRODUCCIÓN
Funciones
Subetapas más comunes

Variables libres globales o no locales


Si a una variable no se le asigna valor en una función, Python la
considera libre y busca su valor en los niveles superiores de esa función,
empezando por el inmediatamente superior y continuando hasta el
programa principal.

Si a la variable se le asigna valor en algún nivel intermedio, se


considera no local y si se le asigna en el programa principal se
considera global
90
INTRODUCCIÓN
Funciones
Subetapas más comunes

Variables declaradas global o nonlocal


Si queremos asignar valor a una variable en una subrutina, pero no
queremos que Python la considere local, debemos declararla en la
función como global o nonlocal
Si a una variable declarada global o nonlocal en una función no se le
asigna valor en el nivel superior correspondiente, Python dará un error
de sintaxis.

91
INTRODUCCIÓN
Funciones
Subetapas más comunes

Argumentos y devolución de valores


Las funciones en Python admiten argumentos en su llamada y
permiten devolver valores.
Las funciones admiten argumentos, es decir, permiten que se les envíen
valores con los que trabajar y así facilitar su reutilización
De hecho, las funciones pueden admitir una cantidad indeterminada
de valores:

92
INTRODUCCIÓN
Funciones
Subetapas más comunes

Argumentos y devolución de valores


Las funciones pueden devolver varios valores simultáneamente:

93
INTRODUCCIÓN
Funciones
Subetapas más comunes

Conflictos entre nombres de parámetros y nombre de variables


globales
En Python no se producen conflictos entre los nombres de los
parámetros y los nombres de las variables globales.
El nombre de un parámetro puede coincidir o no con el de una variable
global, pero Python no los confunde: en el ámbito de la función el
parámetro hace siempre referencia al dato recibido y no a la variable
global y los programas producen el mismo resultado.
Dependiendo de si a la función se le envía como parámetro un objeto
mutable o inmutable, la función podrá modificar o no al objeto

94
INTRODUCCIÓN
Funciones
Subetapas más comunes

Conflictos entre nombres de parámetros y nombre de variables


globales
Objeto mutable

95
INTRODUCCIÓN
Funciones
Subetapas más comunes

Conflictos entre nombres de parámetros y nombre de variables


globales
Objeto inmutable

96
INTRODUCCIÓN
Funciones
Subetapas más comunes

Paso por valor o paso por referencia


En Python cuando se envía una variable como argumento en una
llamada a una función lo que se envía es la referencia al objeto al que
hace referencia la variable. Dependiendo de si el objeto es mutable o
inmutable, la función podrá modificar o no el objeto.

97

También podría gustarte