PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
Fundamentos programación expresiones matemáticas
1. Fundamentos de Programación Universidad de Santiago de Chile
1
CLASE 2
EXPRESIONES MATEMÁTICAS
Fundamentos de programación
INTRODUCCIÓN
El objetivo del curso es aprender las nociones básicas de
programación
Programar significa escribir órdenes o instrucciones para que un
computador pueda ejecutarlas
Como los computadores no son máquinas inteligentes, necesitamos
escribir estas instrucciones en un lenguaje que este pueda
comprender
Para ello usaremos….
Fundamentos de programación
2. Fundamentos de Programación Universidad de Santiago de Chile
2
EXPRESIONES MATEMÁTICAS
Uno de los primeros pasos para aprender un lenguaje de
programación es el uso de este para realizar aritmética básica
Para ello Python nos provee de los operadores matemáticos
binarios básicos:
Suma (+) → 2 + 2 = 4
Resta (-) → 4 – 5 = -1
Multiplicación (*) → 3 * 4 = 12
División (/) → 8 / 2 = 4
Y otros un poco más complejos…
Fundamentos de programación
EXPRESIONES MATEMÁTICAS
Como los operadores unarios (se les llama así porque requieren
sólo un argumento):
Identidad (+) → + 1 = 1
Cambio de signo (-) → - 6 = -6
Y los operadores binarios (requieren dos argumentos para
entregar el resultado) :
Exponenciación (potencia) (**) → 2 ** 4 = 16
Módulo (%) (resto de la división entera) → 6 % 4 = 2
Revisemos un ejemplo sólo con los operadores sencillos…
Fundamentos de programación
3. Fundamentos de Programación Universidad de Santiago de Chile
2
EXPRESIONES MATEMÁTICAS
Uno de los primeros pasos para aprender un lenguaje de
programación es el uso de este para realizar aritmética básica
Para ello Python nos provee de los operadores matemáticos
binarios básicos:
Suma (+) → 2 + 2 = 4
Resta (-) → 4 – 5 = -1
Multiplicación (*) → 3 * 4 = 12
División (/) → 8 / 2 = 4
Y otros un poco más complejos…
Fundamentos de programación
EXPRESIONES MATEMÁTICAS
Como los operadores unarios (se les llama así porque requieren
sólo un argumento):
Identidad (+) → + 1 = 1
Cambio de signo (-) → - 6 = -6
Y los operadores binarios (requieren dos argumentos para
entregar el resultado) :
Exponenciación (potencia) (**) → 2 ** 4 = 16
Módulo (%) (resto de la división entera) → 6 % 4 = 2
Revisemos un ejemplo sólo con los operadores sencillos…
Fundamentos de programación
4. Fundamentos de Programación Universidad de Santiago de Chile
4
PRECEDENCIA DE OPERADORES
Fundamentos de programación
PRECEDENCIA DE OPERADORES
Para alterar las reglas de precedencia, podemos utilizar
paréntesis, al igual que en matemáticas
Por ejemplo, la operación anterior:
2 + 2 / 4 * 9 – 12 * 3
Podemos escribirla de la siguiente forma para que tenga la misma
precedencia de la expresión matemática:
2 + 2 / (4 * 9) – 12 * 3
Pero seguimos sin obtener el resultado deseado
Fundamentos de programación
5. Fundamentos de Programación Universidad de Santiago de Chile
5
TIPOS DE DATOS
Esto ocurre porque en la expresión todos los números con los que
se opera son enteros
Para Python, si una expresión sólo tiene números enteros,
entonces se asume que el usuario quiere una respuesta del
mismo tipo
Es común en los lenguajes de programación indicar el tipo de
dato, pues no sólo se trabaja con números, sino también con
letras, booleanos (verdadero y falso) y otros tipos de datos más
complejos
Veamos ahora las distintas representaciones que Python ofrece
para los números
Fundamentos de programación
TIPOS DE DATOS
En Python existen tres clases de números:
Enteros (int): para enteros en el intervalo [-2.147.483.648,
2.147.483.647]
1000 0000 0000 0000 0000 0000 0000 0000
0111 1111 1111 1111 1111 1111 1111 1111
Enteros largos (long): para enteros fuera del rango de los enteros
de 4 bytes (ej: 50394034940032L)
Flotantes o float: para números no enteros, no son iguales a los
números reales (ej: 2,54)
Fundamentos de programación
6. Fundamentos de Programación Universidad de Santiago de Chile
6
Como Python prefiere mantener el tipo de dato
Si se operan dos enteros, entonces Python intentará
devolver un resultado entero
Pero si se combinan tipos numéricos en una expresión
aritmética, Python generaliza todos los valores
involucrados en la subexpresiones a evaluar antes de
operarlos
Enteros largos son más generales que los enteros
Los flotantes son más generales que los enteros
largos y los enteros
TIPOS DE DATOS
Fundamentos de programación
Si escribimos el ejemplo de esta forma:
2 + 2 / (4.0 * 9) - 12 * 3
Nos entrega el mismo resultado que la calculadora, debido a que:
Hemos modificado la precedencia para que calcule la
multiplicación previo a la división
La primera operación (4.0 * 9), resulta en un flotante, por lo
que toda la expresión se va transformando a flotante paso a paso
TIPOS DE DATOS
Fundamentos de programación
7. Fundamentos de Programación Universidad de Santiago de Chile
7
2 + 2 / (4.0 * 9) - 12 * 3
2 + 2 / 36.0 – 12 * 3
2 + 0.05555555555555555 – 12 * 3
2 + 0.05555555555555555 – 36
2.05555555555555555 – 36
-33.944444444444443
TIPOS DE DATOS
Fundamentos de programación
2.0 + 2 /(4 * 9) - 12 * 3
2.0 + 2 / 36 - 12 * 3
2.0 + 0 - 12 * 3
2.0 + 0 – 36
2.0 – 36
-34.0
TIPOS DE DATOS
Nótese que si ponemos el
flotante en otra parte de la
expresión el resultado sigue
siendo errado
Debido a que el cambio de
tipo no afecta a la expresión
2 / 4 * 9
Por lo que Python la evalúa
como una expresión entera y
sólo realiza la conversión a
flotante en el último paso de
la evaluaciónFundamentos de programación
8. Fundamentos de Programación Universidad de Santiago de Chile
8
RECORDANDO VALORES
Supongamos que el resultado de la expresión anterior es parte de
una expresión más grande, por ejemplo:
Donde el resultado de la expresión anterior sólo es el exponente de π
con 16 decimales (3.1415926535897931)
Escribir la expresión completa podría significarnos un error y
tendríamos que volver a escribirla completa
Sin embargo, Python nos provee de una forma para almacenar
valores para no tener que escribirlos en repetidas ocasiones
Fundamentos de programación
ASIGNACIÓN
Para ello podemos usar la asignación, que es una sentencia con la
siguiente estructura:
Por ejemplo
resultado = 2 + 2 / (4.0 * 9) - 12 * 3
Con la asignación se definen variables y constantes para almacenar
valores
<Identificador> = <expresión>
¡Recuerden que no es una comparación ni una
equivalencia matemática!
Fundamentos de programación
9. Fundamentos de Programación Universidad de Santiago de Chile
9
Una asignación es una sentencia con la siguiente estructura:
• Reglas de un identificador:
– El primer carácter no puede ser
un dígito
– Puede llevar letras, dígitos y el
carácter subrayado ( _ )
– No puede coincidir con palabras
reservadas:
• and, assert, break, class,
continue, def, del, elif, else,
except, exec, finally, for, from,
global, if, import, in, is, lambda,
not, or, pass, print, raise,
return, try, while, yield
• Puede ser
– un valor constante (un
número o texto)
– una operación entre números
– una operación entre variables
y constantes previamente
declaradas
– Mezcla entre operaciones,
variables y números
<Identificador> = <expresión>
ASIGNACIÓN
Fundamentos de programación
Entonces, para la expresión anterior, podemos definir:
NUMERO_PI = 3.1415926535897931
expresion = 2 + 2 / (4.0 * 9) - 12 * 3
resultadoFinal = NUMERO_PI ** expresion
Que es equivalente a:
3.1415926535897931 ** (2 + 2 / (4.0 * 9) - 12 * 3)
Nótese que escribimos los nombres de los identificadores usando
distintas reglas, esto no es arbitrario
ASIGNACIÓN
Fundamentos de programación
10. Fundamentos de Programación Universidad de Santiago de Chile
10
El valor de π fue asignado al identificador NUMERO_PI, el cual está
escrito en mayúsculas, esto ocurre porque es una constante
Las constantes se escriben con mayúsculas y separando las
palabras con guiones bajos (_) y representan valores que no
cambian en el programa
En cambio tanto expresion como resultadoFinal se escriben con
minúsculas, debido a que son variables
Las variables se escriben en minúsculas y capitalizando la primera
letra de la segunda palabra si tiene más de una y representan
valores que pueden cambiar o sobreescribirse en un programa
CONSTANTES Y VARIABLES
Fundamentos de programación
Para ver el contenido de una variable o constante, definida
previamente, podemos usar el comando print
print resultadoFinal
Si queremos mostrar texto, podemos utilizar comillas para
indicar que se trata de texto
print " HOLA MUNDO “
También se pueden mezclar con más de un argumento
usando comas:
print "El resultado fue: ", resultadoFinal, ", con PI = ",
NUMERO_PI
COMANDO PRINT
Fundamentos de programación
11. Fundamentos de Programación Universidad de Santiago de Chile
11
EVALUANDO EXPRESIONES
Qué resulta si intentamos evaluar en Python
las siguientes expresiones:
– 2 + 4/(8 - 2**3)
– 2(4 + 5 ** 3 – 3 * 2 +5)
– 2 –(4 *(5 / 4) + 5 + (2 ** (4 + 2) - 3)))
Fundamentos de programación
EVALUANDO EXPRESIONES
Qué resulta si intentamos evaluar en Python
las siguientes expresiones:
– 2 + 4/(8 - 2**3)
– 2(4 + 5 ** 3 – 3 * 2 +5)
– 2 –(4 *(5 / 4) + 5 + (2 ** (4 + 2) - 3)))
Python nos entrega un error, no una solución
Fundamentos de programación
12. Fundamentos de Programación Universidad de Santiago de Chile
12
EVALUANDO EXPRESIONES
Qué resulta si intentamos evaluar en Python
las siguientes expresiones:
1) 2 + 4/(8 - 2**3)
2) 2(4 + 5 ** 3 – 3 * 2 +5)
3) 2 –(4 *(5 / 4) + 5 + (2 ** (4 + 2) - 3)))
Python nos entrega un error, no una solución
Fundamentos de programación
ERRORES
Cuándo Python encuentra algo que no hace
sentido, nos lo notifica a través de la
indicación de un error, por ejemplo para el
primer caso:
2 + 4/(8 - 2**3)
ZeroDivisionError: integer division or
modulo by zero
Este mensaje generado por Python, nos indica
que el error se ha producido por intentar
dividir algo por cero
Fundamentos de programación
13. Fundamentos de Programación Universidad de Santiago de Chile
13
ERRORES
Algunos errores, no se notifican con tanto
detalle, como por ejemplo aquellos que
Python indicó como:
SyntaxError: invalid syntax
En este caso, Python no intentó ejecutar lo
solicitado, pues encontró un error antes de
ello, en la sintaxis del código
Fundamentos de programación
ERRORES
Finalmente, si evaluamos la última expresión y le
quitamos dos paréntesis al final
2 -(4 *(5 / 4) + 5 + (2 ** (4 + 2) - 3)
Python no detecta el error, pues se queda esperando
a que cerremos los paréntesis
Del mismo modo Python no detectará como error si
queremos un resultado en flotante y le entregamos
solamente número enteros o enteros largos
Fundamentos de programación
14. Fundamentos de Programación Universidad de Santiago de Chile
14
Operadores matemáticos
Precedencia de operadores
Variables y constantes
Errores en Python
Comando print
CONTENIDOS DE HOY
Fundamentos de programación