You are on page 1of 29

CLASE 2

EXPRESIONES
MATEMTICAS

INTRODUCCIN
El objetivo del curso es aprender las nociones bsicas
de programacin
Programar significa escribir rdenes o
instrucciones para que un computador pueda
ejecutarlas
Como los computadores no son mquinas inteligentes,
necesitamos escribir estas instrucciones en un
lenguaje que este pueda comprender
Para ello usaremos.

EXPRESIONES
MATEMTICAS
Uno de los primeros pasos para aprender un
lenguaje de programacin es el uso de este para
realizar aritmtica bsica
Para ello Python nos provee de los operadores
matemticos binarios bsicos:

Suma (+)
2 + 2 = 4
Resta (-)
4 5 = -1
Multiplicacin (*) 3 * 4 = 12
Divisin (/)
8 / 2 = 4

Y otros un poco ms complejos

EXPRESIONES
MATEMTICAS

Como los operadores unarios (se les llama as


porque requieren slo un argumento):
Identidad (+)
Cambio de signo (-)

+ 1 = 1
- 6 = -6

Y los operadores binarios (requieren dos


argumentos para entregar el resultado) :
Exponenciacin (potencia) (**) 2 ** 4 = 16
Mdulo (*) (resto de la divisin entera)
6
% 4 = 2
Revisemos un ejemplo slo con los operadores

EXPRESIONES
MATEMTICAS
Supongamos que tenemos la expresin:

Que, aparentemente, escrita en Python sera algo


como:
2 + 2 / 4 * 9 12 * 3
Qu resultado obtendramos si calculamos la
expresin en una calculadora?
Qu resultado entregara el intrprete de Python?

EXPRESIONES
MATEMTICAS
Los resultados calculados por nosotros
y por Python son distintos por dos
motivos:
La precedencia de operadores, es decir,
el orden en que Python resuelve la
operacin
El tipo de dato, que corresponde al
conjunto de nmeros en donde Python
entrega el resultado

PRECEDENCIA DE
OPERADORES

PRECEDENCIA DE
OPERADORES
Para alterar las reglas de precedencia, podemos
utilizar parntesis, al igual que en matemticas
Por ejemplo, la operacin anterior:
2 + 2 / 4 * 9 12 * 3
Podemos escribirla de la siguiente forma para que
tenga la misma precedencia de la expresin
matemtica:
2 + 2 / (4 * 9) 12 * 3
Pero seguimos sin obtener el resultado deseado

TIPOS DE DATOS
Esto ocurre porque en la expresin todos los
nmeros con los que se opera son enteros
Para Python, si una expresin slo tiene nmeros
enteros, entonces se asume que el usuario quiere
una respuesta del mismo tipo
Es comn en los lenguajes de programacin indicar
el tipo de dato, pues no slo se trabaja con nmeros,
sino tambin con letras, booleanos (verdadero y
falso) y otros tipos de datos ms complejos
Veamos ahora las distintas representaciones que
Python ofrece para los nmeros

TIPOS DE DATOS
En Python existen tres clases de nmeros:
Enteros (int): para enteros en el intervalo [2147483648, 2147483647]
Enteros largos (long): para enteros fuera del rango
de los enteros de 4 bytes (ej: 50394034940032L)
Flotantes o float: para nmeros no enteros, no son
iguales a los nmeros reales (ej: 2.54)

TIPOS DE DATOS
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 numricos en una
expresin aritmtica, Python generaliza
todos los valores involucrados en la
subexpresiones a evaluar antes de operarlos
Enteros largos son ms generales que los
enteros
Los flotantes son ms generales que los
enteros largos y los enteros 11

TIPOS DE DATOS
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 multiplicacin previo a la divisin
La primera operacin (4.0 * 9), resulta en un
flotante, por lo que toda la expresin se va
transformando a flotante paso a paso
12

TIPOS DE DATOS
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
13

TIPOS DE DATOS
Ntese que si ponemos
el flotante en otra parte 2.0 + 2 /(4 * 9) - 12 * 3
de la expresin el
2.0 + 2 / 36 - 12 * 3
resultado sigue
siendo errado
2.0 + 0 - 12 * 3
Debido a que el cambio
de tipo no afecta a la
expresin
2 / 4 * 9
Por lo que Python la
evala como una
expresin entera y slo

2.0 + 0 36
2.0 36
34.0
14

RECORDANDO VALORES
Supongamos que el resultado de la expresin anterior
es parte de una expresin ms grande, por ejemplo:

Donde el resultado de la expresin anterior es slo es


el exponente de con 16 decimales
(3.1415926535897931)
Escribir la expresin completa podra significarnos un
error y tendramos que volver a escribirla completa
Sin embargo, Python nos provee de una forma para
almacenar valores para no tener que escribirlos en
15
repetidas ocasiones

ASIGNACIN
Para ello podemos usar la asignacin, que es una
sentencia con la siguiente estructura:
<Identificador> = <expresin>

Recuerden que no es una comparacin ni


una equivalencia matemtica!
Por ejemplo
resultado = 2 + 2 / (4.0 * 9) - 12 * 3
Con la asignacin se definen variables y constantes
16
para almacenar valores

ASIGNACIN
Una asignacin es una sentencia con la siguiente
estructura:
<Identificador> = <expresin>
Reglas de un
identificador:
El primer carcter no
puede ser un dgito
Puede llevar letras, dgitos
y el carcter subrayado ( _
)
No puede coincidir con
palabras reservadas:
and, assert, break,
class, continue, def,
del, elif, else, except,
exec, finally, for, from,

Puede ser
un valor constante (un
nmero o texto)
una operacin entre
nmeros
una operacin entre
variables y constantes
previamente
declaradas
Mezcla entre
17
operaciones,
variables

ASIGNACIN
Entonces, para la expresin 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)

Ntese que escribimos los nombres de los


identificadores usando distintas reglas, esto no es
arbitrario
18

CONSTANTES Y
VARIABLES
El valor de fue asignado al identificador NUMERO_PI,
el cual est escrito en maysculas, esto ocurre porque
es una constante
Las constantes se escriben con maysculas 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 minsculas, debido a que son variables
Las variables se escriben en minsculas y
capitalizando la primera letra de la segunda
palabra si tiene ms de una y representan
valores
19
que pueden cambiar o sobreescribirse en un

COMANDO PRINT
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
Tambin se pueden mezclar con ms de un
argumento usando comas:
20

print "El resultado fue: ", resultadoFinal, ", con PI =

EVALE LAS EXPRESIONES

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)

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 no entrega una solucin, sino


un error

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 no entrega una solucin, sino


un error

ERRORES
Cundo Python encuentra algo que
no hace sentido, nos lo notifica a
travs de la indicacin 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

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 cdigo

ERRORES
Finalmente, si evaluamos la ltima
expresin y le quitamos dos parntesis al
final
2 -(4 *(5 / 4) + 5 + (2 ** (4 + 2) - 3)

Python no detecta el error, pues se queda


esperando a que cerremos los parntesis
Del mismo modo Python no detectar
como error si queremos un resultado en
flotante y le entregamos solamente
nmero enteros o enteros largos

CONTENIDOS DE HOY
Operadores matemticos
Precedencia de operadores
Variables y constantes
Errores en Python
Comando print

28

CONSULTAS

?
29

You might also like