FUNDAMENTOS DE PYTHON
TEMARIO
• Algoritmos y programas
• Características de Python
T • Primeras sentencias
Modulo 1 • Tipos de datos, variables y funciones
E
M • Estructuras de control de flujo
• Programación orientada a objetos
A Modulo 2
•
•
Clases
Módulos
R
I • Manejo de archivos externos
• Conexión con base de datos
O Modulo 3 • Interfaces gráficas
•
•
Algoritmos y programas
Características de Python
• Familiarización con el lenguaje de O
T • Primeras sentencias
programación
• Entender la sintaxis B
Modulo 1 • Tipos de datos, variables y funciones
E J
M • Estructuras de control de flujo
• Darle inteligencia a los programas E
• Programación orientada a objetos
A Modulo 2
•
•
Clases
Módulos
• Estructurar programas avanzados
• Automatización de rutinas en PC
T
R I
I • Manejo de archivos externos • Integración de programas con
gestores de BBDD V
• Conexión con base de datos
O Modulo 3 • Interfaces gráficas • Visualización, generación de
reportes, etc O
S
PROGRAMACION
proceso diseñar codificar dar mantenimiento Proteger Código Fuente
Programa
LENGUAJE DE
PROGRAMACIÓN
EJEMPLO
Instrucción (Código)
El programador requiere
que la computadora
imprima en pantalla la
utilidad de la empresa
minera con los siguientes
parámetros:
- Ingresos : $10 M
- Costos: $4.5 M
Resultado
ALGORITMOS
Se define como una lista finita de pasos ordenados que permite
encontrar la solución a un problema determinado.
Entrada
Paso 1
Paso 2
Paso 3
Salida
TIPOS (EJEMPLO)
Resolveremos el problema de calcular la utilidad de una empresa minera presentado en el capítulo
previo.
Lenguaje natural Pseudocódigo Diagrama de flujo
Proceso Utilidad INICIO
Primero: Encontramos
que por definición, la Definir Utilidad:
DEFINIR
UTILIDAD
utilidad se define como Utilidad = Ingresos – Costos U=I–C
la diferencia entre los
ingresos y los costos de Definir Ingresos, Costos: INGRESOS = 10
una empresa. Ingresos = 10
COSTOS = 4.5
Costos = 4.5
Segundo: Con los UTILIDAD = 5.5
Reemplazar valores:
datos que se tienen, se
Utilidad = 10 – 4.5
reemplaza la fórmula.
10M – 4.5M = 5.5M Escribir resultado:
Utilidad = 5.5
INSTALACIÓN
- Python
- Editor de texto (Sublime Text)
TIPOS DE DATOS
VARIABLES
Espacio en la memoria del ordenador donde se almacenará un valor que podrá
cambiar durante la ejecución del programa.
factor_esponjamiento = 1.16
asignación de variable
declaración de variable
VARIABLES (REGLAS)
Tonelaje tonelaje TONELAJE
Ley cobre
Ley_cobre
FUNCIONES
Estructuras esenciales de código.
UNIDAD RESOLVER
LÓGICA
constituye
PROBLEMA
FUNCIONES
Dividir y organizar el código en
partes más sencillas.
OBJETIVOS
Encapsular el código que se repite
a lo largo de un programa para ser
reutilizado.
FUNCIONES
Sintaxis
def nombre_función (parámetros):
instrucciones
return (opcional)
* Una función siempre deberá ser llamada en algún lugar del código para que se
ejecute.
EJEMPLO 1
EJEMPLO II
Escribir una función que calcule la utilidad de un proyecto en minero
CÁLCULO DEL BURDEN SEGÚN FÓRMULA KONYA
𝟑 𝒅𝒆
𝑩 = 𝟑. 𝟏𝟓 𝒙 𝑫𝒆 𝒙
𝒅𝒓
𝑫𝒐𝒏𝒅𝒆:
𝐵 = 𝑏𝑢𝑟𝑑𝑒𝑛 𝑝𝑖𝑒𝑠
𝐷𝑒 = 𝑑𝑖á𝑚𝑒𝑡𝑟𝑜 𝑑𝑒𝑙 𝑒𝑥𝑝𝑙𝑜𝑠𝑖𝑣𝑜 𝑝𝑢𝑙𝑔𝑎𝑑𝑎𝑠
𝑔
𝑑𝑒 = 𝑑𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒𝑙 𝑒𝑥𝑝𝑙𝑜𝑠𝑖𝑣𝑜 ( 3 )
𝑐𝑚
𝑔
𝑑𝑟 = 𝑑𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑙𝑎 𝑟𝑜𝑐𝑎 ( 3 )
𝑐𝑚
EJEMPLO III
Hallar el burden de la malla de perforación cuadrada según la fórmula de Konya teniendo
en consideración los siguientes datos:
Densidad roca: 2.3 g/cm3 (caliza)
Densidad explosivo: 1.05 g/cm3 (anfo aluminizado)
Diámetro del explosivo: 10.25 plg
ESTRUCTURAS DE DATOS - LISTAS
Perteneciente a la clase LIST
Una de las estructuras más utilizadas por su naturaleza, dinamismo, fácil manejo y
potencia.
Arreglo Arrays tuplas
diccionarios
LAS LISTAS
Corchetes de apertura y cierre
de la lista
LISTA_1 = [ 14, 25, 36, 12, 65]
Elemento de Separador de
Nombre de
la lista elementos
la lista
• Puede almacenar valores de diferentes tipos de datos.
• El número de elementos que tiene puede variar durante la
CARACTERÍSTICAS ejecución de un programa.
• La posición de cada elemento está representado por un número
entero llamado índice, el índice empieza desde 0.
LAS LISTAS
LISTA_2 = [ 1, 2.5, “Marian”, False]
LISTA_2 [0] → 1
LISTA_2 [1] → 2.5
LISTA_2 [2] → “Marian”
LISTA_2 [3] → False
LISTAS (EJEMPLO)
Stockpile Chancadora
A-2580 Primaria
Representados en las siguientes listas: Hallar:
Segmentos = [‘A’, ’B’, ’C’, ‘D’] - Imprimir en consola la velocidad del
Distancias = [100, 30, 60, 80] en km segmento C
Velocidades = [30, 85, 6, 110] en km/h - Imprimir en consola el tiempo empleado
para completar el segmento B
- Hallar la velocidad media total
ESTRUCTURAS DE CONTROL DE FLUJO
Es un bloque de código que permite agrupar
instrucciones de manera controlada.
Estas estructuras se caracterizan por modificar le flujo
normal de un programa.
- Estructuras de control condicionales
- Estructuras de control iterativas (bucles)
ESTRUCTURAS DE CONTROL DE FLUJO
SIN ESTRUCTURAS CONDICIONAL BUCLE
código código código
código código código
código código for: n veces
código if: código
código código código
código else: código
código código
código código
código código
CONDICIONALES
Permite que un programa ejecute unas instrucciones cuando se cumpla una
condición.
CONDICIONALES
SINTAXIS
if condición:
código
EJEMPLO 1
Supongamos que en una operación minera que produce oro, la ley de
corte es de 0.65 g/ton. Elaboraremos un programa en el cual el usuario
ingresará el valor de la ley oro y si la ley es mayor o igual que el valor
de la ley de corte, el programa imprimirá “Es mineral”.
CONDICIONALES BLOQUE ELSE (“SINO”)
if condición:
código 1
else:
código 2
CONDICIONALES 2
2 bloques if vs if---else
1. No se obliga a Python a evaluar siempre las
dos condiciones. Eficiencia en tiempo de
procesamiento.
2. Ahorro de código
3. Evita errores (que el valor no caiga en ninguna
condición y termine no ejecutándose)
EJEMPLO 2 (SENTENCIA CONDICIONALES ANIDADAS)
Escribiremos un programa para asignar si el material se trata
de mineral o desmonte dependiendo de dos propiedades
(tipo de mineral y ley de cobre)
Óxido Sulfuro
>= 2.5% MINERAL MINERAL
>= 0.85% MINERAL DESMONTE
< 0.85% DESMONTE DESMONTE
IF – ELIF – ELSE
SINTAXIS if condición1:
código 1
Se utiliza cuando se
tiene más de dos elif condición 2:
opciones. código 2
else:
código 3
EJEMPLO 3 (BLOQUES IF – ELIF – ELSE)
Clasifique el material según la tabla adjunta:
Óxido Sulfuro Argílico
>= 2.5% MINERAL_1 MINERAL_2 DESMONTE
>= 0.85% MINERAL_1 DESMONTE DESMONTE
< 0.85% DESMONTE DESMONTE DESMONTE
ESTRUCTURAS DE CONTROL ITERATIVAS (BUCLES)
Son otra herramienta para alterar el flujo normal de un
programa. Nos permite repetir una porción de código tantas
veces como queramos.
while for
BUCLE FOR
Se utiliza para recorrer los elementos
de un objeto iterable (lista, tupla,
conjunto, diccionario) y ejecutar un [elemento 1,
bloque de código. elemento 2,
elemento 3,
En cada paso de la iteración se tiene .
en cuenta a un único elemento del .
.
objeto iterable, sobre el cuál se
pueden aplicar una serie de
operaciones.
BUCLE FOR - SINTAXIS
for <elem> in <iterable>:
<Tu código>
EJEMPLO
Tonelaje Ley Au Según el cuadro de tonelajes y ley de oro adjunta, y con los siguientes datos:
- Ley de corte: 0.45 g/t
12,675 0.64
- Recuperación metalúrgica: 70%
10,489 0.57 - Precio del oro: 1740 $/oz
20,550 0.32 - Costo de ventas: 120 $/oz
- Costo de minado: 4.5 $/t
14,520 0.75
- Costo de procesamiento: 8 $/t
11,254 0.41
22,540 0.12 Calcular:
- Tonelaje total de mineral y ley media
32,542 0.35
- Tonelaje total de desmonte
12,546 0.27 - Ingreso total
9,844 0.84 - Costo total
8,652 0.94 - Utilidad
POO - PARADIGMAS DE PROGRAMACIÓN
Paradigma: estilo o forma de programar
POO
SECUENCIAL
atributos
comportamiento
atributos
comportamiento
atributos
comportamiento
POO - OBJETO
- Marca
Abstracción - Capacidad
Atributos - Peso cargado
- Peso vacío
- Costo horario
- Acelerar
- Frenar
Métodos - Estacionar
- Descargar
POO - CLASE
Todas la propiedades y
métodos comunes a los Clase
objetos se encapsulan en
clases.
La clase es una plantilla o
prototipo para crear objetos. Objeto 1
Objeto 4
Objeto 2 Objeto 3
Instanciación de una clase
POO – INSTANCIA DE CLASE
También llamado EJEMPLAR DE CLASE
Clase
CAMIÓN
Instancia o ejemplarización de clase
POO – NOMENCLATURA DEL PUNTO
miAuto . color = “azul”
miAuto . peso = 1500 PROPIEDADES
miAuto . alto = 150
miAuto . arranca( )
miAuto . frena( ) MÉTODOS
miAuto . acelera( )
POO – ENCAPSULACIÓN
- Es uno de los pilares de la programación orientada a
objetos
- Permite regular el acceso a los métodos y atributos de una
clase
- En cierta manera, enmascara la complejidad de una clase
EN PYTHON NO EXISTE. ES UN ESTILO. ES UNA NORMA. NO ES FUNCIONAL
DICCIONARIOS
Estructuras de datos
Clave : Valor
key value En esta estructura de datos se
pueden almacenar valores
enteros, flotantes, cadenas,
clases, listas, tuplas e inclusive
Sintaxis diccionarios.
nombre_dic = { }
DICCIONARIOS
Estructura de datos que nos permiten
almacenar diferentes tipos de datos
CLAVE : VALOR
Los elementos almacenados NO
ESTAN ORDENADOS
MODULOS
Un archivo con extensión .py .pyc que posee su propio espacio de nombres y
que puede contener variables, funciones, clases e incluso otros módulos.
Sirven para organizar y reutilizar el código (POO)
MODULOS
MODULOS
MODULO OS
El módulo OS en Python proporciona y expone los detalles
y la funcionalidad del sistema.
Muy útil para automatizaciones elaborando rutinas con los
archivos y carpetas del sistema operativo.
ARCHIVOS EXTERNOS
Persistencia de Datos
Posibilidad de guardar los datos que estamos trabajando en el programa, se
puedan guardar.
Hasta ahora, cuando se cierra el programa se borra la información.
ARCHIVOS EXTERNOS - OPCIONES
- Guardar la información en archivo externo
- Guardar la información en BBDD
ARCHIVOS EXTERNOS - PASOS
LIBRERÍAS
1. Crear archivo
2. Abrir archivo IO
3. Manipular archivo CSV
4. Cerrar archivo
MODELO DE BLOQUES
Un modelo de bloques es una
representación simplificada de un
yacimiento mineral y sus alrededores,
que se puede considerar como una
pila de “ladrillos” generados por
computadora que representan
pequeños volúmenes de roca en un
depósito (compuesto por mineral y
desechos). Cada “ladrillo” o celda
contiene estimaciones de datos, como
la ley del elemento, la densidad y otros
valores de entidades geológicas o
relacionados a factores de ingeniería.
EJERCICIOS
EJERCICIO 1: Encontrar la ley media de Au que tiene el modelo de
bloques compartido
EJERCICIO 2: con los siguientes parámetros, encontrar el beneficio
de minar todo el mineral del modelo. Considerar que no se debe
minar el desmonte
CMinado: 2.50 $/t
CProcesam: 4.30 $/t
Precio: 1600 $/oz
CVenta: 250 $/oz
RM: 72%
BASE DE DATOS
CONTEXTO
Almacenados
Conjunto de datos
sistemáticamente
BASE DE DATOS - ELEMENTOS
TABLA
GESTOR DE BASE DE DATOS
Es un conjunto de programas no visibles que administran y gestionan la
información que contiene una base de datos. A través de este se maneja
todo acceso a la base de datos con el objetivo de servir de interfaz entre
ésta, el usuario y las aplicaciones.
SQL – STRUCTURED QUERY LANGUAGE
Es el lenguaje de consulta más utilizado para
manejar-administrar una base de datos
Consulta: es un objeto que proporciona una visión
personal de los datos almacenados en las tablas ya
creadas
MODELO DE BASE DE DATOS
Es una representación, usualmente gráfica, de estructuras de datos.
- Modelo de base de datos
jerárquicos
- Modelo relacional
- Modelo de red
- Modelo de base de datos
orientado a objetos
- Modelo entidad relación
MODELO ENTIDAD - RELACIÓN
Es el modelo de base de datos más sencillo.
Entidad
Representan cosas u objetos (ya sean reales o abstractos), que se diferencian
claramente entre si.
Atributos
Los atributos definen o identifican las características de la entidad (es el contenido de
la entidad).
MODELO ENTIDAD - RELACIÓN
ENTIDADES
Polígonos de
Camiones Descargas
minado
ATRIBUTOS
- ID
- N° Camión - Código
- Fecha
- Marca - Tipo
- Destino
- Modelo - Tonelaje
- N° Camión
- Capacidad - Ley
- Código Pol
POLIGONO DE MINADO
MODELO ENTIDAD - RELACIÓN
1 varios
Camiones Descargas
Relación 1 a varios
1 1 Código de
Trabajador
Relación 1 a 1 trabajador
varios varios
Camiones Poligonos
Relación varios a varios
TABLAS
FILA O REGISTRO
TABLA
COLUMNA O CAMPO
TABLAS – CLAVES
Claves: elementos que impiden duplicidad de registros. Una de las grandes
desventajas que presentan otros modelos de organización y gestión de bases de
datos.
Claves primarias: son los atributos (columnas) según el tipo de relación que se
ha definido en la tabla.
Claves foráneas o externas: son claves presentes en tablas que no han
concebido la misma.
INSTALACIÓN SQLITE 3
Link: [Link]
Seleccionar esta opción
INSTALACIÓN SQLITE 3
1. Crear la carpeta DBSQLite en el disco C
2. Mover el archivo descargado a la carpeta creada
3. Descomprimir el archivo
4. Click derecho sobre este equipo
5. Seleccionar Propiedades
INSTALACIÓN SQLITE 3
6. Seleccionar Configuración avanzada del sistema
7. Seleccionar Variables de entorno
INSTALACIÓN SQLITE 3
9. Doble click sobre la Variable Path
10. Seleccionar Nuevo
INSTALACIÓN SQLITE 3
11. Escribir la ruta de la carpeta descargada. En mi caso es:
C:\DBSQLite\sqlite-tools-win32-x86-3400000\sqlite-tools-win32-
x86-3400000
12. Presionar Aceptar en todas las ventanas
INSTALACIÓN DB BROWSER
Link: [Link]
INTERFACES GRÁFICAS
INTERMEDIARIO
Programador - Usuario
Librería:Tkinter
INTERFACES GRÁFICAS - ESTRUCTURA
Raíz
Frame
Widgets
GRACIAS
ALGUIEN@[Link]