Curso de Python 2023
Presentación e Introducción
Agenda
❑ Organización del Curso
❑ Introducción a Python
❑ Variables y Tipos de Datos
❑ Entradas y Salidas
Ver el ibro de Kong de Python
programming, en la biblioteca de CN
Organización del
Curso
Organización
Docentes: Dr. Ing. P. Ortiz Bochard
[email protected]Duración (13 clases)
Fecha de inicio: Lunes 31 de Julio de 2023
Fecha de fin: Miércoles 06 de Setiembre de 2023 (defensa)
Horarios de Clase
Teóricos. Lunes de 18 a 19:45 hrs.
Prácticos. Miércoles de 18 a 19:45 hrs.
Jul.-23 Curso Python 4
Evaluación y Asistencia
Evaluación
• Trabajo Obligatorio grupal: 100 pts. (mínimo 50)
Asistencia
• 50% de asistencia a clases
Jul.-23 Curso Python 5
Objetivos y Alcance
1. El Diploma no exige conocimientos de programación
2. Por tanto, se trata de un curso de Introducción a Python
3. El objetivo principal es enfocar, orientar e introducir los
elementos necesarios (comandos, funciones, bibliotecas, etc.),
para los cursos siguientes en el multiverso de Python
4. Se requiere una cuota adicional (búsqueda, ampliación y
profundización de información) por cuenta propia para lograr una
acabada comprensión de los temas
5. Se requiere adicionalmente un tiempo promedio de 6-8 hrs.
semanales de trabajo extra (variando según formación en
programación, cantidad de integrantes, proyecto elegido, etc.)
Jul.-23 Curso Python 6
Objetivos y Alcance (cont)
6. En caso de que seleccionen proyectos relacionados a
Machine Learning, tener en cuenta que este tema se da en
la última clase (solo una introducción, ya que hay cursos
posteriores que lo profundizan), por tanto, en caso de optar
por estos proyectos considere tiempo de auto-aprendizaje
adicional.
7. Los proyectos propuestos para el trabajo grupal varían en
complejidad (tres clases), y en consecuencia en el rango de
calificación. Se explicará con mayor detalle cuando se
presenten los proyectos.
Jul.-23 Curso Python 7
Recursos
• Sitio oficial: http://www.python.org
• Python 3 documentation : https://docs.python.org/3/
• Dive into Python 3: http://www.diveintopython3.net/
• Los paquetes numéricos numpy, matplotlib y otros puede ser
bajados de http://pypy.python.org (the Python package
index)
• PEP 8-Style Guide for Python Code:
https://www.python.org/dev/peps/pep-0008/
• … e Internet, la principal!
Jul.-23 Curso Python 8
Introducción a
Python
Python
• Python es un lenguaje software
libre
• Desarrollado por Guido van
Rossum en los comienzos de los
90’s
• Nombrado por los Monty Python
Jul.-23 Curso Python 10
¿Por qué Python?
1. Es legible y fácil de aprender
2. Software libre. Abundante información en Internet.
3. Lenguaje de facto (conjuntamente con R tal vez) para
Machine Learning y Data Science
4. Extensa biblioteca de paquetes para todo tipo de
aplicaciones y áreas muy diversas (“the Swiss army knife of
programming languages”)
1. Muy popular (Google, NASA, Yahoo, Electronic Arts, etc.)
Fuente:
https://www.tiobe.com/tiobe-
index/
Jul.-23 Curso Python 11
Instalación
Bajaremos Python conjuntamente con el IDE, Spyder, el cual
usaremos en el curso (no obstante, la elección del IDE es
libre), y otros paquetes y herramientas.
Ver también:
http://docs.python.org/using/windows.html
http://docs.python.org/using/unix.html
Jul.-23 Curso Python 12
Instalación de
Descarga:
https://www.anaconda.com/products/individual#download
Verificación de la versión:
Video: https://www.youtube.com/watch?v=g6ln1dAt-RI
Jul.-23 Curso Python 13
Actualización de Anaconda y Spyder
Para actualizar Spyder:
Jul.-23 Curso Python 14
Actualizando Python
Jul.-23 Curso Python 15
Comencemos…
Strings de Documentación
(docstrings)
"""
Author: Ken Lambert
This program does nothing
yet, but just you wait!
"""
• Usado para documentar los programas Python para
otros programadores, debugger y otras herramientas.
• Debería aparecer al comienzo de cada programa.
• También se puede inspeccionar en runtime
Comentarios
Jul.-23 Curso Python 18
Help!
La función bult-in (incorporada; i.e. no necesita importarse) help()
recibe como argumento un objeto de Python (una clase, una función, un
módulo) e imprime en pantalla su documentación.
Jul.-23 Curso Python 19
Números y operaciones numéricas
• Las operaciones sobre ints (enteros) producen ints (excepto por /)
• Las operaciones en flotantes producen flotantes (reales), para crear
un número en punto flotante use “.”
• Las operaciones mixtas producen flotantes.
In[3]: 3.0+4.0
Out[3]: 7.0
I:3+4
O:7
I:3.0*4
O:12.0
I:3*4
O:12
I:10.0/3.0
O:3.3333333333333335
I:10/3
O:3.3333333333333335
I:(2+.5)*7) La división siempre
O:5.5 devuelve un nro. en
pto. flotante
Jul.-23 Curso Python 20
Cont.
Números en notación científica:
1e-05
Tipo de un número: type()
42
type(42)
<class 'int'>
Jul.-23 Curso Python 21
Variables y Tipos de
datos
Tipos de Datos
Jul.-23 Curso Python 23
Operadores
División entera,
se truncan los
dígitos luego de
la coma
Jul.-23 Curso Python 24
Ejemplo
Desarrollo de Taylor:
∞
𝑥 𝑘
𝑒𝑥 =
𝑘!
𝑘=0
1 2 3
𝑒 ≈1+ + + +⋯
1! 2! 3!
1+1+1/2+1/(3*2)+1/(4*3*2)+..
Jul.-23 Curso Python 25
Variables
b=2 # b es de tipo integer
print(b)
b=b*2.0 # ahora es float
print(b)
b=“Hola Mundo”
print(b)
➢ No es necesario declararlas, solo se asignan
➢ Pueden cambiar de tipo
➢ La variable es creada cuando se le asigna un valor
➢ Sensitivo a las mayúsculas
➢ Son referencias a objetos
➢ El nombre de una variable debe comenzar con una letra o
guión bajo (no recomendado)
Jul.-23 Curso Python 26
Entendiendo la asignación
▪ Python no maneja punteros como C o C++. En su lugar
tiene “nombres” (de variables) y “referencias” (trabaja como
Java y otros). No se crean copias, sino referencias.
▪ El nombre se crea la primera vez que aparece a la izquierda
de la expresión de asignación
x = 3
▪ Los nombres almacenan las “referencias” las cuales son
como punteros a ubicaciones en memoria que almacenan la
constante o un objeto
▪ Python determina el tipo de la referencia automáticamente basado
en el dato que es asignado a la misma
▪ También decide cuando borrarla vía garbage collection
Jul.-23 Curso Python 27
Cont.
Ocurren varias cosas cuando se escribe :
x = 3
• Primero un entero 3 es creado y almacenado en memoria
• Una variable x es creada
• Una referencia a la ubicación de la memoria que almacena el
número 3 es asignado a la variable x.
Type: Integer
Name: x Data: 3
Ref: <address1>
name list memory
28
Jul.-23
Curso Python
Convención de nombres de variables
Existen varias convenciones de nombres las cuales se pueden
consultar en; Style Guide for Python Code (PEP8)
Generalmente usaremos la convención:
letras_minúsculas_con_guion_bajo
Ejemplos:
distancia_km = 5799
millas_por_km = 0.6214
distancia_millas = distancia_km * millas_por_km
print(distancia_millas)
Jul.-23 Curso Python 29
Ejemplo
Calculemos el Índice de Masa Corporal (IMC)
𝑝𝑒𝑠𝑜
𝑖𝑚𝑐 =
𝑎𝑙𝑡𝑢𝑟𝑎2
Comprueben en tipo de la variable imc
Jul.-23 Curso Python 30
Constantes
▪ Similares a variables
▪ A diferencia de las variables su contenido no debería variar.
▪ Los nombres de las constantes deberían estar escritas en
MAYÚSCULAS.
Ejemplo: MAX_ARCHS=10
Jul.-23 Curso Python 31
Strings
s=‘hola’ similar a:
s=“hola”
c = ’’Triple comillas para varias líneas
... que pueden contener ‘ o “ ’’’
Jul.-23 Curso Python 32
Ejemplos
string1=“Presione enter para salir”
string2=“del programa”
print(string1+’ ‘+string2) #concatenación
print(string1[0:12]) # car. del 0 al 11
s=“3 9 81”
print(s.split()) # el espacio es el delimitador
>['3', '9', '81']
Slicing:
<string>[<com>:<fin>]
El slice contiene el substring comenzando con la posición de
comienzo (com) hasta la posición de fin, sin incluir la posición final.
Jul.-23 Curso Python 33
Los strings son arrays
print(string[1])
print(string[-1])
Jul.-23 Curso Python 34
Métodos de strings
Python tiene una cantidad de métodos bult-in que se pueden usar para
manejar strings.
Jul.-23 Curso Python 35
Booleanos
z=True
print(type(z))
<class 'bool'>
Jul.-23 Curso Python 36
Funciones print() e
input()
Función print()
Sintaxis: print(<expr>,<expr>,..,<expr>)
donde la coma final en la lista es opcional
Ejemplo
print("a = ", a)
a = 3.564
print("a = \n", a)
a =
3.564
Jul.-23 Curso Python 38
Salida formateada
Separando valores con la coma
q = 459
p = 0.098
print(q, p, p * q)
459 0.098 44.982
print(q, p, p * q, sep=",")
459,0.098,44.982
print(q, p, p * q, sep=" :-) ")
459 :-) 0.098 :-) 44.982
Jul.-23 Curso Python 39
Función input()
Sintaxis <variable> = input(<prompt>)
La función retorna un string ingresado desde teclado. Se
puede almacenar el resultado del input() en una variable
Ejemplo: print (“¿Cuál es tu nombre?: ")
name = input()
O
name = input (“¿Cuál es tu nombre?: ")
O
print ("¿Cuál es tu nombre?: ", end="")
name = input()
Jul.-23 Curso Python 40
Conversiones de tipo
• Los datos a veces deben convertirse de un tipo a otro.
• Existen funciones que toman los datos de un tipo y
retornan de otro tipo.
• int()
• float()
• str()
• Ejemplos
int(3.3) produce 3 str(3.3) produce “3.3”
float(3) produce 3.0 float(“3.5”) produce 3.5
int(“7”) produce 7
int(“7.1”) ERROR!
float(“Test”) ERROR!
Julio de 2023 Curso de Python 41
Sentencia Input y los números
• La sentencia input es evaluada como un string
• Debe ser convertida en un número si se quiere operar
• eval() es una función que convierte un string en un
número , ej. eval(“20”) -> 20
Julio de 2023 Curso de Python 42
Cont. de input(). Uso de eval().
La función eval() convierte un string en un número.
Jul.-23 Curso de Python 43
Cont.
• Se puede usar int() y float()
• Se genera un error si el string contiene caracteres no
numéricos
• int(item) convierte el item en un int
float(item) convierte el item en un float
Jul.-23 Curso de Python 44
Uso de float()
Cambiando eval() por float()
Jul.-23 Curso de Python 45
Funciones Matemáticas
Nombre del comando Descripción Constante Descripción
e 2.7182818...
abs(value) absolute value
pi 3.1415926...
ceil(value) rounds up
cos(value) cosine, in radians
floor(value) rounds down
log(value) logarithm, base e
log10(value) logarithm, base 10
max(value1, value2) larger of two values
min(value1, value2) smaller of two values
round(value) nearest whole number
sin(value) sine, in radians
sqrt(value) square root
Para usar muchos de estos comandos se debe escribir en la
parte superior del programa: from math import *
Jul.-23 Curso Python 46
Ejercicios
1. Cree un script que use los 4 diferentes tipos de datos vistos
y los imprima. Ensaye algunas operaciones básicas.
2. Para el cociente 17/4 muestre el resto y el cociente de la
división entera
3. Calcular el área del círculo dado el radio (asignarlo a
variables)
4. Calcular el área del triángulo dado la altura y base
Jul.-23 Curso Python 47
Cont. 1
5. Escribir un programa que permita calcular la conversión de
grados Fahrenheit a Celsius. Las fórmulas son las
siguientes:
formatear la salida para el resultado sea “amigable”. Ensaye
distintas formas de formatear la salida.
6. Cargue por pantalla su nombre y su apellido combínelos en
un string e imprímalo. Verifique el tipo de variable.
Jul.-23 Curso Python 48
Cont.
7. Extienda el ejercicio anterior para que solicite la ciudad y el
departamento
8. Escriba un programa que imprima un string compuesto de
los 2 primeros y 2 últimos caracteres.
9. Ingrese por teclado un string cualquiera y la posición
(índice) del n-ésimo carácter, luego remuévalo del mismo.
Ejemplo: string=“Python”; n=3; resultado=“Pyton”
10. Escriba un programa que ingrese un string por teclado e
intercambie el primer y ultimo carácter usando solo 1 línea
de código.
Jul.-23 Curso Python 49
Encuesta
Les agradecemos si pueden completar la encuesta que figura
en la plataforma (5 preguntas).
Jul.-23 Curso Python 50