Apuntes Pildoras informáticas curso de python, módulo 1
La elaboración del presente curso se encuentra en el siguiente link: Curso Python. Modulo 1 y es desarrollado por la Academia virtual Pildoras informáticas. Este es un conjunto de apuntes personales basados en los vídeo tutoriales desarrollados por el autor original.
Los vídeos también se pueden encontrar en el siguiente canal de Youtube Lista de videos
01. Presentación curso de Python
Introducción
Requisitos previos
Instalación Software
Fundamentos y sintaxis básica del lenguaje
Programación orientada a objetos (POO) con Python
Bases de datos relacionadas (BBDD)
trabajos con gráficos y contenidos
Procesos y tareas
Programación de red. Sockets
Ejercicios prácticos
02. Introducción al curso
Historia de Python
Sistema operativo amoeba, el nombre proviene de la serie de televisión Monty Python de humor de los 70 y 80.
Características de Python
Lenguaje de alto nivel (simil a lenguaje natural al ser humano)
Los lenguajes de programación se clasifican en dos categorías: lenguajes de alto nivel y lenguajes de bajo nivel.
Un lenguaje de alto nivel es aquel que permite escribir código en una sintaxis más cercana al lenguaje humano, con una menor cantidad de detalles técnicos. Son más fáciles de leer y escribir y brindan un mayor nivel de abstracción. Ejemplos de lenguajes de alto nivel incluyen Python, Java, Ruby y C#.
Por otro lado, un lenguaje de bajo nivel es un lenguaje que requiere un conocimiento más detallado y profundo de la arquitectura del hardware. Estos lenguajes se utilizan para programar en niveles más cercanos al hardware y suelen requerir una mayor cantidad de código para lograr una tarea. Ejemplos de lenguajes de bajo nivel incluyen Assembly y C.
Python también es un lenguaje de gramática sencilla, clara y legible. También es un legunaje de tipado dinámico y fuerte.
Un lenguaje de programación de tipado dinámico y fuerte es un lenguaje que combina características de los lenguajes de tipado dinámico y los lenguajes de tipado fuerte. Es decir, aunque los tipos de datos de las variables no se especifican explícitamente, el lenguaje realiza una verificación estricta de los tipos en tiempo de ejecución y no permite la realización de operaciones no válidas con diferentes tipos de datos.
Ejemplos de lenguajes de programación de tipado dinámico y fuerte incluyen Python, Ruby, y Swift. Estos lenguajes brindan la flexibilidad y la facilidad de uso de los lenguajes de tipado dinámico, pero también proporcionan una mayor seguridad y fiabilidad en términos de control de tipos. Además, los errores de tipos pueden ser detectados y corregidos con mayor facilidad en tiempo de ejecución.
Python es un lenguaje orientado a objetos, teniendo en cuenta los siguientes elementos:
Sobrecarga de constructores
Herencia Multiple
Encapsulación
Interfaces
Polimorfismo
Un lenguaje de programación orientado a objetos es un tipo de lenguaje de programación que permite la creación de objetos y clases. Cada objeto es una instancia de una clase y tiene atributos y métodos asociados. La orientación a objetos se utiliza para modelar conceptos del mundo real como objetos y para organizar el código en una forma más clara y fácil de entender y mantener. Algunos ejemplos de lenguajes de programación orientados a objetos incluyen Java, Python, C# y Ruby.
Es un lenguaje open source, fácil de aprender, librería estándar muy amplia, interpretado y versatil que trabaja en:
Aplicaciones de escritorio
Aplicaciones de servidor
Aplicaciones web
03 Sintaxis básica del lenguaje
IDLE Python
IDLE es un entorno integrado de desarrollo de Python, que incluye un editor de código, un depurador y un intérprete interactivo. IDLE es un acrónimo de Integrated Development and Learning Environment (Entorno Integrado de Desarrollo y Aprendizaje). Es una herramienta de desarrollo de software gratuita y de código abierto que se distribuye con la instalación estándar de Python. IDLE facilita el desarrollo y el aprendizaje de Python, permitiendo escribir, ejecutar y depurar código de manera eficiente.
Para Python se tienen la siguiente lista de IDLE’s que se pueden utilizar, varían según las necesidades específicas de cada profesional.
IDLE (el IDLE predeterminado incluido en la distribución estándar de Python)
PyCharm
Spyder
Anaconda (que incluye el IDLE de Spyder)
Visual Studio Code (con la extensión Python)
Jupyter Notebook / JupyterLab
Thonny
Wing IDE
Komodo IDE
Eric Python IDE
Rstudio
En particular, estos apuntes se desarrollan usando el IDLE Rstudio de Posit. En particular, el módulo Quarto, herramienta diseñada para el desarrollo y publicación de documentos técnicos y cientificos.
En Python el promt son el conjunto de caracteres que muestra donde se puede ejecutar el código. En particular, para este lenguaje el prompt es: >>>
- Primeras instrucciones en python
print("Hola Mundo")Hola Mundo
El punto y coma se puede utilizar como herramienta de salto de líneas, generalmente no se realiza, pues es una mala forma gramática en lenguajes de programación
print("Hola Mundo") ; print("Adios Mundo cruel")Hola Mundo
Adios Mundo cruel
En Python es muy útil la identación
La identación en programación es el uso de espacios o tabulaciones al comienzo de una línea de código para crear una estructura visualmente clara y fácil de leer. En la mayoría de los lenguajes de programación, la identación se utiliza para identificar bloques de código relacionados, como funciones, bucles o condicionales. Al identar el código, se hace más legible y fácil de mantener, y también ayuda a evitar errores comunes como la falta de cierre de un bloque. La cantidad de espacios o tabulaciones usadas para la identación varía según el lenguaje de programación y la convención de estilo de programación que se utilice.
Un ejemplo de identación en lenguaje Python es la siguiente:
a=0
for i in range(5):
a+=1
print(a)1
2
3
4
5
La identación ocurre después de generar el for , esto indica que las líneas a+=1 y print(a) están dentro de la sentencia for.
04. Sintaxis básica II Tipos, operadores y variables.
Una de las características principales de Python es su simplicidad. En este caso se van a trabbajar tres tipos de datos, los númericos, textos y booleanos; los cuales se dividen así:
Numéricos
Enteros (int)
Coma flotante
Complejos
Textos
Booleanos
True
False
Los operadores básicos que podemos usar en Python son los siguientes:
Aritméticos
Suma (+)
Resta(-)
Multiplicación (*)
División (/)
Modulo o residuo (%)
Exponente (**)
División entera (//)
Comparación
Igual que (==)
Diferente que (!=)
Mayor que (>)
Mayor o igual a (>=)
Menor que (<)
Menor o igual a (<=)
Lógicos
Operador Y (AND)
Operador O (OR)
Negación (NOT)
Asignación
Asigna (=)
Incremento (+=)
Decrecimiento (-=)
(\*=)
(/=)
(%=)
(\*\*=)
(//=)
Especiales
IS
IS NOT
IN
NOT IN
Variable
La variable es el espacio en la memoria del ordenador donde se almacenará un valor que podrá cambiar durante la ejecución del programa.
Se muestran algunos ejemplos de operaciones de varios tipos de variables en Python.
print(8*6) # Multiplicación en Python48
print(10%3) # Residuo o módulo en Python1
Las asignaciones se pueden realizar de las siguientes elementos:
mi_nombre = "carlos"
nombre = "María"
nombre3 = "Andrea"El tipo de la variable lo define el contenido, mas no el contenedor (variable). Por ejemplo, en C la asignación de elemetos se realiza así int var = 5, en Python sería de la foirma var = 5
la función type se usa en Python para determinar el tipo de elemento de una variable o un objeto, por ejemplo
print( type("texto") )<class 'str'>
print( type(5) )<class 'int'>
print( type(3.1415) )<class 'float'>
La verificación booleana del tipo de elementos se hace de la siguiente manera en Python
type(5) == intTrue
Un tipo de verificación más avanzada en el que se desea buscar alguna de varias tipologías de elementos es la siguiente:
type(5) in [int, float]True
En este caso se puede observar que 5 es alguno de los dos tipos de elementos int o float . La función type() devuelve el tipo de un objeto en Python, y la comparación se realiza con la operación in que devuelve True si el tipo del objeto se encuentra en la lista de tipos esperados, en este caso [int, float].
Condicional if
Un condicional en programación es una estructura de control que permite ejecutar un bloque de código solo si se cumple una determinada condición. La sintaxis básica de un condicional es la siguiente:
if condition:
bloque de código que se ejecuta si la condición es verdadera
Por ejemplo, el siguiente código imprime un mensaje si una variable x es mayor que 0:
x = 5
if x > 0:
print("x es positivo")x es positivo
El resultado sería: x es positivo.
Además de la estructura básica de un condicional, es común utilizar una estructura de control adicional que se ejecute en caso de que la condición sea falsa, y se logra esto con el uso de else:
x = -5
if x > 0:
print("x es positivo")
else:
print("x es negativo o cero")x es negativo o cero
El resultado sería: x es negativo o cero.
En algunos casos, se pueden evaluar más de dos opciones con el uso de elif:
x = 5
if x > 0:
print("x es positivo")
elif x == 0:
print("x es cero")
else:
print("x es negativo")x es positivo
El resultado sería: x es positivo.
05. Sintaxis básica III. Funciones
Funciones
Una función en programación es un bloque de código que realiza una tarea específica y puede ser llamado desde cualquier parte del programa. Las funciones se utilizan para dividir un programa en bloques más pequeños y manejables, lo que facilita la comprensión, la reutilización y el mantenimiento del código.
En general, una función toma uno o más parámetros de entrada, realiza alguna operación en ellos y devuelve un resultado. La función puede ser definida por el programador o puede ser parte de una biblioteca de funciones proporcionada por el lenguaje de programación.
Las funciones en Python son un conjunto de líneas de código agrupadas (bloque de código) que funcionan como una unidad realizando una tarea especifica.
Las funciones en Python pueden o no devolver valores.
Las funciones en python pueden tener parámetros o argumentos.
A las funciones también se les denomina “métodos” cuando se encuentran definidas dentro de una clase.
En Python, la clase es una construcción de programación que permite crear objetos personalizados con atributos y métodos. Una clase es como un plano o un molde para crear objetos. Cada objeto creado a partir de una clase se conoce como una instancia de esa clase.
La estructura o sintaxis de una función corresponde a lo siguiente:
def nombre_funcion():
Instrucciones de la función
retorno (opcional)
Se presenta un caso en el que es necesario la elaboración de una función. Por ejemplo, se necesita realizar las impresiones de tres frases, de manera consecutiva siete veces.
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
print("Estamos aprendiendo Python")Estamos aprendiendo Python
print("Estamos aprendiendo instrucciones básicas")Estamos aprendiendo instrucciones básicas
print("poco a poco iremos avanzando","\n")poco a poco iremos avanzando
Debemos colocar las tres impresiones dentro de una función:
def mensaje():
print("Estamos aprendiendo Python")
print("Estamos aprendiendo instrucciones básicas")
print("poco a poco iremos avanzando","\n")Y finalmente se ejecuta la función mensaje
mensaje()Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
podemos ejecutarlo siete veces utilizando un loop for. y así podemos realizar esta labor de la misma forma que el ejemplo.
for i in range(7):
mensaje()Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
06. Funciones II
Creación de parámetros de funciones
Los parámetros o argumentos de las funciones son los elementos de entrada que se introducen en una función, estos sirven como insumo para generar la salida de la función.
La siguiente función posee parámetros necesarios para realizar una suma:
def suma_print( num1 , num2 ):
print( "la suma de " , num1 , " y " , num2 , " es ", num1 + num2 )Al llamar dicha función se obtienen los siguientes resultados:
suma_print( 4 , 5 )la suma de 4 y 5 es 9
suma_print( 3.14 , 3.14 )la suma de 3.14 y 3.14 es 6.28
En este caso la función genera una impresión, pero no devuelve algún objeto, para realizar dicha tarea es necesrio utilizar la instrucción return. Por ejemplo:
def suma_return( num1 , num2 ):
resultado = num1 + num2
return resultadoUna manera de ejecutar este resultado es el siguiente:
salida = suma_return( 10 , 5 )
print(salida)15
Podemos utilizar el valor de generado en la función para realizar otras labores.
En este caso, el parámetro num1 y num2 son obligatorios para poder ejecutar la suma. Sin embargo, se pueden presentar casos en que uno o más parámetros no son obligatorios, en ese caso es necesario realizar una asignación previa (default) de alguno de los parámetros. Por ejemplo:
def suma_predeterminada( num1 , num2 = 0 ):
resultado = num1 + num2
return resultadoEsta función se puede ejecutar utilizando únicamente el primer parámetro
suma_predeterminada( 10 )10
Otro ejemplo de parámetro es utilizar la función mensaje del numeral 6 indicando el número de veces que se debe imprimir el texto:
def mensaje_n( n=1 ):
for i in range(n):
mensaje()Y se ejecuta la función mensaje_n indicando el número de veces que se desea imprimir, por defecto se imprimirá una vez.
Se imprime una vez:
mensaje_n()Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Se imprime tres veces:
mensaje_n(3)Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
Estamos aprendiendo Python
Estamos aprendiendo instrucciones básicas
poco a poco iremos avanzando
07. Las listas
Las listas son
En Python, una lista es una estructura de datos que permite almacenar una colección ordenada de elementos, como números, cadenas de texto u objetos.
Las listas se crean utilizando corchetes [ ] y separando los elementos por comas.
Los elementos de una lista pueden ser de cualquier tipo de datos, lo que significa que puedes mezclar diferentes tipos de datos en una lista. También es posible anidar listas dentro de otras listas para crear estructuras de datos más complejas.
Se pueden expandir dinámicamente añadiendo nuevos elementos.
Las listas en Python poseen son varios elementos entre corchetes cuadrados, separados por comas. Tal como se indica a continuación:
nombreLista = [elemento_1, elemento_2, elemento_3, ... , elemento_n]
En Python se pueden localizar a través de indices. Siempre el primer elemento de la lista se enumera con la posición 0, el siguiente con la posición 1, y así sucesivamente hasta la posición del n-1 para el último de los n elementos.
Los índices en Python se utilizan para acceder a elementos individuales de una secuencia, como una lista o una cadena de texto. Cada elemento de la secuencia está asociado a un índice numérico único que indica su posición en la secuencia.
En Python, los índices comienzan desde cero, lo que significa que el primer elemento en una secuencia tiene un índice de 0, el segundo elemento tiene un índice de 1, y así sucesivamente.
Por ejemplo, si tienes una lista llamada mi_lista que contiene los elementos ["manzana", "banana", "cereza", "dátil"], puedes acceder a elementos individuales utilizando sus índices. Para acceder al primer elemento (que es “manzana”), puedes escribir mi_lista[0], para acceder al segundo elemento (que es “banana”), puedes escribir mi_lista[1], y así sucesivamente.
También es posible utilizar índices negativos en Python, lo que significa que se cuenta desde el final de la secuencia hacia el principio. Por ejemplo, el último elemento de la lista mi_lista puede ser accedido con el índice -1, el penúltimo con el índice -2, y así sucesivamente.
Unos ejemplos de manejos de listas en Python se presentan de la siguiente manera:
milista = [ "Maria" , "Pepe" , "Marta" , "Antonio" ]
print(milista)['Maria', 'Pepe', 'Marta', 'Antonio']
Para acceder al tercer (3) nombre concreto de la lista se ejecuta en código el nombre de la lista seguido por el número 2 entre corchetes cuadrados:
milista[2]'Marta'
Para obtener datos de izquierda a derecha se utilizan los valores negativos. Por ejemplo, para acceder al último elemento se utiliza el termino -1.
milista[-1]'Antonio'
Para acceder del segundo termino al tercero;
milista[1:3]['Pepe', 'Marta']