Prog-PythonCursoIniciateenPython
Prog-PythonCursoIniciateenPython
ÍNDICE DE CONTENIDO
1
3.3.1 Sentencia if ____________________________________________ 33
3.3.2 Sentencia else __________________________________________ 34
3.3.3 Sentencia elif ___________________________________________ 34
3.4 Sentencias de control de flujo repetitivas o bucles _____________ 35
2
6.3.3 Llamada sin parámetros __________________________________ 70
6.3.4 Parámetros con valores por defecto _________________________ 71
6.4 Argumentos indeterminados ______________________________ 71
3
8.2.16 Método isnumeric() ______________________________________ 89
8.2.17 Método isdecimal() ______________________________________ 89
8.2.18 Método isdigit() _________________________________________ 89
8.2.19 Método isspace() ________________________________________ 90
8.2.20 Método istitle() __________________________________________ 90
8.2.21 Método replace() ________________________________________ 91
8.2.22 Método strip() __________________________________________ 91
8.2.23 Método join() ___________________________________________ 92
8.2.24 Método partition() _______________________________________ 92
8.2.25 Método split() ___________________________________________ 93
8.2.26 Método splitlines() _______________________________________ 93
8.2.27 Método ord() ___________________________________________ 93
8.2.28 Operador > < == != en las cadenas _________________________ 94
8.2.29 Método index(argumento) _________________________________ 94
8.2.30 Método slice(argumento)__________________________________ 95
8.3 Resumen _____________________________________________ 97
4
UNIDAD 1. PRIMEROS PASOS EN PYTHON
1.1 OBJETIVOS
1.2 INTRODUCCIÓN
En sus orígenes Python fue ideado como un lenguaje de uso para la comunidad
científica (fundamentalmente para el área de las matemáticas), por lo que
permite hacer cálculos que no son posibles de realizar con otros lenguajes de
programación.
5
Python puede utilizarse para programar casi cualquier cosa, sus características
han hecho que aplicaciones de gran alcance a nivel mundial como Instagram,
Uber, Netflix, Lyft y Spotify lo utilicen como parte de sus lenguajes de desarrollo.
Con el crecimiento del volumen de datos que se viene generando por el uso
masificado del internet, Python ha visto crecer también su uso al permitir la
manipulación de datos a gran escala, siendo común su uso en las áreas del Big
Data, inteligencia artificial y el análisis de datos.
6
código y ensayar el lenguaje, solo debemos ir a la parte superior derecha de la
pantalla y pulsar sobre el icono “<>Start coding” como se muestra en la siguiente
imagen.
7
Para ejecutar el código debemos pulsar sobre el botón “Run” que se encuentra
en la parte superior de la pantalla y el resultado del código ejecutado se verá en
la pantalla de color negro ubicada a la derecha de este.
Para poder guardar los archivos del código se debe dar de alta como usuario,
permitiéndonos acceder posteriormente a los archivos que se han creado. Para
darse de alta, presionamos el botón azul “Sign up” situado en la parte superior
derecha de la página y rellenamos los datos de usuario.
8
Al darse de alta ya podremos guardar los archivos que iremos desarrollando
dentro de este entorno en línea.
9
Pulsa el botón “My Repls” para poder acceder al archivo que se creó por defecto.
Importante
10
Al pulsar el botón accederemos a la pantalla de crear archivos, crearemos tantos
como queramos para almacenar los ejercicios de cada tema que veremos en
este manual.
Para crear una carpeta donde almacenar los ejercicios de Python, pulsamos en
el botón de “New Folder” y la titulamos “ejercicios”. Dentro de esta creamos un
nuevo archivo Python pulsando sobre el botón “New Repl”. Al hacerlo hay que
elegir el programa en el que se ejecutará ese archivo, elegimos Python, ponemos
un nombre al archivo y pulsamos el botón “Create repl”. El archivo ya se ha
creado y el entorno de trabajo está listo para empezar a programar, tal como se
muestra en la siguiente imagen.
11
Para llevar a cabo los ejercicios que se verán más adelante, se recomienda crear
una carpeta para cada tema. Por ejemplo, para el tema sentencias de control de
flujo creamos una carpeta y dentro de ella creamos un archivo para cada
subtema. Por ejemplo, se crea un archivo para la sentencia “if”, otro archivo para
la sentencia “for” y así sucesivamente.
12
Tipo de ninguno o None, un tipo de dato nuevo que se utiliza para crear
variables sin asignarle ningún valor.
Para asegurarnos que tipo de dato estamos utilizando (no es necesario casi
nunca) utilizamos el método type (dato), que recibe como argumento la variable
de la que queremos conocer qué tipo de dato es, tal como se ilustra a
continuación.
Las sentencias para saber el tipo de dato de las variables cadena y numero, se
encuentran en la parte izquierda de la imagen en las líneas 14 y 19
respectivamente. El resultado de estas sentencias se consigue en la parte
derecha de la imagen, donde la información está entre un símbolo menor que (<)
y mayor que (>). Se puede ver que el primer resultado es para la variable que se
ha definido con el nombre de cadena. Debajo de la frase “Hola Mundo, ya es
2020” se puede observar <class ‘str’> lo que indica que es de tipo string aun
cuando dentro de la cadena existan números, esto es porque cualquier variable
que se defina como se ha hecho con la variable cadena, es decir, dentro de
comillas dobles, automáticamente se convierte en un dato de tipo string.
13
Para el caso del tipo de dato flotante, booleano y None, se puede constatar esas
condiciones a través de los ejemplos en las siguientes imágenes.
1.6 RESUMEN
En dicho ejemplo, se explican los cinco tipos de datos existentes en Python, tales
como: cadenas, números enteros, números con decimales, booleanos y None.
Este concepto clave es lo que permitirá un mejor manejo y comprensión de
Python.
14
UNIDAD 2. OPERACIONES Y EXPRESIONES
2.1 OBJETIVOS
El objetivo de este tema es dar un vistazo a todos los elementos del lenguaje
Python a nivel sintaxis elementos que nos ayudan a construir un programa básico
tales como operadores, expresiones, etc…
2.2 INTRODUCCIÓN
El objetivo de este tema es dar un vistazo a todos los elementos del lenguaje
Python a nivel sintaxis, elementos que nos ayudan a construir un programa
básico tales como operadores, expresiones, etc…
Los operadores aritméticos realizan funciones matemáticas con las que se está
ya familiarizado, sin embargo, algunos de estos operadores son utilizados de
forma distinta en Python para realizar operaciones con resultados diferentes,
como en el caso de la división, la cual se explica en la siguiente tabla.
15
Operador Descripción Ejemplo Resultado
+ Suma 5+7 12
- Resta 8-3 5
+ Negación -7 -7
* Multiplicación 3*9 27
** Exponente 5**2 25
% Módulo 7%2 1
16
>= ¿Es a mayor o igual que b? 12>=12 False
17
Operador Descripción Ejemplo Resultado
18
por lo cual el resultado final es true y la persona puede viajar al extranjero. Pero
si el resultado de una sola de las preguntas fuera false, el resultado final sería
false y la persona no podría viajar al extranjero. En la siguiente imagen se
muestra cómo actúa el operador and en sus dos casos posibles.
2.6.2 Operador or
19
2.6.3 Operador not
20
Operadores lógicos
2.7 EXPRESIONES
Las expresiones en programación pueden ser de dos tipos según los operandos.
Tenemos dos operandos, el primero es el número 5 y el segundo es el número
10. Ambos valores representan un valor literal y si hacemos una suma entre
ellos, es decir, 5+10, esta expresión pertenecería al tipo de expresión
aritmética porque estas expresiones se caracterizan por estar compuestas de
valores que se representan a sí mismos.
Importante
21
2.7.1 Expresiones relacionales
Son expresiones donde los operadores son del tipo relacional. Un ejemplo de
una expresión relacional puede ser el siguiente: 8 > 9. Vemos un ejemplo de
cada una de estas expresiones.
Son expresiones donde los operadores son del tipo lógico. En la siguiente tabla
podemos tener una mejor visión de cómo funcionan los operadores lógicos y
como son las expresiones lógicas.
22
Or 12==12 or 15<7 True or False True
Las reglas con las que se resuelven estas expresiones proceden del mundo de
las matemáticas. Un ejemplo de este tipo de expresión puede ser el siguiente:
a=10
b=5
23
2.8 RESUMEN
Operador ( representado de
Vida Diaria
forma visual )
Es igual,
[ = ], [ ≠ ], [ < ], [ > ]
es distinto, menor que, mayor que
Sumar 5 + 2
Restar 78 - 5
Operadores aritméticos
Tanto Python como muchos otros tipos de lenguajes utilizan los operadores
matemáticos, estos tienen los siguientes símbolos.
24
Operador Descripción Ejemplo Resultado
+ Suma 5+7 12
- Resta 8-3 5
* Multiplicación 3*9 27
Operaciones Relacionales
25
<= ¿Es a menor o igual que b? 12<=12 True
Operadores lógicos
Python utiliza las siguientes palabras reservadas AND, OR, NOT. Siguiendo el
punto número 1. Operadores y expresiones en la tabla [operando1] [operador]
[operando2] Los operadores Lógicos cumplen las siguientes funciones.
AND
El resultado dará False si uno de los operandos tiene como valor FALSE, caso
contrario si los 2 operando tienen valor TRUE, el resultado dará True
OR
El resultado dará True si uno de los operando tiene como valor TRUE, caso
contrario si los 2 operando tiene valor FALSE, el resultado dará False
26
True or True True
NOT
Único operador lógico que se utiliza con un solo operando, este negará el
resultado y convertirá la contraparte del resultado (el resultado es devuelto como
booleano)
[Operador][Operando] Resultado
Operadores de Asignación
27
Código Código
Operador Descripción Resultado
original abreviado
Si x tiene valor ‘x + 10’
teniendo en cuenta antes
que x su valor es 5, la
+= x = x + 10 suma pasa implícitamente x += 10 15
donde esta ‘x =’ y el
resultado se guardará en
x por la asignación del ‘ = ‘
Si x tiene valor ‘x -2’
teniendo en cuenta antes
que x su valor es 5, la
-= x=x–2 resta pasa implícitamente x -= 2 3
donde esta ‘x =’ y el
resultado se guardará en
x por la asignación del ‘ = ‘
Si x tiene valor ‘x *7’
teniendo en cuenta antes
que x su valor es 5, la
multiplicación pasa
*= x=x*7 x *= 7 35
implícitamente donde esta
‘x =’ y el resultado se
guardará en x por la
asignación del ‘ = ‘
Si x tiene valor ‘x / 2’
teniendo en cuenta antes
x /= 2
que x su valor es 5, la
división pasa
/= x=x/2 2.5
implícitamente donde esta 5 2
‘x =’ y el resultado se
guardará en x por la 1 2.5
asignación del ‘ = ‘
Si x tiene valor ‘x ** 3’
**= x = x ** 3 x **= 3 75
teniendo en cuenta antes
28
que x su valor es 5, la
potencia pasa
implícitamente donde esta
‘x =’ y el resultado se
guardará en x por la
asignación del ‘ = ‘
Si x tiene valor ‘x // 2’
teniendo en cuenta antes
x //= 2
que x su valor es 5, la
división entera pasa
//= x = x // 2 2
implícitamente donde esta 5 2
‘x =’ y el resultado se
guardará en x por la 1 2.5
asignación del ‘ = ‘
Si x tiene valor ‘x % 2’
teniendo en cuenta antes
que x su valor es 5, la
x %= 2
división resto o módulo
%= x=x%2 1
pasa implícitamente
donde esta ‘x =’ y el 5 2
resultado se guardará en
x por la asignación del ‘ = ‘
Expresiones relacionales
29
Expresiones
Aritméticas
8/9
[7 x 5] o [7 * 5]
4+9
6-9
Expresiones lógicas
Expresión
Expresión Lógica resultado
Relacional
3 != 5 or 2 ==
3 != 5 or5 2 == 0 True
0
True False
No hay mucho que decir, primero como prioridad las expresiones relacionales
(Si llevase paréntesis, tiene mayor prioridad) una vez resulto tendremos valores
booleanos: True y False, para obtener las expresiones lógicas, dentro de las
30
expresiones lógicas se pueden anidar más de una expresión lógica. Anidamos
en el ejemplo anterior para ver qué resultado podemos obtener.
Expresión
Expresión Lógica Resultado
Relacional
9 == 3 and 43 2 ==
9==3 and 43 > 25True Or True
> 25 or 2==2 2True
False
3 != 5 or 2 == 0 3 <=
3 != 5True Or 3 != 5True Or True
or 3 <=2 2False
31
UNIDAD 3. SENTENCIAS DE CONTROL DE FLUJO
3.1 OBJETIVOS
El objetivo de este tema es revisar las estructuras de control de flujo del lenguaje
Python que realmente son las mismas que en cualquier otro lenguaje, pero algo
más reducidas, ya que no contamos con las estructuras switch y do while.
3.2 INTRODUCCIÓN
32
En la imagen anterior, se puede ver que debajo de la sentencia while, cada línea
tiene una identación, la cual se hace de forma automática si se posiciona al
extremo derecho en la línea 4 y pulsamos el botón enter en el ordenador. Esa
identación significa que todas las líneas de código ubicadas bajo el while son
instrucciones que se ejecutan en caso de que se cumpla la condición que está
preguntando la sentencia while.
De igual forma pasa con la sentencia else que se encuentra más abajo en la
línea 7, lo cual indica que esa sentencia es complementaria del while que ha sido
escrito en la línea 4. Si la sentencia else estuviera identada con la línea 6, Python
nos indicaría que hay un error de identación, lo cual también ocurriría si por
ejemplo el print que se encuentra en la línea 5 estuviera alienado con la
sentencia while que se encuentra en la línea 4.
3.3.1 Sentencia if
33
3.3.2 Sentencia else
34
La sentencia elif tiene como objetivo preguntar sobre condiciones que se buscan
para ejecutar un programa. En el ejemplo de la imagen, el objetivo es preguntar
si existe una variable que sea menor a otra variable, como el resultado refleja, al
conseguir una condición verdadera el programa ejecuta la función imprimir y
termina la sentencia de control de flujo, lo cual es muy importante saber.
En Python, la sentencia for está compuesta por una lista de elementos sobre los
cuales queremos ejecutar un programa y una variable que almacenará cada
35
elemento de la lista definida dentro del bucle for. El siguiente ejemplo ilustra un
bucle for.
Como se puede ver, la variable nombre almacena cada nombre por cada uno
que consigue dentro de la tupla. En otras palabras, la sentencia diría lo siguiente:
por cada nombre que consigas dentro de la variable nombres, muéstralo en
pantalla. Este sería el ejemplo de una operación sencilla, pero se pueden hacer
operaciones mucho más complejas que pueden incluir operaciones
matemáticas, como en el siguiente ejemplo.
36
programa. El siguiente ejemplo ilustra cómo se ejecuta la sentencia while
mientras la condición que preguntamos es verdadera.
37
En la imagen se refleja la forma de entrar en un bucle while dando por cierta una
condición. También se puede ver que se está haciendo uso de la palabra
reservada break, la cual se utiliza para finalizar el programa cuando la condición
se cumple. Es necesaria en este caso pues al tener predefinido el while como
True, si no se inserta el break el programa se ejecutará de forma indefinida e
imprimiría “Ya había 5 manzanas” infinitamente.
Como se puede ver, se ha creado una lista (list), un conjunto (set) y una tupla
(tuple) con distintos parámetros dentro de la función range(). Se puede
38
comprobar como el número final de cada una de ellas es el parámetro menos
uno, es decir, en el caso de la lista se le ha pasado el 10 como parámetro y al
imprimir el resultado, ha impreso los números del 0 al 9.
39
La función range() también crea rangos de números negativos, como se puede
ver en el siguiente ejemplo.
3.6 RESUMEN
40
Sentencias de control de flujo condicionales:
41
UNIDAD 4. COLECCIONES DE DATOS
4.1 OBJETIVOS
El objetivo de este tema es estudiar las estructuras de datos más avanzadas que
nos ofrece el lenguaje Python. A través de estas estructuras podemos manipular
y almacenar de distintas formas los diferentes tipos de datos en Python en
función de las necesidades del programa matemático, de gestión, etc...
4.2 INTRODUCCIÓN
4.3 TUPLAS
Una tupla es un conjunto de datos que pueden ser del mismo tipo (sólo números)
o de varios (una cadena, un número, incluso otra tupla). Las tuplas pueden
escribirse (o no) dentro de un paréntesis y pueden estar formadas por un solo
dato. Para hacer saber a Python que este único dato es una tupla, este debe ir
seguido de una coma. En el caso de tener varios datos, cada uno debe ir
separado por una coma. Las tuplas son inmutables, por lo que una vez se define
un valor dentro de la tupla, no se puede alterar; tampoco se pueden agregar más
elementos a la tupla ni eliminarlos una vez creada. Las tuplas además se pueden
concatenar con otras tuplas y así formar una tupla de tuplas. Revisa las
imágenes a continuación para ver cómo funciona y también practícalo en tu
ordenador.
42
Se puede acceder a cada elemento de la tupla haciendo referencia al índice en
el que se encuentra, teniendo en cuenta que siempre el primer elemento de la
tupla va a ser el índice cero, de la siguiente forma.
43
También se puede conocer el tamaño de la tupla a través de la palabra reservada
len. Se hace como se muestra en la imagen y el resultado es 6, ya que la tupla
contiene 6 elementos.
4.4 LISTAS
44
Las listas a diferencia de las tuplas, son mutables. Es decir, se pueden reasignar
valores a los elementos que se encuentran dentro de ella, así como aumentar o
disminuir la cantidad de elementos de la lista. Pueden almacenar cualquier tipo
de dato y una lista también puede estar formada por otras listas, es decir, una
lista de listas. Las listas se declaran entre corchetes y se separa cada elemento
dentro de ella por una coma.
45
la misma forma que con las tuplas. Para reasignar el valor de un elemento dentro
de la lista, se escribe el nombre de la lista junto el índice del elemento a sustituir
entre corchetes seguido de un operador igual (=) con el valor que queremos
asignar. En la siguiente imagen se puede apreciar cómo se lleva a cabo.
46
Para remover un elemento, se puede hacer a través del método remove(object)
el cual recibe como argumento el valor que se quiere remover, como se refleja
en la siguiente imagen.
Para conocer el tamaño de la lista al igual que en con las tuplas, se puede invocar
el método len(nombre_lista). Para saber en qué índice se encuentra un
elemento, se utiliza el método index(elemento) que devuelve el índice donde se
encuentra el elemento que se ha pasado como argumento al método y devuelve
error si este no se encuentra dentro de la lista.
47
Se puede eliminar el último elemento de la lista a través del método pop(), el cual
también se puede guardar en otra variable.
Con el método sort() se puede ordenar una lista de forma ascendente, como se
puede apreciar en la siguiente imagen.
48
Para acceder a cada uno de los elementos de una lista, se hace a través del
índice que poseen. El índice de una lista siempre empieza en cero y en esa
posición se encuentra el primer elemento de la lista (de izquierda a derecha). En
el siguiente ejemplo se muestra cómo funciona.
49
Cuando se pasan más de dos argumentos, los valores por defecto de esos
argumentos son, en el primer argumento, el índice cero de la lista y el valor por
defecto del segundo argumento, el último índice de la lista, como se muestra a
continuación.
Las listas además poseen un índice negativo a través del cual se puede acceder
a sus elementos. En este caso, el -1 representa el último elemento de la lista y
funciona como se muestra a continuación.
50
4.5 CONJUNTOS
Python ordena los datos dentro de los conjuntos de forma arbitraria, si se quisiera
utilizar un bucle for por ejemplo para imprimir cada uno de los elementos que se
encuentran dentro del conjunto, lo haría, pero sin respetar un orden, es decir, los
imprimiría en un orden arbitrario y no ordenado. En la siguiente imagen se
muestra cómo funciona un conjunto.
51
4.6 DICCIONARIOS
Los diccionarios son conjuntos de datos no ordenados donde cada dato está
formado por una clave que Python llama key y un valor llamado values. Cada
key debe ser único y no puede repetirse, aunque los values si pueden hacerlo.
El key siempre será el primer valor y el value será el segundo en cada par. Los
diccionarios se definen con un nombre seguido del operador igual y una apertura
y cierre de llaves.
Cada dato, tanto los keys como los values están entre comillas simples,
separados por dos puntos. Si el key o el value es un entero, entonces solo se
coloca la cifra sin las comillas. Para separar cada par se utiliza una coma, como
se puede apreciar en la siguiente imagen.
52
También podemos acceder al value de un key a través del método get(key) el
cual recibe como argumento el key y devuelve como resultado el value
correspondiente a ese key, como se puede ver a continuación.
Para obtener todos los values del diccionario, se hace de igual forma que para
obtener los keys, pero utilizando la palabra values.
53
La cantidad de elementos que contiene un diccionario se puede obtener también
utilizando el método len(diccionario), el cual recibe como argumento el
diccionario del cual se desea saber su tamaño.
54
Si se quiere eliminar un elemento del diccionario, se utiliza el método
pop(‘key’,’values’), el cual recibe como primer argumento el nombre del key y
como segundo argumento el value correspondiente al key que queremos
eliminar.
El método ítems() devuelve una lista formada por tuplas, donde cada una de
estas se conforma por el key y el value de cada elemento del diccionario.
55
Se puede eliminar el último elemento del diccionario a través del método
popitem(), el cual también se puede capturar en una variable, como se muestra
en la siguiente imagen.
4.7 RESUMEN
56
3.Conjuntos (set): se escriben con {}. No admiten datos repetidos y no están
ordenados. Sirven para saber si un dato está en él más rápidamente.
4.Diccionarios (dict): conjuntos de datos agrupados de dos en dos en los
que el primer dato es la clave y el segundo el valor, de esta manera
{dato:valor}. No están ordenados, pero sí son mutables. Para trabajar con
ellos se puede acceder solo a las claves, solo a los valores o a ambos.
57
UNIDAD 5. ENTRADAS Y SALIDAS DE
INFORMACIÓN
5.1 OBJETIVOS
5.2 INTRODUCCIÓN
58
El método input() una vez ejecutado, espera a que el usuario ingrese, en este
caso, el nombre el cual debe escribirse en el teclado y luego pulsar la tecla enter.
Si el usuario no pulsa la tecla enter el programa no se ejecutará. Además, la
información suministrada por el usuario a través del teclado se puede almacenar
en una variable, que por defecto es de tipo cadena.
Si se quisiera llevar a cabo una operación matemática con los datos que el
usuario ingresa por pantalla, lo único que habría que hacer es transformar el dato
que se recibe a entero mediante la palabra reservada que indica que es un
entero, int(), colocando entre sus paréntesis el input.
Si se quisiera recibir por parte del usuario cifras con decimales habría que hacer
la misma transformación pero en lugar de int() se escribiría float(). En la siguiente
imagen se ve cómo se lleva a cabo esta transformación.
59
transformar el dato que se reciba entero, si el usuario ingresa letras, Python
devolverá un error como el que se muestra a continuación.
60
5.4 FORMATOS DE INFORMACIÓN
Los formatos de salida de información tienen que ver con la forma de cómo se
organizan los datos para que, cuando existe un gran volumen de información,
hacerlo de forma más eficiente.
61
Dentro del método format() cada valor posee un índice (empezando por cero,
correspondiendo al primer valor por la izquierda). En el caso del ejemplo, el valor
del índice cero dentro del format() corresponde a ‘López’, el valor del índice uno
corresponde a ‘Juan’ y así sucesivamente. Este índice se pasa como argumento
dentro del par de llaves y de esta forma se indica dónde se desea mostrar dentro
de la cadena el valor que se tiene dentro del índice del format(), tal como se
refleja a continuación:
Como se puede ver en la imagen anterior, el orden de los valores dentro del
format() no ha cambiado, es decir, se mantiene en el índice cero ‘López’, en el
índice uno ‘Juan’ y en el índice dos el valor 27. Sin embargo sí se ha cambiado
la forma mostrar la información y se reflejan los números de los índices de los
valores que se encuentran dentro del format() dentro de cada una de las llaves
de donde se quiere mostrar la información.
62
Al texto también se le puede incorporar por ejemplo una cantidad de espacios
dentro del cual debe aparecer. Por ejemplo, para el nombre “Juan”, se le puede
decir a Python que aparezca dentro de un espacio de diez caracteres. Por lo cual
“Juan” al tener sólo cuatro caracteres, dejará seis espacios. Esos espacios
vacíos se pueden rellenar con una línea, un asterisco o el símbolo que se desee.
El método format() también puede alinear el texto a la izquierda, al centro o a la
derecha. Revisa en la siguiente imagen cómo funciona.
Como se puede ver en la imagen anterior, la alineación se hace sobre cada texto
que se quiere mostrar en pantalla. Para hacerlo, después del número de índice
se colocan dos puntos. Si después de los dos puntos colocamos un símbolo
“menor que” <, se indicará a Python que se quiere alinear el texto a la izquierda,
el símbolo ^ alineará el texto en el centro, y el símbolo > lo alineará a la derecha,
tal como se observa en la imagen Los espacios vacíos al alinear el texto pueden
ser rellenados con caracteres y para hacerlo, se debe colocar el carácter con el
que queremos rellenar los espacios vacíos a la izquierda del símbolo que se
ingrese para centrar.
63
El método format() ofrece la posibilidad de construir una tabla utilizando para ello
la cantidad de espacios en los que se quiere mostrar la información y ajustar la
alineación del texto como se ha explicado anteriormente. Para indicar a Python
qué tipo de dato se está alineando, después de la cantidad de espacios, se
escribe la letra “d” para indicar que son dígitos o la letra “s” para indicar que son
letras, como se observa a continuación.
64
La posibilidad de mostrar solo una parte de un texto almacenado en una variable
se puede realizar colocando dentro de las llaves, tras del índice del valor y de los
dos puntos, un punto seguido de la cantidad de caracteres que se quieren
mostrar del texto, es decir, si se tiene el nombre “Juan” y solo se quieren mostrar
las dos primeras letras del nombre, se haría de la siguiente forma {0:.2} o como
se ve en la siguiente imagen.
65
5.5 RESUMEN
Para salida de información se usa el método print() y para además dar formato
a los datos el método format(), con el cual indicamos dentro de los paréntesis los
valores que queremos introducir en una cadena y en esta se ponen las llaves {}
donde se introducirán los valores de forma ordenada. Aunque también se pueden
introducir los valores por índice. (Ejemplo: “Hola{0}”). O usar variables, en vez de
introducir directamente los valores en los paréntesis del método format(), de esta
forma se pueden repetir una variable las veces que queramos.
66
UNIDAD 6. FUNCIONES
6.1 OBJETIVOS
6.2 INTRODUCCIÓN
Para declarar una función en Python, se utiliza la palabra reservada def seguido
del nombre de la función, por ejemplo “suma” y luego entre paréntesis puede ir
el argumento que la función recibe como parámetro en caso de que lo tenga, y
luego se escriben dos puntos y se pulsa la tecla “enter”, lo cual hará que la
función se idente y allí es donde se incluirán las líneas de código que se buscan
ejecutar a través de la función. A continuación, se verá cómo se escribe una
67
función cuyo objetivo es sumar los valores que el programador le pasa como
argumento y al mismo tiempo, obtener de la función un resultado, que es lo que
se quiere obtener de la función.
68
6.3 ARGUMENTOS Y PARÁMETROS
69
6.3.3 Llamada sin parámetros
Se puede definir una función sin parámetros, por lo cual al momento de llamarla
no se enviará ningún argumento, pero aun así la función ejecutará las
operaciones que se encuentren dentro de ella, como se muestra a continuación:
70
6.3.4 Parámetros con valores por defecto
Una forma de evitar que una función devuelva error cuando se han establecido
parámetros y no se envían argumentos al momento de ejecutarla, es asignando
valores por defecto a los parámetros y de esta forma, decirle al programa que
siga una determinada instrucción si no se reciben argumentos, como se puede
ver a continuación.
71
6.4.1 Argumentos indeterminados por nombre
72
6.4.3 Argumentos indeterminados por nombre y por nombre
(clave, valor)
Es una función que recibe tanto argumentos indeterminados por nombres, como
argumentos indeterminados por clave y valor, como se verá en la siguiente
imagen.
6.5 RESUMEN
Las funciones son trozos de código que se pueden ejecutar múltiples veces, la
cual pueden recibir y devolver información para comunicarse con el proceso
principal. Para ser declarada posee la sentencia def usada para crear objetos de
funciones determinadas por el usuario. En ellas se pueden pasar valores que se
denominan (parámetros) y en la llamada los denominamos (argumentos).
Es importante resaltar que los argumentos que reciben una función pueden ser
por posición y por nombre.
Ejemplo:
73
>>> multiplicacion(2, 5)10 >>> multiplicacion(2, 5)10
74
UNIDAD 7. MANEJO DE ERRORES EN PYTHON
7.1 OBJETIVOS
7.2 INTRODUCCIÓN
75
7.3 TIPOS DE ERRORES
Y así existen una gran cantidad de errores que pueden ocurrir en Python, que se
pueden conocer en la medida que se vayan ejecutando distintos programas. La
consecuencia de un error es la paralización del programa que se intenta ejecutar.
76
7.4 CAPTURA DE EROORES
Sin embargo, los errores pueden ser manejados y en caso de que un programa
entre en uno, se le puede indicar que ejecute una instrucción para de esta forma
no paralizar el programa, sino darle una vía de continuidad para su ejecución.
Para ello se utiliza un bloque de manejo de excepciones que utiliza las palabras
reservadas try y except. Para implementarlo, las instrucciones que se quieren
ejecutar se colocan dentro del try y en el caso de que llegara a ocurrir un error,
se inserta lo que se quiere ejecutar dentro del except como se muestra a
continuación.
77
Como se puede observar en la imagen anterior, se han incluido dos bloques
distintos para manejar dos errores distintos los cuales tienen su origen en lugares
distintos. ¿Por qué se hace de esta forma? Si se analiza bien, el error del tipo
ZeroDivisionError proviene de la línea de código return: a/b cuando se intenta
hacer la división. Por otro lado, si se intenta llamar a la función solo con un
argumento (cuando en realidad requiere dos), esto arroja el error TypeError y,
en consecuencia, el bloque try-except debe envolver el llamado a la función
porque es allí donde se origina el error y no en otro lugar, lo cual es exactamente
lo que ha ocurrido
7.6 RESUMEN
Son los que podemos apreciar repasando el código, por ejemplo, al dejarnos de
cerrar un paréntesis:
78
Errores de nombre (NameError)
Son muy difíciles de identificar, ya que van ligados al sentido del funcionamiento
y dependen de la situación. Algunas veces pueden ocurrir y otras no.
Las excepciones
Para prevenir el error, debemos poner el código propenso a error un bloque try
y luego encadenaremos un bloque except para tratar la excepción.
Es posible encadenar un bloque else después del except para comprobar el caso
en que todo funcione correctamente (no se ejecuta la excepción).
El bloque else es un buen momento para romper la iteración con break si todo
funciona correctamente.
Por último, es posible utilizar un bloque finally que se ejecute al final del código,
ocurra o no ocurra un error.
79
UNIDAD 8. MÉTODOS DE ANÁLISIS Y
TRANSFORMACIÓN DE CADENAS
8.1 OBJETIVOS
El objetivo de este tema es ir viendo todas las funciones de las cadenas (clase
str) muy útiles en cualquier lenguaje de programación. Veremos cómo manipular,
analizar y procesar las cadenas de textos a través de todas las funciones que
nos ofrece la clase str (string).
8.2 INTRODUCCIÓN
Las cadenas poseen una serie de métodos que permiten analizarlas y también
transformarlas. A continuación, se mostrará con ejemplos cada uno de estos
métodos.
Como se puede ver, se han impreso la letra “a” que corresponde al índice cero,
y la letra “b” que corresponde al índice uno. Pero también podemos mostrar un
segmento de la cadena, para hacerlo, luego del primer argumento, se colocan
dos puntos y se pasa el siguiente argumento, el cual indica hasta donde se quiere
obtener los valores de la cadena menos uno, es decir, si queremos obtener los
80
valores desde el índice cero hasta el índice 4, el segundo argumento que se debe
pasar es el número cinco, tal como se puede ver a continuación.
También existe una forma de obtener los valores de una cadena iniciando desde
el último índice, para ello, la cadena tiene un índice negativo, y si se quiere
obtener el último valor de la cadena, se le pasa entre corchetes el -1, como se
ve en el siguiente ejemplo.
81
8.2.1 Método capitalize
82
8.2.3 Método upper
Este método, al contrario de lower (), devuelve una copia de la cadena en letras
mayúsculas.
83
8.2.6 Método center()
Este método centra una cadena dentro de una cantidad de espacios que recibe
como argumentos. Si la longitud de la cadena es más pequeña que la cantidad
de espacios que le damos como argumento, por defecto, los espacios restantes
estarán vacíos, pero si le pasamos un carácter como segundo argumento, llena
los espacios restantes con ese argumento. El segundo argumento no funciona
si no lo pasamos entre comillas o si le pasamos dos caracteres como argumento.
84
8.2.8 Método rjust()
Este método realiza el relleno con ceros a la izquierda hasta alcanzar la longitud
final indicada. Si hay 4 números y como argumento pasamos el 5, solo insertará
un cero a la izquierda.
85
8.2.10 Método count()
Este método retorna un entero indicando la posición del índice en el que se inicia
la subcadena, si no encuentra una coincidencia retorna -1. Además, puede
recibir dos argumentos más: desde qué parte de la cadena queremos aplicar el
método y dónde queremos que culmine. Este método distingue entre
mayúsculas, minúsculas y el índice de la ubicación dentro de la cadena inicia en
el 0. Este método inicia su búsqueda de izquierda a derecha y retorna la posición
en la que se encuentra la primera coincidencia. El argumento donde se inicia la
búsqueda toma en cuenta el carácter que se encuentra desde el índice que le
pasamos, pero el segundo argumento debe superar en al menos un índice la
subcadena que estamos buscando.
86
8.2.12 Método startwith()
Este método busca saber si una cadena empieza por una subcadena
determinada retornando True si encuentra la subcadena o False si no lo hace.
El argumento donde se inicia la búsqueda debe coincidir exactamente con el
índice en el cual inicia la subcadena y el segundo argumento debe superar en al
menos un índice la subcadena que estamos buscando. Distingue entre
mayúsculas y minúsculas.
Este método busca saber si una cadena termina por una subcadena determinada
retornando True si encuentra la subcadena o False si no lo hace.
87
8.2.14 Método isalnum()
88
8.2.16 Método isnumeric()
89
8.2.19 Método isspace()
Este método evalúa si una cadena tiene formato de título, devuelve True si la
cadena tiene este formato, de lo contrario devuelve False. El formato de título
consiste en que la cadena debe empezar con una letra mayúscula. Admite un
punto y espacios.
90
8.2.21 Método replace()
Este método sustituye la cadena de una variable por la cadena de otra variable.
La cadena que queremos sustituir se debe insertar de forma literal al igual que
la cadena nueva que queremos incluir.
91
8.2.23 Método join()
Este método inserta una cadena dentro de otra tantas veces como queramos.
Para hacerlo, se llama a la variable con el valor que queremos insertar seguida
del punto y el método join(argumento), en el argumento pasamos la variable en
la que queremos insertar el valor. Para esta función es necesario incluir comas
dentro de la cadena que recibe el argumento que serán los lugares en donde se
incluirá el elemento que queremos agregar. Este método solo recibe strings, por
lo que si intentamos insertar un entero nos devolverá un error de atributo.
Este método convierte una cadena en una tupla de tres elementos. La forma en
como los divide es: un elemento que es todo lo que se encuentra antes del
argumento (subcadena que le pasamos como argumento), un segundo elemento
que es la propia subcadena que le pasamos y un tercer elemento que es todo lo
que se encuentra después del argumento. Evalúa la cadena de izquierda a
derecha y si el argumento existe varias veces, toma el primero que se consigue.
Si después del argumento no hay más elementos, como último elemento
devuelve una cadena vacía.
92
8.2.25 Método split()
Este método convierte una cadena en una lista con todas las subcadenas que
se encuentran en la cadena. Un segundo argumento indica la cantidad de índices
que queremos en la lista, lo cual limita la cantidad de elementos en los que se
dividirá la cadena
Crea una lista de elementos a partir de una cadena. El método divide la cadena
en un elemento para la nueva lista tomando en cuenta los caracteres de salto de
línea.
Este método nos permite conocer el código Unicode del carácter que se le pasa
como argumento. Acepta sólo un carácter como argumento y devuelve un entero,
93
lo que permite comparar si una letra es mayor que otra. Devuelve un error si se
le pasan dos caracteres o ninguno.
94
8.2.30 Método slice(argumento)
Este método permite obtener una o varias secciones de una cadena y lo hace
recibiendo argumentos. Para utilizar este método, se crea una variable a la que
se la pasa el método y los argumentos, como se muestra a continuación.
Como se puede ver, el método slice ha sido almacenado en una variable y para
aplicarlo luego se ha pasado entre corchetes, antecedido de la cadena a la que
se le ha aplicado el método. El número que se le ha pasado al método slice hace
referencia a los índices que se quieren obtener de la cadena menos uno, por eso
el método ha devuelto “fran” y no “franc”, por defecto empieza en el índice cero.
95
Este método también permite obtener un segmento de la cadena de forma
escalonada, se hace pasando un tercer argumento a través del cual el método
hace saltos entre índices de la cadena, como se ve a continuación.
96
8.3 RESUMEN
CADENAS
Estos índices pueden ser tanto positivos como negativos, con la única regla que
el índice ‘a’ este más a la derecha en la cadena que el índice ‘b’.
Por ejemplo:
NombreCadena.metodo(argumento)
97
4. Método swapcase(): Lo que está en mayúscula lo convierte en minúscula
y viceversa.
5. Método title(): Convierte la primera letra de cada palabra en mayúscula.
6. Método center(): Centra la cadena dentro de una cantidad de caracteres
o espacios, consta de dos argumentos pero solo el primero es
indispensable.
7. Método ljust(): Igual que el center() pero alineándolo a la izqda.
8. Método rjust():Igual que el center() pero alineándolo a la drcha.
9. Método zfill(longitud): Rellena con 0 a la izq. hasta alcanzar la longitud
indicada
10. Método count(): Nos dice la cantidad de veces que aparece el argumento
11. Método find(): Nos indica la posición del argumento.
12. Método starswith(): Nos indica si una cadena empieza por una
subcadena determinada.
13. Método endswith(): Nos indica si una cadena termina por una subcadena
determinada.
14. Método isalnum(): Nos indica si un carácter es alfabético o numérico.
15. Método isalpha(): Nos indica si un carácter es alfabético.
16. Método isnumeric():Nos indica si un carácter es numérico.
17. Método isdecimal(): Nos indica si un carácter se encuentra entre el 0 y
el 9.
18. Método isdigit():
19. Método isspace()
98
UNIDAD 9. ENTORNO DE DESARROLLO ANACONDA
Y JUPYTER
99
100
101
La primera casilla no hace falta marcarla en la nueva versión de Python así que
se puede dejar desmarcada.
102
Accedemos desde inicio en Windows escribiendo la palabra anaconda en el
buscador, pulsamos en Anaconda Navigator que es el entorno que vamos a
manejar.
103
Clicamos en launch y se abrirá en el navegador la interfaz de Jupyter en el puerto
8888
104
Esta estructura arranca desde la ubicación donde se encuentra la carpeta de
usuario dentro de Windows.
105
En la barra de herramientas podremos seleccionar desde un desplegable el tipo
de programa dentro de cada celda, estas pueden mostrar código o simple
información.
106
Para confirmar la celda siempre se pulsan las teclas Shift + Intro. A continuación,
se muestran ejemplos de mark down:
107
Cada bloc de notas es una sesión independiente del intérprete de Python, es
decir, un archivo independiente en el cual se pueden guardar los proyectos que
se desarrollen.
108
SIGUE LA ACTUALIDAD DE
ANDALUCÍA COMPROMISO DIGITAL
www.andaluciacompromisodigital.org