0% encontró este documento útil (0 votos)
24 vistas41 páginas

Calse 01

Este documento introduce conceptos básicos de programación y Python. Explica la diferencia entre conocimiento declarativo e imperativo, y cómo la programación captura recetas para generar hechos. También define conceptos como algoritmo, lenguaje de programación, objetos y expresiones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas41 páginas

Calse 01

Este documento introduce conceptos básicos de programación y Python. Explica la diferencia entre conocimiento declarativo e imperativo, y cómo la programación captura recetas para generar hechos. También define conceptos como algoritmo, lenguaje de programación, objetos y expresiones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 41

Python para análisis de datos

• Prof. Dra. Margarita Ruiz Olazar


[email protected]
Referencias Bibliográficas
• Python 3.7.3 documentation
• Floating Point Arithmetic: Issues and Limitations
• Data Structures
• Guttag, J. V. (2013). Introduction to computation and programming using Python. Mit
Press.
• Introduction to Computer Science and Programming in Python - MIT open courseware
• Python Data Science Handbook
• Learning Python: From Zero to Hero
• Medium corporation
• Downey, A. B. (2012). Think Python: How to Think Like a Computer Scientist, Version 2.0.
17. Green Tea Press.
• stackoverflow
https://mitpress.mit.edu/sites/default/files/Guttag_errata_revised_083117.pdf
Referencias Bibliográficas
• https://www.python.org/
• Python Docs https://docs.python.org/3/
• Anaconda https://www.anaconda.com/
• Todos deberían aprender a programar: https://www.youtube.com/watch?v=Y1HHBXDL9bg
Clase 1
• Que es computación?
• Lenguaje de programación Python
• Objetos, expresiones y operadores
• Variables y valores
• Jupyter notebook
• Práctica
Introducción a la programación

1936, Konrad Zuse, ingeniero alemán, diseño y fabricó la Z1, la que para muchos es la primera
computadora programable de la historia.
Que hace un computador?
• Fundamentalmente:
• Realizan cálculos
• Un billón de cálculos por segundo!
• Recuerdan resultados
• 100s de gigabytes de almacenamiento!
• Qué clases de cálculos?
• Incorporados por el lenguaje
• Algunos definidos por el programador
• Los computadores solo saben lo que tu le dices
Tipos de conocimiento
• El conocimiento Declarativo
• Es una afirmación de hecho
• Hay un caramelo pegado debajo de una silla en la clase
• Son solo declaraciones, sin mas información. No sé donde esta el caramelo ni tampoco como
encontrarlo.
• El conocimiento imperativo
• es una receta de “cómo hacer”. Cómo encuentro el caramelo?
• Es el conocimiento o la información que nos lleva a una secuencia de pasos para
encontrar la solución.
• Comenzar a recorrer la sala de izquierda a derecha
• Por cada silla revisar si debajo tiene pegado un caramelo
• Si lo tiene retornar al asiento
• Desenvolver el caramelo y comerlo …
• Etc.
• La programación consiste en escribir recetas para generar hechos
Un ejemplo numérico
• Cuál es la receta para deducir la raíz cuadrada de un número? Por ejemplo 16.
1. Iniciar con una suposición, g.
2. Si g * g está lo suficientemente cerca de x, deténgase y diga que g es la respuesta.
3. De lo contrario, haga una nueva suposición promediando g y x/g.
4. Usando la nueva suposición, repita el proceso hasta que esté lo suficientemente cerca del valor x.
• x=16

g g*g x/g (g+x/g)/2


3 9 5.333 4.1667
4.1667 17.36 3.837 4.0035
4.0035 16.0277 3.997 4.000002
Que es un algoritmo?

1. Secuencia de pasos simples.

2. Proceso de flujo de control que especifica cuando


cada paso es ejecutado.

3. Un medio de determinar cuando parar.

Pasos 1 + 2 + 3 = un algoritmo!
Recapitulando
• Cuál es la diferencia entre un algoritmo y un programa?
• Que significa tener un modo computacional de pensar?
• Que cosas puede hacer un computador?
• Que es la ciencia de la computación?
Computadoras son máquinas que ejecutan
algoritmos
Dos cosas que hacen las computadoras:

• Realiza operaciones simples


• ¡Cientos de miles de millones por segundo!
• Recuerda los resultados
• Cientos de gigabytes de almacenamiento!

• ¿Qué tipo de cálculos?


• Integrando en la máquina, por ejemplo, +
• Los que definas como programador

• La gran idea aquí?


Los computadores solo saben lo que tu les dices
Computadoras son máquinas que ejecutan
algoritmos
Como capturar una receta en un proceso mecánico?
• Programa fijo de computadora
• Calculador

• programa almacenado en la computadora


• La máquina almacena y ejecuta las instrucciones
Arquitectura básica de la computadora
Programa almacenado en la computadora
• Secuencia de instrucciones almacenadas en el computador
• construido a partir de un conjunto predefinido de instrucciones primitivas.
1. Aritmética y lógica
2. Pruebas simples
3. Datos en movimiento

• Programa especial (interprete) ejecuta cada instrucción en orden


Primitivas básicas
• Turing mostró que se puede computar cualquier cosa usando 6 primitivas.

• Los lenguajes de programación modernos tienen un conjunto de primitivas más


conveniente.
• Pueden abstraer métodos para crear nuevas primitivas.
• Cualquier cosa computable en un lenguaje es computable en cualquier otro
lenguaje de programación.
Aspectos del lenguaje
• Construcciones primitivas
• Palabras en inglés
• Lenguaje de programación: números, cadenas, operadores simples.
Aspectos del lenguaje
• Sintaxis
• Lenguaje de programación: una instrucción puede tener o no tener validez sintáctica.
Aspectos del lenguaje
• Semántica
• La semántica estática es cuando los strings sintácticamente válidos tienen un significado.
• Ej. 3 + “hola” -> error semántico estático
Aspectos del lenguaje
• La semántica es el significado asociado con una serie de símbolos sintácticamente correctos sin
errores semánticos estáticos
• Inglés: puede tener muchos significados "El pollo está listo para comer".
"The chicken is ready to eat."

• Los programas solo tienen un significado


• Pero el significado puede no ser lo que el programador pretendía
Tipos de errores
• Error sintáctico
• Común y fácil de capturar.
• Error semántico estático
• Algunos lenguajes comprueban antes de ejecutar el programa.
• Pueden causar una conducta impredecible.
• Sin errores semánticos, pero tienen un significado diferente al que
pretendía el programador.
• el programa se bloquea, deja de funcionar
• el programa corre para siempre
• programa da una respuesta pero diferente de lo esperado
LENGUAJE DE PROGRAMACIÓN

• Es una forma estandarizada para comunicar comandos a un


computador, o sea, a través de diversas reglas semánticas y
sintácticas, podemos instruir el computador a hacer algo.
Lenguaje de Programación
Python
Objetivo: programar en PYTHON
• Aprender la sintaxis y la semántica de un lenguaje de programación.
• Aprender cómo usar estos elementos para resolver un problema en
una forma que la computadora pueda hacer el trabajo por nosotros.
• Aprender los modos computacionales de pensamiento para
permitirnos aprovechar un conjunto de métodos para resolver
problemas complejos.

Lanzado en 1991, desarrollado inicialmente por Guido van Rossum


Programa en PYTHON
• un programa es una secuencia de definiciones y comandos.
• definiciones evaluadas
• comandos ejecutados por el interprete de python en un shell
• los comandos (instrucciones) instruyen al intérprete para que haga
algo.
• puede ser directamente tipeado en un shell o almacenado en un
archivo que es leído en el shell y evaluado.
Python
• Python es un lenguaje de programación interpretado cuya filosofía
hace hincapié en una sintaxis que favorezca un código legible.
• Se trata de un lenguaje de programación multi-paradigma, ya que
soporta orientación a objetos, programación imperativa y, en menor
medida, programación funcional.

“high-level programming language, and its


core design philosophy is all about code
readability and a syntax which allows
programmers to express concepts in a few lines
of code.”
Guido van Rossum
Objetos
• programas manipulan objetos de datos
• los objetos tienen un tipo que define el tipo de operaciones que los programas pueden hacer
sobre estos.
• los objetos son:
• escalar (no puede ser subdividido)
• no-escalar (tiene una estructura interna a la que se puede acceder)

struct _longobject {
long ob_refcnt;
PyTypeObject *ob_type;
size_t ob_size;
long ob_digit[1];
};

Representación de un número entero en Python 3.4 (lenguaje C)


Objetos escalares
• int - representa enteros, ej. 5
• float - representa números reales, ej. 3.27
• Bool- representa valores booleanos verdaderos y falsos
• NoneType: special y tiene un valor, Ninguno
• puede usar type () para ver el tipo de un objeto

In [1] : type(5) Lo que escribes en el shell de Python


Out[1] : int Lo que muestra después de pulsar Enter

In [2] : type(3.0)
Out[2] : float
Conversión de tipo (cast)
• Puede convertir objetos de un tipo a otro
• float(3) convierte el entero 3 a flotante 3.0
• int(3.9) trunca flotante 3.9 a entero 3
Imprimir a la consola
• Para mostrar la salida de código en la consola, use el comando
print

In [11] : 3+2
Out[11] : 5

In [12] : print(3+2)
5
Expresiones
• Combinar objetos y operadores para formar expresiones
• Una expresión tiene un valor, el cual tiene un tipo
• La sintaxis para un expresión simple

<object> <operator> <object>


Operadores sobre int’s y float’s
• i+j suma
• i-j diferencia
• i*j producto
• i/j división
• i//j int división
• i%j el resto cuando i es dividido por j
• i**j i a la potencia de j
Operaciones simples
• Paréntesis usados para decirle a Python el orden de ejecución de las
operaciones
• 3*5+1 evalúa 16
• 3*(5+1) evalúa 18
• Operadores de precedencia cuando no se usan paréntesis
• **
• *
• /
• + y – ejecutado de izquierda a derecha, como aparece en la expresión
Operadores de redondeo
• Python tiene una función round() que toma dos argumentos
numéricos, n y ndigits, y devuelve el número n redondeado a
ndigits.
• el argumento ndigits se establece en cero de manera predeterminada,
por lo que omitirlo da como resultado un número redondeado a un entero.
• es posible que round() no funcione como se espera.

• error de representación de punto flotante


Error de representación de punto flotante
• es un problema causado por la representación interna de números de
punto flotante,
• el computador utiliza un número fijo de dígitos binarios para
representar un número decimal.
• algunos números decimales no se pueden representar exactamente
en binario, lo que resulta en pequeños errores de redondeo.

Floating Point Arithmetic: Issues and Limitations. Ver en https://docs.python.org/3/tutorial/floatingpoint.html


Operadores de input/output
• print
x = 1
print(x)

x_str= str(x) Convierte un entero a un string


print("mi fav num es", x, ".", "x =", x)
print("mi fav num es "+ x_str + ". "+ "x = "+ x_str)

• input
text = input("ingrese algo... ") Se puede asociar la
entrada a una variable
print(5*text)

num= int(input("ingrese un número... ")) Retorna un string, para


trabajar con números se
print(5*num) debe convertir
Variables y valores
• El signo igual es la asignación de un valor a un nombre de variable.

• pi = 3.14159
• pi_approx= 22/7

• El valor es almacenado en la memoria de la computadora.


• Una asignación asocia el nombre al valor
• Se recupera el valor asociado con el nombre o variable, invocando el nombre. Ej.
escribiendo pi
Asociación de valores a variables

Lenguajes fuertemente tipados

Lenguaje Python
Práctica

También podría gustarte