Guía de Instalación y Uso de Python
Guía de Instalación y Uso de Python
Instalación ...................................................................................................................................... 3
Lenguaje Python..................................................................................................................... 3
Primer programa.................................................................................................................... 5
Instalando el IDE PyCharm ......................................................................................................... 6
Fundamentos .............................................................................................................................. 11
11
Variables
Comandos de Entrada y Salida................................................................................................. 12
Operadores.......................................................... 13
Lista de ejercicios A ................................................................................................................ 15
Estructuras condicionales ........................................................................................................... 18
Lista de ejercicios B
Estructuras de repetición........................................................................................................... 22
Lista de Ejercicios C ................................................................................................................ 23
Arreglos.......................................................................................................................................... 26
Funciones principales del array ..................................................................................................... 27
Algunos ejemplos prácticos........................................................................................................ 30
Arrays multidimensionales........................................................................................................ 31
Lista de ejercicios D
Funciones ....................................................................................................................................... 36
Características......................................................................................................................... 38
Ejemplo 01.............................................................................................................................. 39
Ejemplo 02.............................................................................................................................. 39
Ejemplo 03.............................................................................................................................. 40
Ejemplo 04.............................................................................................................................. 41
Ejemplo 05.............................................................................................................................. 41
Lista de ejercicios E................................................................................................................. 42
Estructura de Datos...................................................................................................................... 44
Diccionario de datos................................................................................................................. 45
Ejemplo: Relacionando meta-datos con datos.................................................................... 49
Lista de ejercicios F................................................................................................................. 50
Python y SQLite........................................................................................................................... 52
Manipulando la base de datos.............................................................................................. 53
1
Comando INSERT..................................................................................................................... 53
Comando UPDATE................................................................................................................... 57
Comando DELETE .................................................................................................................... 58
Comando SELECT..................................................................................................................... 59
Comando WHERE.................................................................................................................... 60
Trabajando con más de una tabla.................................................................................... 61
Lista de ejercicio G.................................................................................................................. 63
Tratamiento de Excepción............................................................................................................... 64
Jerarquía de excepciones........................................................................................................... 65
Acción de limpieza ...................................................................................................................... 67
Comando raise ........................................................................................................................ 67
Lista de ejercicio H
Archivos ...................................................................................................................................... 70
Python y Arduino ........................................................................................................................ 71
Referencia Bibliográfica .............................................................................................................. 72
2
Instalación
Lenguaje Python
Instalación personalizada.
3
Cada opción marcada tiene el siguiente significado:
Documentación: instala la documentación del lenguaje;
pip: instala o pip que es usado para descargar bibliotecas desarrolladas en Python;
tcl/tk e IDLE: instala la biblioteca Python para la creación de interfaces gráficas;
Suite de pruebas de Python: instala la biblioteca de Python responsable del tratamiento de
prueba de software;
py launcher: instala el lanzador para aplicaciones con la extensión py.
4
Primer programa
python –V
python
print("Hola mundo")
El comando presentado se trata de una función. Por definición, toda función debe poseer
paréntesis. En el caso presentado, la función print recibió un contenido del tipo texto. A
seguir entre con los siguientes comandos:
La función print permite la impresión de diversos valores. Repara que cada valor
debe ser separado por coma. Se permite presentar valores de otros tipos que no
sea texto. El último término: sep= ' ', define cuál es el carácter que se utilizará como
separador de los valores presentados.
5
Ahora escribe los siguientes comandos:
IF Goiano
tipo(institución)
ano = 2019
tipo(año)
print(institucion, "Trinidad", año, sep=" ")
Desarrollar programas utilizando el símbolo del sistema puede ser una tarea
extremadamente difícil dependendo da complexidade da aplicação. Devido a esse
problema los desarrolladores utilizan aplicaciones propias para el desarrollo de
software. Estas aplicaciones son conocidas por la sigla IDE, Entorno de Desarrollo Integrado
Ambiente de Desenvolvimento Integrado.
En este curso trabajaremos con la IDE PyCharm, desarrollada por la empresa Jet
Cerebros. Para realizar la descarga de esta herramienta acceda a la dirección:
[Link]/pycharm/descargar
6
Ejecuta el archivo, en la pantalla que define la Carpeta de Destino instala la aplicación
en la siguiente dirección:
lanzador de 64 bits;
Agrega el directorio del lanzador a la PATH;
.py
y haga clic en el botón Siguiente.
7
Después de haber completado la instalación, abre el programa. Elige la opción Crear
Nuevo Proyecto.
Se dispondrá de una pantalla para definir la ruta del proyecto y cuál máquina virtual
a ser utilizada por el proyecto.
8
EmLocationcrie el siguiente camino:
c:\desarrollo\espacio de trabajo\python\curso\primero
En la opción Intérprete de Proyecto deja marcada la máquina virtual recomendada. Haz clic en
botónCrear.
Con el proyecto creado, haz clic con el botón derecho en el nombre del proyecto y elige la opción
9
Digite el siguiente código:
Para ejecutar, haz clic en el menú Ejecutar Presiona las teclas Alt + Shift + F10.
el resultado se mostrará en la esquina inferior de la pantalla de la aplicación.
10
Fundamentos
Desarrollado por Guido van Rossum, el lenguaje Python surgió en 1991. Este
la lengua tiene las siguientes características:
Interpretada: no utiliza los recursos directamente de la máquina;
Alto nivel: basado en otros lenguajes;
Script: soporta la creación de descripts;
Comentarios
O de múltiples líneas:
´´´
Fui a la feria y escribí
los datos de los productos
que adquirí
´´´
El comentario de múltiples líneas debe estar envuelto por tres comillas simples al inicio
y cierre.
Variables
11
Siendo así, una variable puede ser un número o un texto. En caso de que sea un número,
Las variables que tienen valores de tipo texto deben estar envolvidas por comillas simples
o duplas. Ejemplo:
Para nombrar una variable, se permite utilizar cualquier carácter que no sea
símbolo clave del lenguaje. Una variable puede tener cualquier nombre, con excepción
de las palabras reservadas del lenguaje.
12
El desarrollador podrá imprimir una salida a través del comando print. Este
el comando puede ser utilizado de la siguiente forma:
print("Hola", nombre)
En python se debe usar el comando input para capturar la entrada del usuario.
Este comando siempre devolverá un texto. Ejemplo:
Digite su nombre
Operadores
Operador de atribuição
Este operador tiene como objetivo definir el contenido y el tipo de una variable. Él
es representado por el símbolo igual (=).
Operadores Aritméticos
13
Descripción Símbolo
Adición +
Sustracción -
División /
Multiplicación *
Resto %
Operadores Relacionales
Descripción Símbolo
Maior >
Menor <
Mayor o igual >=
Menor o igual <=
Igualdad ==
Diferente !=
Operadores Lógicos
Descripción Símbolo
Es lógico y
OU lógico o
NO lógico no
y
P ¿Q? Py Q
Verdadero Verdadero Verdadero
14
Verdadero Falso Falso
Falso Verdadero Falso
Falso Falso Falso
o
P Q Py Q
Verdadero Verdadero Verdadero
Verdadero Falso Verdadero
Falso Verdadero Verdadero
Falso Falso Falso
no
P no P
Verdadero Falso
Falso Verdadero
Lista de ejercicios A
Cálculo de la hipotenusa:
h² = ca² + co²
co ca co
seno coseno tangente
h h ca
, donde:
hipotenusa
ca = cateto adyacente;
co = cateto opuesto.
15
2) Desarrolla un programa en Python que genere un número aleatorio de cuatro dígitos (M
– Milhar, C – Centena, D – Dezena, U - Unidade) variando entre 1000 e 9999. El programa deberá
calcular e imprimir la siguiente expresión matemática:
U randi(M*10)
x
C 2 D
4) O IF Goiano – Campus Trindade desea verificar cuál fue la puntuación obtenida por un
determinado candidato inscrito no processo eleitoral para coordenador de curso. A equipe de
desarrolladores decidió ayudar en esta tarea a través de la creación de un programa de Python. En este
el algoritmo es necesario que el usuario ingrese: el número de votos válidos del segmento
docente al candidato; el total de votos válidos de los docentes; el número de votos válidos de
segmento discente al candidato; y el número de votos válidos de los discentes. El programa deberá
realizar el siguiente cálculo:
2VDo1VDi
Vt , siendo:
3Do3Di
16
5) Desarrolle un programa en Python en el cual el usuario digitara un ángulo. El programa
deberá calcular e imprimir el seno, el coseno y la tangente de este ángulo.
6) Desarrolle un programa en Python que genere un número aleatorio variando entre 0 y 100.
Imprima el valor generado.
9) Desarrolle un programa en Python en el que el usuario ingresará dos números (n1 y n2).
el programa deberá calcular e imprimir la siguiente fórmula:
resultados n1 n2 3
Consejos:
Calcular la potencia de un número. Ejemplo:
2 ** 5 = 32
4 ** (1/2) = 2
importar aleatorio
[Link](1, 9)
Generar PI
importar matemáticas
[Link]
importar matemáticas
17
x = [Link](85) #convierte el ángulo de grados a radianos
[Link](x) #seno
[Link](x) #coseno
z = [Link](x) #tangente
y = [Link](z) #converte el ángulo de radianes a grados.
Estructuras condicionales
Una estructura condicional tiene como objetivo verificar una sentencia relacional y a partir de esta
la verificación ocurre en la toma de decisiones. Esta acción ocurre cuando la sentencia relacional
por verdadeira (True). También es posible realizar acciones el resultado de la sentencia
relacional sea falso (False).
La estructura IF
si condición:
comandos
donde:
si corresponde al nombre de la estructura de condición;
condición sentencia relacional a ser probada;
comandos todos los comandos a ser ejecutados por la
estructura.
La estructura ELIF
18
comandoB
elif condicionC:
comandoC
dónde
si corresponde al nombre de la estructura de condición;
elif utilizado para testar outra condição além da
principal
condiciónA sentencias relacionadas a
serán probadas;
comandoA todos los comandos a ser
ejecutados en los diferentes bloques.
La estructura ELSE
si condicao:
comandoA
else:
comandoB
onde:
si corresponde al nombre de la estructura de condición;
otro utilizado para ejecutar un comando cuando la condición
contida no if for falsa;
condición sentencia relacional a ser probada;
comandoA todos los comandos a ser ejecutados
nos diferentes bloques.
Dependiendo del problema propuesto, es posible integrar todas las estructuras condicionales.
en una sola estructura, siendo que el ELSE siempre será la última estructura asignada.
19
Lista de ejercicios B
1) Desarrolle un programa en Python en el que el usuario ingresará una letra (A hasta E) referente
un concepto de nota. El programa deberá convertir la letra digitada en una nota de acuerdo
con la tabla a continuación:
CONCEPTO NOTA
A 95
B 85
C 75
D 65
E 30
Cualquier letra digitada diferente de lo que se propuso en la tabla anterior, se imprimirá lo siguiente
Concepto inválido. Imprima la nota convertida.
1 se x 1
2se1 x 2
f(x)
x²se2 x 3
x³se x 3
VALOR SALIDA
1 DOMINGO
2 LUNES
3 MARTES
4 MIÉRCOLES
5 JUEVES
6 VIERNES
7 SÁBADO
20
# GRAVEDAD RELATIVA PLANETA
1 0,37 MERCURIO
2 0,88 VENUS
3 0,38 MARTE
4 2,64 JÚPITER
5 1,15 SATURNO
6 1,17 URANO
p m g, siendo que:
peso
masa
g: gravedad.
cargo de un empleado y calcula el nuevo salario. Si el cargo del empleado no está en la tabla,
salario_antigo
salarial.
21
Condición Situación
Frequencia hasta 75% REPROBADO
Frecuencia entre 75% y 100% y Nota hasta 3.0 REPROBADO
Frecuencia entre el 75% y el 100% y Nota de 3.0 hasta 7.0 EXAMEN
Frecuencia entre 75% y 100% y Nota entre 7.0 y 10.0 APROBADO
Estructuras de repetición
La estructura WHILE
O WHILE ejecuta un bloque de comandos N veces hasta que su condición sea satisfecha.
Esta estructura tiene la siguiente sintaxis:
mientras condicao:
comandos
donde
mientras palabra clave que define la estructura;
condición sentencia relacional que define la cantidad de
veces que los comandos serán repetidos;
comandos conjunto de instrucciones a ser ejecutadas.
Ejemplo:
lifeRock = 5000;
0
batida = 200;
mientras lifeRock >= 0:
hierro += 5
lifeRock -= batida
print('Pegó {0} hierro'.format(hierro))
La estructura FOR
veintidós
para variable en lista:
comandos
donde:
para palabra clave de la estructura;
variable variable que recibirá cada elemento de la lista;
lista lista de elementos;
comandos conjunto de instrucciones.
Ejemplo:
Lista de Ejercicios C
01) Desarrolle un programa en Python en el que el usuario ingresará dos valores enteros (AeB).
El programa deberá generar 100 números aleatorios. Cada valor generado deberá estar dentro de
intervalo digitado por el usuario (AeB). Imprima el mayor valor generado por el programa.
02) Desarrolle un programa en Python en el que el usuario ingresará el nombre y las notas de 35
alumnos. Cada alumno tiene cinco calificaciones. El programa debe imprimir la media aritmética de cada uno.
03) Desarrolla un programa en Python en el que el usuario ingresará los siguientes datos de un
el nombre de un alimento; su categoría (P - Proteína; C - Carbohidrato; G - Grasa); y
su valor calórico. El usuario digitara cuántos alimentos quiera. La digitación terminará cuando el
valor calórico digitado igual a cero. Imprima el valor calórico total de cada categoría.
04) Desarrolla un programa en Python en el que el usuario ingresará los siguientes datos de un
el nombre de un alimento; su categoría (P - Proteína; C - Carbohidrato; G - Grasa); y
su valor calórico. El usuario digitara cuántos alimentos desee. La digitación terminará cuando el
valor calórico digitado for igual a cero. Imprima:
23
¿Cuál categoría tiene mayor valor calórico?
¿Cuál es el nombre del alimento de mayor valor calórico?
05) Desarrolle un programa en Python que calcule la velocidad media de 100 vehículos. El
el programa deberá calcular e imprimir el porcentaje de vehículos cuya velocidad media
superó los 80 km/h. A continuación se muestra la fórmula de la velocidad media:
d
Vm , siendo que:
t
Vm velocidad media;
d distancia
t tempo.
06) Desarrolla un programa en Python que simule el lanzamiento de un dado de seis caras 2500
veces. El programa debe calcular e imprimir el porcentaje de números: uno; dos; tres;
cuatros; cincos y seis que fueron sacados durante las 2500 tiradas.
kWh Bandera
Hasta 172 kWh Verde
Entre 173 y 280 kWh Amarilla
Más que 281 kWh Roja
08) Un náufrago se encuentra atrapado en una isla. Él tiene una cantidad X de comida y Y de
bebida. Se sabe que por día consume el 5% de la comida total y el 3% de la bebida total. Desarrolla
un programa en Python en el que el usuario ingresará el número de comida (X) y bebida (Y) que el
náufrago posee inicialmente. El programa deberá presentar en cuántos días se demoró para
consumir toda comida y bebida.
24
09) Un candado tiene 10 cerraduras. Se desea crear un
programa que verifique cuántos intentos gastará una persona
hasta que abra el candado. Desarrolla un programa en Python
que genere aleatoriamente la cerradura correcta. El usuario deberá
elige la cerradura que deseas abrir hasta que tengas éxito.
Imprima cuántas veces el usuario intentó abrir el candado.
25
Arreglos
Umarraycorresponde a uma estrutura de dados do tipo lista que tem como objetivo
almacenar una colección de datos. El arreglo puede almacenar cualquier tipo de valor:
caracteres; enteros; reales. También puede almacenar incluso otro array.
Para definir una lista, declara una variable y haz que reciba corchetes.
Ejemplo:
x = []
En este momento, la variable x almacena un array sin elementos. En caso de ser necesario
inicializar la lista con elementos, añada los valores separados por comas. Ejemplo:
x = [5, 6, 7, 2, 4]
5 6 7 2 4
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
Cada elemento tiene un índice dentro de la lista, siendo que el primer índice es
el cero (0).
Para acceder a un elemento de la lista, utiliza el nombre de la variable y entre corchetes el índice
deseado.
x[3]
Se obtendrá el valor 2
Para sustituir un valor, haz que la variable en el índice deseado reciba el nuevo
valor.
x[2] = 35
26
5 6 35 2 4
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
Caso sea necesario descubrir cuántos elementos existen en la lista, utiliza la función
len().
len(x)
Además de los recursos presentados, la lista (array) contiene un conjunto de funciones que
permite al desarrollador manipular sus elementos. En este tema se presentarán las
principales funciones de un array.
[Link](69)
5 6 35 2 4 69
↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5
[Link](2, 24)
27
5 6 24 35 2 4 69
↑ ↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5 6
[Link](4)
5 6 24 35 2 69
↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5
[Link](1)
El valor 6 será devuelto. El mismo será eliminado de la lista.
5 24 35 2 69
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link](35)
# El valor retornado será 2
[Link](69)
El valor retornado será 1
28
[Link]() Invierte los valores de la lista. Ejemplo:
[Link]()
69 2 35 24 5
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link]()
2 5 24 35 69
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link](reverse=True)
69 35 24 5 2
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link]()
Caso desee conocer y profundizar en las funciones disponibles, acceda al sitio web:
29
Algunos ejemplos prácticos
Ejemplo 01) Haz un programa en Python que cargue una lista de 15 elementos
con valores aleatorios variando entre 100 y 1000. El programa deberá calcular y
mostrar
importar aleatorio
x = []
i=0
mientras i <= 14:
[Link]([Link](100, 1000))
i += 1
[Link]()
imprimir(x)
imprimir(x[0])
imprimir(x[14])
corredor = []
i=0
mientras i <= 2:
inscripción
tempo = int(input('Digite el tiempo en la carrera: '))
dados = [inscricao, tempo]
[Link](dados)
i += 1
[Link](key = lambda corredor:corredor[1])
count = 1
para i en corredor:
30
print(count, 'º lugar: ', i[0], ' -> Tiempo: ', i[1], sep='')
contar += 1
Arrays multidimensionales
Los arreglos multidimensionales, también conocidos como matrices, corresponden a una lista que
recibe una colección de datos. Esta colección de datos está representada por otroarray.
Ejemplo:
Línea
0 1 4
1 3 6
2 2 4
↑ ↑
0 1
Columna
Para acceder a un dato de esta estructura utiliza dos corchetes añadiendo la dirección de
línea y columna.
31
x[1][0]
'''
El valor retornado será 3 que está presente en la línea 1 y columna 0
'''
activo recibirá un booleano que corresponde si la cuenta del usuario está activa
se encuentra activa.
Para el caso citado, se puede crear un array multidimensional de la siguiente forma:
tabela = [
denecley@[Link]
pepy@[Link]
[Link]@[Link]
primopato@[Link]
[Link]@[Link]
]
32
Línea
0 69 denecley@[Link] ****** Verdadero
1 124 pepy@[Link] pepylegal Verdadero
2 548 [Link]@[Link] 123321 Falso
3 96 primopato@[Link] primim2018 Verdadero
4 56 [Link]@[Link] alumnos2019 Falso
↑ ↑ ↑ ↑
0 1 2 3
Columna
tú
El comando list convierte una serie de datos en una lista, array. El comando filter retira
todos los datos de una lista a partir de un criterio de filtro. Para utilizar el filtro usa la
sintaxe
donde:
lambda palabra clave utilizada para crear una variable de
filtro
valor nombre de la variable de filtro. Esta variable recibirá
cada valor de la lista;
condición criterio de selección.
33
Ahora, ¿cómo podemos capturar todas las cuentas de dogmail?
Lista de ejercicios D
1) Crea un programa en Python que lea una lista de 40 posiciones. Contar y escribir cuántos
valores pares él posee.
2) Cree un programa en Python que lea dos listas de 20 posiciones y calcule otra lista
contendo, en las posiciones pares los valores del primero y en las posiciones impares los valores del
segundo.
3) Haz un programa en Python que determine cuántos números mayores que 100 hay en una
lista de enteros con 20 elementos. Rellena la lista con números aleatorios que varían entre 1 a
200.
4) Crea un programa en Python que lea la puntuación de 10 pruebas de un concurso y los nombres
dos respectivos participantes. Grabe los datos en una lista. Presente un ranking de los
colocados que obtuvieron más de 70 puntos.
5) Crea un programa en Python que lea quince números del usuario y los almacene en una lista.
raíz cuadrada de cada número. En caso de que el valor ingresado sea menor que cero, el número -1 debe ser
atribuído ao elemento da lista. Após isso, o programa deve imprimir todos os valores
almacenados.
9) Haz un programa en Python que, dadas dos listas A y B de 20 elementos, realice las
respectivas operaciones indicadas por una otra lista C de 20 elementos, también proporcionada por
usuario, conteniendo las cuatro operaciones aritméticas en cualquier combinación. Almacene en
34
una lista resultado el valor de la operación realizada. Por ejemplo, suponga que A[1] = 10, B[1] = 3
si C[1] = '*', entonces D[1] = 30.
10) Haz un programa en Python que lea una lista de 3 elementos y una lista
multidimensional de 3 x 3 elementos. Em seguida o programa deve fazer a multiplicação da lista
simples por las columnas de la lista multidimensional. Muestra la nueva lista.
11) Cree un programa en Python en el que el usuario introducirá una matriz con dimensiones M × N.
Para la matriz introducida, imprima en la pantalla los números pares contenidos en la matriz, considerando
sepáralos por línea. Ve el ejemplo para una matriz 4×4:
Entrada:
1 2 3 4
5 6 7 8
10 11 23 21
1 2 3 1
Salida:
2 4 6 8 10 2
12) Crea un programa en Python que lea una matriz cuadrada de 10x10, de números enteros.
Verificar cuántos números de la diagonal principal son impares, escribir también, la suma y la
media de estos elementos.
13) Implemente un programa, utilizando el lenguaje Python, que lea 30 nombres y apellidos
de personas. A cada nombre y apellido leído, verifica si las palabras tienen el mismo tamaño.
14) Hacer un programa en Python que lea al final de la mañana el cierre de la caja de una
tienda, es decir, su rendimiento al final de la mañana. Lo mismo se deberá hacer al final de la tarde.
Este levantamiento debe hacerse todos los días de la semana (de lunes a viernes). Al
final de la semana, después de haber hecho todas las lecturas, descubrir y escribir el día y el turno que tuvo mayor
35
Funciones
i = 0
mientras i < 3:
print('Elige tres números')
n1 = int(input('Número 1: '))
j = 1
1
mientras j <= n1:
grasa *= j
j += 1
print('Factorial: {0}'.format(fat))
n2 = int(input('Número 2: '))
j = 1
fat = 1
mientras j <= n2:
grasa *= j
j += 1
imprimir('Factorial: {0}'.formato(fat))
n3 = int(input('Número 3: '))
j = 1
1
mientras j <= n3:
grasa *= j
j += 1
print('Fatorial: {0}'.format(fat))
i += 1
En este ejemplo, el desarrollador pide al usuario que ingrese tres números tres veces.
Para cada número se calcula su factorial (ejemplo: 4! = 4 x 3 x 2 x 1) e impreso en
tela. Repare que este código possui uma repetição das seguintes instruções:
36
j = 1
1
mientras j <= n1:
grasa *= j
j += 1
print('Factorial: {0}'.format(fat))
Para evitar situaciones como estas, los lenguajes de programación ofrecen un recurso
denominada función.
Una función corresponde a un bloque de código que podrá ser invocado cuantas veces
son necesarias. Define un problema. El uso de funciones tiene como objetivo:
Minimizar la cantidad de código escrito;
Facilitar la comprensión del código fuente;
Distribuir la resolución del problema en pequeños módulos.
def fatorial(n):
j = 1
1
mientras j <= n:
grasa *= j
j += 1
print('Fatorial: {0}'.format(fat))
i = 0
mientras i < 3:
print('Elija tres números')
n1 = int(input('Número 1: '))
fatorial(n1)
n2 = int(input('Número 2: '))
fatorial(n2)
37
n3 = int(input('Número 3: '))
fatorial(n3)
i += 1
En el primer escenario, el código escrito tenía 25 líneas; con la aplicación de la función hubo
la reducción a 17 líneas, habiendo un ahorro del 32%. Observe también que el
trecho:
j = 1
1
mientras j <= n1:
grasa *= j
j += 1
print('Factorial: {0}'.format(fat))
fue escrito solo una vez, dentro de la función factorial. En el código principal la función fue
llamada por su nombre y el valor de entrada entre paréntesis.
fatorial(n1)
fatorial(n2)
fatorial(n3)
Características
def nomeFuncao(parametros):
comandos
devolver valor
donde:
38
def comando utilizado para definir una función;
nombreFuncion el nombre de la función. Evita caracteres especiales y
espacio
parámetros define una entrada de valores externos. Se a
si no hay función, solo abre y cierra paréntesis. En caso de que haya
más de uno, será necesario separarlos por coma;
comandos conjunto de instrucciones que buscan resolver el
problema;
regresar comando utilizado para retornar un valor. El return
permite retornar un único valor;
valor valor a ser retornado.
Es importante resaltar que un código podrá tener tantas funciones como sean necesarias.
necesarias.
Ejemplo 01
*
**
***
****
*****
Resolución:
def impresion(líneas):
para i en rango(1, lineas + 1):
print('*' * i)
Ejemplo 02
39
Desarrolle una función en Python que reciba una lista que contenga el nombre y
apellido. Esta función deberá retornar otra lista conteniendo el nombre completo de las
personas que empiezan con 'A'.
resolucion
def filtro(lista):
f = list(filter(lambda item : item[0][:1] == 'A', lista))
r = []
para i en f:
[Link](i[0] + ' ' + i[1])
regresar r
Ejemplo 03
Desarrolla una función en Python que reciba una lista de pedidos. Cada elemento
posee uno de los siguientes valores:
Resolución:
def pedido(lista):
itens = ['CREME', 'CHOCOLATE', 'FLOCOS', 'NAPOLITANO']
maior = 0
sabor
para item en itens:
q = len(list(filter(lambda i : i == item, lista)))
si q >= maior:
q
elemento
devolver sabor
40
Ejemplo 04
Desarrolla una función en Python que devuelva los elementos de la diagonal principal de una
matriz de orden N.
Resolución:
def dPrincipal(matriz):
index = 0
diagonal = []
para linha em matriz:
[Link](linha[index])
índice += 1
devolver diagonal
Ejemplo 05
Resolución:
def cartelas(cantidad):
saida = []
para i en rango(1, cantidad + 1):
jogo = []
count = 0
mientras True:
num = [Link](1, 60)
si num no está en jogo:
[Link](num)
count += 1
si cuenta == 6:
descanso
[Link]()
41
[Link](jogo)
devolver salida
Lista de ejercicios E
1) Desarrolle una función en Python que reciba un número entero. La función debe retornar
un booleano indicando: verdadero si el número es primo; y falso si el número no es primo. Utiliza la
siguiente firma.
defisPrimo(numero)
2) Desarrolle una función en Python que reciba una matriz de texto y un atributo más
también del tipo texto. La función deberá retornar una lista que contenga todos los textos que
contenga el valor de entrada. A continuación se muestra la firma del método:
Ejemplo:
valores
río
retorno
3) Desarrolla una función en Python que reciba cuatro enteros: el primero indica la cantidad
de líneas; el segundo indica la cantidad de columnas; el tercero el intervalo inicial; y el cuarto el
intervalo final. La función deberá retornar una matriz de acuerdo con el tamaño especificado y
llenada con valores aleatorios de acuerdo con el intervalo estipulado. Sigue la firma de
función:
42
Ejemplo:
Entrada
Salida:
45 32 56
31 50 41
43
Estructura de Datos
44
Matrix La tabla Matriz es responsable de relacionar cada disciplina con su
debido profesor.
Crearemos una estructura de datos que permitirá al desarrollador acceder al modelo.
relacional presentado. Los archivos que contienen el modelo y los datos están separados
en dos categorías: datos para archivos csv que almacenan los datos; y metadatos
para los archivos txt que almacenan la lógica estructural de cómo los datos son
organizados.
Id bigint.
NomeCurso varchar.
Institución varchar.
El archivo que contiene los datos se encuentra en data/data/[Link]. A continuación se muestra el formato
two dice
Ingeniería Eléctrica
2;Ingeniería Civil;IF Goiano - Campus Trindade
Engenharia da Computação;IF Goiano - Campus Trindade
Pós-graduação em Humanidades
Cada dado está separado por punto y coma (;), lo que corresponde a una columna de
tabla construida.
Para comenzar el trabajo, el primer paso es encontrar las estructuras de datos de cada
tabla y crear un diccionario. El diccionario que se creará se basará en los archivos
que definen la estructura y que están guardados en la carpeta de metadatos.
Diccionario de datos
También conocido como mapa o array asociativo, el diccionario de datos tiene como
función recibir una estructura de datos abstracta y relacionarlo en las diversas entradas de
dados.
45
diccionario = {
'Curso': []
}
Dónde:
diccionario nombre del diccionario de datos;
course nombre de la estructura de la tabla a buscar.
tú
diccionario
dicionario['Curso'] = []
{
'Curso': [
('Id', 'bigint')
varchar
Institución
]
}
La clave (key) estará compuesta por los nombres de las entidades ([Link], [Link],
[Link], [Link]) y su contenido por los campos que definen cada entidad.
importar os
46
para archivo en [Link]('data/meta-data'):
imprimir(archivo)
[Link]
[Link]
[Link]
[Link]
Aunque tengamos los nombres de los archivos contenidos en la meta-data, observa que estos
poseen el nombre con su extensión. Necesitamos quitar la extensión .txt. Podemos quitar
a través de la siguiente función:
def retirarExtensao(arquivo):
return [Link]('.')[0]
Teniendo el camino y nombre de los archivos, ahora necesitamos crear una función que permita
cargar todo el contenido. Entonces crearemos la siguiente función:
def lerMetaData(arquivo):
dados = open('data/meta-data/' + arquivo, 'rt')
metaData = []
para linha en dados:
i = [Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
[Link]()
devolver metaDatos
La función open abre el archivo, se debe enviar la ruta del archivo en ella y el
tipo de abertura, no caso es abierto solo para leer. Un archivo puede ser abierto
de acuerdo con los caracteres:
47
'w' abre para escritura;
'x' abre para creación. Si ya existe un archivo con el mismo nombre, ocurrirá un
error;
'a' abre para escritura, añadiendo el contenido al final del archivo si existe;
'b' modo binario;
t modo texto (padrão);
'+' abre el archivo de disco actualizando (leyendo y escribiendo);
'U' modo nueva línea (desactualizado).
La variable data recibe todo el contenido del archivo en la función open. Al cerrarlo es
es necesario utilizar la función close().
importar os
def retirarExtensao(arquivo):
return [Link]('.')[0]
def leerMetaData(archivo):
dados = open('data/meta-data/' + arquivo, 'rt')
metaData = []
para linha em dados:
i = lí[Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
[Link]()
devolver metadatos
dicionario = {}
por archivo en [Link]('data/meta-data'):
retirarExtensao(file)
diccionario[tabla] = leerMetaData(archivo)
48
Las informaciones contenidas en esta entidad están definidas por el nombre de tupla. Una tupla es
Curso
Atributos: [
bigint
varchar
Institución
]
En el caso de Curso tenemos tres tuplas. En nuestro ejemplo, una tupla está constituida por dos
49
Crea el diccionario y extrae la información
# en una tupla
dicionario = {}
leerMetaData('[Link]')
tupla = []
para t en diccionario['Curso']:
[Link](t[0])
[Link]()
Lista de ejercicios F
1) Desarrolle un código Python que cree las tuplas de la entidad Servidor. Relacione cada tupla
con sus datos.
2) Desarrolle un código Python que cree las tuplas de la entidad Disciplina. Relacione cada tupla
con sus datos.
3) Con base en el ejercicio 2, desarrolla un código Python que visualice solo las disciplinas del
1º y 3º período.
50
En este ejercicio será necesario relacionar las entidades Curso y Disciplina.
51
Python y SQLite
En este capítulo aprenderemos cómo conectar el lenguaje Python con bases de datos.
SQLite. Veremos cómo realizar las principales rutinas de manipulación en la base de datos.
Para probar la conexión con la base de datos, crea un proyecto llamado BancoDatos.
En el proyecto creado, construye un archivo Python y nómbralo como [Link].
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link]('SELECT * FROM produto')
05 imprimir([Link]())
06 [Link]()
Línea 01: Importa el recurso responsable de conectar el lenguaje con la base de datos
dados
Línea 02: El comando connect realiza la conexión con la base de datos seleccionada.
Esta función recibe solo el nombre de la base de datos, en caso de que el archivo esté junto con
[Link]. Si la base de datos está en otra carpeta, será necesario pasar todo
camino. Ejemplo:c:\carpeta\subcarpeta\[Link];
Líneas 03 a 05: Veremos el significado de estos comandos en los próximos temas;
Línea 06: El comandoclosefinaliza la conexión. Necesario para cerrar la base de datos.
dados.
52
Manipulando la base de datos
En este tema aprenderemos cómo manipular datos dentro de la base de datos. Para ello
Comando INSERT
Dónde:
INSERT INTO: comando de la instrucción;
nombre de la tabla que recibirá el dato;
campos: nombre de los campos separados por comas (;)
valores: comando de la instrucción;
53
datos: datos relativos a cada campo. Cada dato deberá ser separado por coma
Dados do tipo texto devem estar entre aspas simples.
Para cada conjunto de datos se realizó un INSERT. Sin embargo, también es posible
inserir de la siguiente forma:
Para realizar el comando INSERT dentro del lenguaje Python, tendremos que
escribir el siguiente código:
01 import sqlite3
02 conn = [Link]('base_de_datos.db')
03 cursor = [Link]()
04 [Link](
INSERTAR EN produto (descripcion, precounit) VALORES (?, ?), (?, ?)
06 ('Cupim Bovino', 12.89, 'Costelinha Suína Sadia ou Perdigão', 10.99))
07 [Link]()
08 [Link]()
54
Línea 03: La función cursor es responsable de realizar cualquier manipulación con el
base de datos. Siempre que haya la necesidad de trabajar con una tabla, será
es necesario llamar a esta función;
Líneas 04, 05 y 06: El comando execute recibe qué comando deberá ser ejecutado.
En este caso ejecutaremos el siguiente comando:
El símbolo de interrogación (?) denota que será necesario pasar un parámetro como
referencia. En este caso será necesario pasar cuatro parámetros:
Cupim Bovino
Línea 07: El comando commit graba la instrucción pasada en execute. Este comando
es necesario para realizar la operación en el banco.
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link](
05 'INSERT INTO producto (descripcion, precounit) VALUES (?, ?)'
06 ('Filé de Tilápia Geneseas', 7.79)
07 [Link]()
08 [Link]()
55
[Link]
56
Comando UPDATE
Dónde:
ACTUALIZAR CONFIGURAR: comando de la instrucción;
por R$ 21.99.
Para realizar el comando UPDATE dentro del lenguaje Python, tendremos que
escribir el siguiente código:
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link](
05 actualizar producto establecer precounit = ? donde id = ?
06 [Link]()
07 [Link]()
57
Ejemplo 04: Cambia la descripción y el precio unitario del producto:
para
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link](
05 ACTUALIZAR produto SET descricao = ?, precounit = ? WHERE id = ?
Camarão DellMare
07 [Link]()
08 [Link]()
Comando ELIMINAR
El comando DELETE se utiliza para eliminar un dato de una tabla de la base de datos.
dados. Él posee la siguiente sintaxis:
Dónde:
ELIMINAR DE: comando de la instrucción;
nombre de la tabla a ser manipulada
DONDE: condición de eliminación;
código de la tabla
valor del código.
58
BORRAR DE produto DONDE id = 23
Para realizar el comando DELETE dentro del lenguaje Python, tendremos que
escribir el siguiente código:
01 importar sqlite3
02 conn = [Link]('base_de_datos.db')
03 cursor = [Link]()
04 [Link]('DELETE FROM produto WHERE id = ?', (23,))
05 [Link]()
06 [Link]()
Comando SELECT
El comando SELECT se utiliza para realizar consultas a las tablas de la base de datos.
dados. Él posee la siguiente sintaxis básica:
Dónde:
SELECCIONAR: selecciona los campos a mostrar;
campos: campos elegidos para exhibición;
SELECCIONA LAS TABLAS UTILIZADAS;
tabelas escolhidas.
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link]('SELECT descricao FROM produto')
05 para linha em [Link]():
06 print(linha[0])
07 [Link]()
08 [Link]()
59
SELECCIONAR * DE producto
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link]('SELECT * FROM produto')
05 para linha em [Link]():
06 imprimir('{0} - R$ {1}'.format(linha[1], linha[2]))
07 [Link]()
08 [Link]()
Para visualizar todos los campos de una tabla utiliza el símbolo asterisco (*). En el caso
se emitirá una lista que contiene: (id, descripción, precounit).
Posición 0 id
Posición 1 descripción
Posición 2 precounit
Comando WHERE
El comando WHERE se utiliza para probar una determinada condición. Puede ser
construido dentro de los comandos: INSERT; UPDATE; o WHERE.
Ejemplo 07: Muestra todos los productos cuyo precio unitario es mayor a R$ 500,00.
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link]('SELECT * FROM produto WHERE precounit > 500')
05 para linha em [Link]():
06 imprimir('{0} - R$ {1}'.formato(linha[1], linha[2]))
07 [Link]()
08 [Link]()
Ejemplo 08: Muestra todos los productos cuya descripción comienza con la letra 'F'.
60
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link]("SELECT * FROM produto WHERE descricao LIKE ?", ('F%',))
05 para línea en [Link]():
06 print('{0} - R$ {1}'.format(linha[1], linha[2]))
07 [Link]()
08 [Link]()
Supongamos que se desea mostrar todos los productos realizados en una determinada
compra. Neste caso precisaríamos:
de la tabla compra para identificar cuál fue la compra realizada;
de la tabla compra_producto para identificar cuáles son los productos de esa
compra; e
de la tabla producto para mostrar la descripción.
SELECCIONAR
descripción
DE
producto
DÓNDE
[Link] = compra_produto.idcompra Y
[Link] = compra_produto.id Y
[Link] = 1
igual a 1. Necesitamos relacionar las tablas, y para eso es necesario comparar los
campos claves de la tabla principal con sus respectivas referencias:
[Link] = compra_produto.idcompra Y
[Link] = compra_producto.id
61
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link](
05 'SELECCIONAR descripcion DE producto, compra, compra_producto ' +
06 'DONDE [Link] = compra_produto.idcompra Y ' +
07 '[Link] = compra_produto.id Y [Link] = 1')
08 para linha em [Link]():
09 imprimir('{0}'.formato(linha[0]))
10 [Link]()
11 [Link]()
Ejemplo 09: Presente el valor total a ser pagado de la compra cuyo id es igual a 1.
Para obtener el total de una compra, será necesario multiplicar las columnas
precounitequantidadede cada item. Para isso precisamos realizar a seguinte
consulta:
SELECCIONAR
Descripción
DE
producto
DÓNDE
[Link] = compra_produto.idcompra Y
[Link] = compra_produto.id Y
[Link] = 1
01 importar sqlite3
02 conn = [Link]('[Link]')
03 cursor = [Link]()
04 [Link](
05 'SELECCIONAR descricao, precounit, quantidade DE produto, compra,
06 compra_produto DONDE [Link] = compra_produto.idcompra Y ' +
07 '[Link] = compra_produto.id Y [Link] = 1')
0
09 para linha em [Link]():
10 imprimir('{0} (R$ {1}) CANT: {2}'.format(linha[0], linha[1], linha[2]))
11 total += línea[1] * línea[2]
12 print('Total a pagar: R$ {0}'.format(total))
62
13 [Link]()
14 [Link]()
Líneas 08 y 11: crea una variable y a continuación acumula la suma de la multiplicación del
precio unitario con la cantidad de cada producto.
Lista de ejercicio G
63
Manejo de Excepciones
Al escribir un código, el desarrollador puede cometer tres tipos de errores: error lógico;
error de sintaxis; error de ejecución.
El error de sintaxis ocurre en el momento en que se está escribiendo el código. Este tipo de error
es el más simple de ser detectado teniendo en cuenta que ocurre durante la creación del
proyecto.
El error de ejecución ocurre cuando el usuario solicita la llamada a una acción y esta
por su parte no puede ser completada debido a un error en alguna instrucción del
código. La siguiente instrucción es un ejemplo clásico de un error de ejecución:
En este capítulo veremos cómo tratar errores de ejecución a través del tratamiento de
excepciones. Las palabras clave try/except se utilizan en la construcción del tratamiento
de excepción. Utilizando el manejo de excepciones, el mismo código podría escribirse de la
siguiente forma:
intentar
x = 1/0
excepto BaseException:
print('Error de división por cero')
print('Continuación...')
64
Aunque ocurra el error, la ejecución no se interrumpe.
Es posible declarar más de un except para manejar diferentes tipos de error. Ejemplo:
importar zipfile
intentar:
banco_zip = [Link]("[Link]")
banco_zip.extraer_todo(ruta="banco")
banco_zip.cerrar()
except FileNotFoundError:
print("Archivo inexistente")
excepto PermissionError:
print("Error de permiso")
En este caso, el código maneja dos tipos de excepciones: el primer caso es que no encuentre el archivo.
(FileNotFoundError); y en segundo lugar, en caso de que no tenga permiso para la extracción del
archivo (PermissionError).
Jerarquía de excepciones
Para cada error es posible especificar su tipo, por ejemplo, cuando un número es dividido.
por cero el error invocado será ZeroDivisionError. En Python existe una jerarquía
de errores.
ExcepciónBase
o SystemExit
o KeyboardInterrupt
o GeneratorExit
o Excepción
. DetenerIteración
. ErrorAritmético
ErrorDePuntoFlotante
Error de desbordamiento
Error de división por cero
. Error de afirmación
. AttributeError
. Error de buffer
. EOFError
. ImportError
. Error de búsqueda
65
IndexError
Error de clave
. Error de memoria
. NameError
UnboundLocalError
. OSError
BlockingIOError
Error de Proceso Hijo
Error de Conexión
o BrokenPipeError
Error de conexión abortada
o ConnectionRefusedError
o ConnectionResetError
ErrorFileExists
Error de archivo no encontrado
Error de interrupción
IsADirectoryError
NoEsUnDirectorioError
Error de permiso
ErrorDeConsultaDeProceso
Error de tiempo de espera
. Error de referencia
. Error de tiempo de ejecución
ErrorNoImplementado
. Error de sintaxis
Error de sangría
o TabError
. Error del sistema
. TypeError
. ValueError
Error de Unicode
o UnicodeDecodeError
o UnicodeEncodeError
o UnicodeTranslateError
. Advertencia
Advertencia de desaprobación
Advertencia de desuso pendiente
Advertencia de tiempo de ejecución
Advertencia de sintaxis
Advertencia de usuario
Advertencia de futuro
Advertencia de importación
Advertencia de Unicode
Advertencia de Bytes
Advertencia de recurso
Si hay dudas sobre qué excepción utilizar, es posible invocar el tratamiento de errores.
primárioBaseException. Cada clase de excepción tiene sus particularidades.
66
Acción de limpieza
no. Ejemplo:
def leerMetaDatos(archivo):
intenta:
dados = open('data/meta-data/' + arquivo, 'rt')
metaData = []
para linha em dados:
i = [Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
except FileNotFoundError:
print('Archivo no encontrado.')
finalmente
[Link]()
devolver metaDatos
Comando raise
elevar Error
dónde
aumentar palabra clave utilizada para provocar el error;
Error error a ser invocado.
Ejemplo:
def verificar(sabor):
67
si sabor no está en ('CREME', 'CHOCOLATE', 'NAPOLITANO'):
elevar BaseException
intentar
input('Elige el sabor de helado: ')
verificar(sabor)
Buena elección
excepto BaseException:
No trabajamos con este sabor.
Lista de ejercicios H
x = [1, 3, 5, 6, 7, 8]
i = 0
mientras i <= len(x):
imprimir(x[i])
i += 1
2) Cree un programa en Python que reciba n números y sume esos números mientras la suma
no ser superior a 100. El programa deberá imprimir el valor sumado (antes de alcanzar el número
mayor que 100) y deberá informar cuántos números fueron sumados y cuál es la media. Refácea su
programa utilizando las siguientes reglas:
a. Utilice el tratamiento de excepciones para manejar la entrada de datos;
b. Cuando la suma sea superior a 100, el programa deberá generar una excepción.
68
4) Suponga que el usuario realice transacciones en su cuenta corriente. Desarrolle un código en
Cual el usuario ingresará su saldo inicial. Podrá realizar un Débito o Crédito. Lance una
excepción en caso de que el saldo del cliente se vuelva negativo. El valor del saldo no deberá ser negativo.
69
Archivos
Cruz
70
Python y Arduino
71
Referencia Bibliográfica
CRUZ, [Link]: Escriba sus primeros programas. 1ª ed. Casa del Código: São
Paulo. 1998.
72