2.2_-_Presentacion
-
Upload
ivana-korze -
Category
Documents
-
view
213 -
download
0
Transcript of 2.2_-_Presentacion
-
8/19/2019 2.2_-_Presentacion
1/29
CLASE 2
EXPRESIONES
MATEMÁTICAS
-
8/19/2019 2.2_-_Presentacion
2/29
INTRODUCCIÓN
El objetivo del curso es aprender las nociones básicasde programación
Programar signifca escriir ór!enes oins"r#cciones para que un computador puedaejecutarlas
Como los computadores no son máquinas inteligentes,necesitamos escribir estas instrucciones en un$eng#a%e que este pueda compren!er
Para ello usaremos….
-
8/19/2019 2.2_-_Presentacion
3/29
EXPRESIONESMATEMÁTICAS
Uno de los primeros pasos para aprender unlenguaje de programación es el uso de este pararea$i&ar ari"m'"ica (sica
Para ello Pyton nos provee de los operadoresmatemáticos inarios básicos!
S#ma (+) → 2 + 2 = 4
Res"a (-) → 4 – 5 = -1 M#$"ip$icación (*) → 3 * 4 = 12 Di)isión (/) → 8 / 2 = 4
" otros un poco más complejos…
-
8/19/2019 2.2_-_Presentacion
4/29
EXPRESIONESMATEMÁTICAS
Como los operadores #narios #se les llama as$porque requieren sólo #n arg#men"o%!
I!en"i!a! (+) → + 1 = 1 Camio !e signo (-) → - 6 = -6
" los operadores inarios #requieren dosargumentos para entregar el resultado% !
E*ponenciación #potencia% #&&% → 2 ** 4 = 16 Mó!#$o #&% #resto de la división entera% → 6% 4 = 2
'evisemos un ejemplo sólo con los operadores
-
8/19/2019 2.2_-_Presentacion
5/29
EXPRESIONESMATEMÁTICAS
(upongamos que tenemos la e)presión!
*ue, aparentemente, escrita en Pyton ser$a algocomo!
2 + 2 / 4 * 9 – 12 * 3
+*u resultado obtendr$amos si calculamos lae)presión en una calculadora-
+*u resultado entregar$a el intrprete de Pyton-
-
8/19/2019 2.2_-_Presentacion
6/29
EXPRESIONESMATEMÁTICAS
os resultados calculados por nosotrosy por Pyton son distintos por dosmotivos!
a prece!encia !e opera!ores, es decir,el or!en en que Pyton resuelve laoperación
El "ipo !e !a"o, que corresponde alcon%#n"o !e n+meros en donde Pyton
entrega el resultado
-
8/19/2019 2.2_-_Presentacion
7/29
PRECEDENCIA DEOPERADORES
-
8/19/2019 2.2_-_Presentacion
8/29
PRECEDENCIA DEOPERADORES
Para a$"erar $as reg$as !e prece!encia, podemosutili/ar parntesis, al igual que en matemáticas
Por ejemplo, la operación anterior!
2 + 2 / 4 * 9 – 12 * 3
Podemos escribirla de la siguiente 0orma para quetenga la misma precedencia de la e)presión
matemática!
2 + 2 / (4 * 9) – 12 * 3
Pero seguimos sin obtener el resultado deseado
-
8/19/2019 2.2_-_Presentacion
9/29
TIPOS DE DATOS Esto ocurre porque en la e)presión todos los
n1meros con los que se opera son en"eros Para Pyton, si una e*presión sólo tiene n1meros
enteros, entonces se asume que el usuario quiereuna respuesta del mismo "ipo
Es com1n en los lenguajes de programación indicarel tipo de dato, pues no sólo se trabaja con n1meros,sino tambin con letras, booleanos #verdadero y0also% y otros tipos de datos más complejos
2eamos aora las distintas representaciones quePyton o0rece para los n1meros
-
8/19/2019 2.2_-_Presentacion
10/29
TIPOS DE DATOS En Pyton e)isten tres clases de n1meros!
Enteros #int%! para enteros en el intervalo 34
567879:;79, 567879:;78<
Enteros largos #long%! para enteros 0uera del rangode los enteros de 7 bytes #ej! =>:?7>:7?7>>:5%
@lotantes o float! para n1meros no enteros, no son
ig#a$es a $os n+meros rea$es #ej! 5.=7%
-
8/19/2019 2.2_-_Presentacion
11/29
11
Como Pyton prefere man"ener e$ "ipo!e !a"o (i se operan !os en"eros, entonces Pyton
intentará devolver un resultado en"ero Pero si se cominan tipos numricos en unae)presión aritmtica, Pyton genera$i&a todos los valores involucrados en la
sube)presiones a evaluar antes de operarlosEnteros largos son más generales que los
enteros os ,o"an"es son m(s genera$es que los
enteros largos y los enteros
TIPOS DE DATOS
-
8/19/2019 2.2_-_Presentacion
12/29
12
(i escribimos el ejemplo de esta 0orma!
2 + 2 / (4.0 * 9) - 12 * 3
Aos entrega el mismo resultado que la calculadora,debido a que! Bemos mo!i-ca!o $a prece!encia para que
calcule la multiplicación previo a la división
a primera operación (4.0 * 9), resulta en unotante, por lo que toda la e)presión se va"rans.orman!o a ,o"an"e paso a paso
TIPOS DE DATOS
-
8/19/2019 2.2_-_Presentacion
13/29
13
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
-
8/19/2019 2.2_-_Presentacion
14/29
14
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
Aótese que si ponemosel otante en otra partede la e)presión elres#$"a!o sig#esien!o erra!o
Debido a que el cambiode tipo no a0ecta a lae)presión
2 / 4 * 9
Por lo que Pyton laeval1a como unae)presión entera y sólo
-
8/19/2019 2.2_-_Presentacion
15/29
RECORDANDO /ALORES
(upongamos que el resultado de la e)presión anteriores parte de una e)presión más grande, por ejemplo!
Donde el resultado de la e)presión anterior es sólo esel e)ponente de con 6; decimales#:.676=?5;=:=9?8?:6%
Escribir la e)presión completa podr$a signifcarnos unerror y tendr$amos que volver a escribirla completa
(in embargo, Pyton nos provee de una 0orma para
almacenar valores para no tener que escribirlos enre etidas ocasiones 15
-
8/19/2019 2.2_-_Presentacion
16/29
ASI0NACIÓN
Para ello podemos usar la asignación, que es unasentencia con la siguiente estructura!
Por ejemploresultao = 2 + 2 / (4!" * 9) - 12 * 3
Con la asignación se defnen variables y constantes
para almacenar valores 16
=
¡Recuerden que no es una comparacin niuna equi!a"encia ma#em$#ica%
-
8/19/2019 2.2_-_Presentacion
17/29
17
Una asignación es una sentencia con la siguienteestructura!
• 'eglas de unidentifcador! – El primer carácter no
puede ser un d$gito – Puede llevar letras, d$gitos
y el carácter subrayado # F% – Ao puede coincidir con
palabras reservadas!• an!1 asser"1 rea1
c$ass1 con"in#e1 !e.1
!e$1 e$i.1 e$se1 e*cep"1e*ec1 -na$$31 .or1 .rom1
• Puede ser – un valor constante #un
n1mero o te)to% – una operación entre
n1meros – una operación entre
variables y constantespreviamentedeclaradas
– Ge/cla entre
operaciones, variables
=
H(IJAHCIKA
-
8/19/2019 2.2_-_Presentacion
18/29
18
Entonces, para la e)presión anterior, podemos defnir!
&'R, 3.1419239931
epresion 2 + 2 / (4.0 * 9) - 12 * 3
resu"#adoina" &'R, ** epresion
*ue es equivalente a!
3.1419239931 ** (2 + 2 / (4.0 * 9) - 12 * 3)
Aótese que escribimos los nombres de losidentifcadores usando distintas reglas, esto no es
arbitrario
ASI0NACIÓN
CO S S
-
8/19/2019 2.2_-_Presentacion
19/29
19
El valor de 0ue asignado al identi0icador AUGE'LFPI,el cual está escrito en may1sculas, esto ocurre porquees una cons"an"e
as constantes se escriben con ma3+sc#$as y
separando las palabras con guiones bajos #F% yrepresentan valores que no camian en elprograma
En cambio tanto e)presion como resultado@inal seescriben con min1sculas, debido a que son )aria$es
as variables se escriben en min+sc#$as ycapi"a$i&an!o $a primera $e"ra !e $a seg#n!a
pa$ara si tiene más de una y representan valoresue ueden camiar o soreescriirse en un
CONSTANTES 6/ARIA7LES
-
8/19/2019 2.2_-_Presentacion
20/29
20
Para ver el contenido de una variable oconstante, !e-ni!a pre)iamen"e, podemosusar el comando print
#rint resu"#adoina"
(i queremos mostrar te)to, podemos utili/arcomillas para indicar que se trata de te)to
#rint 5 678 '& :
Mambin se pueden me/clar con más de unargumento usando comas!
#rint 5" resu"#ado ;ue< 5= resu"#adoina"= 5= con ,
COMANDO PRINT
-
8/19/2019 2.2_-_Presentacion
21/29
E2HNE H( EOP'E(ILAE(
-
8/19/2019 2.2_-_Presentacion
22/29
E2HUHADL EOP'E(ILAE(
*u resulta si intentamos evaluar enPyton las siguientes e)presiones! – 2 + 4/( - 2**3)
– 2(4 + ** 3 – 3 * 2 +) – 2 –(4 *( / 4) + + (2 ** (4 + 2) - 3)
-
8/19/2019 2.2_-_Presentacion
23/29
E2HUHADL EOP'E(ILAE(
*u resulta si intentamos evaluar enPyton las siguientes e)presiones! – 2 + 4/( - 2**3)
– 2(4 + ** 3 – 3 * 2 +) – 2 –(4 *( / 4) + + (2 ** (4 + 2) -
3)))
Pyton no entrega una solución, sinoun error
-
8/19/2019 2.2_-_Presentacion
24/29
E2HUHADL EOP'E(ILAE(
*u resulta si intentamos evaluar enPyton las siguientes e)presiones!1) 2 + 4/( - 2**3)
2) 2(4 + ** 3 – 3 * 2 +)3) 2 –(4 *( / 4) + + (2 ** (4 + 2) -
3)))
Pyton no entrega una solución, sinoun error
-
8/19/2019 2.2_-_Presentacion
25/29
E''L'E(
Cuándo Pyton encuentra algo queno ace sentido, nos lo notifca atravs de la indicación de un error,
por ejemplo para el primer caso!2 + 4/( - 2**3)
>eroi!isionrror< in#e?er di!ision ormodu"o @A Bero
Este mensaje generado por Pyton,nos indica que el error se aproducido por intentar dividir algopor cero
-
8/19/2019 2.2_-_Presentacion
26/29
E''L'E(
Hlgunos errores, no se notifcan contanto detalle, como por ejemploaquellos que Pyton indicó como!
CAn#arror< in!a"id sAn#a
En este caso, Pyton no intentóejecutar lo solicitado, pues encontróun error antes de ello, en la sin"a*is del código
-
8/19/2019 2.2_-_Presentacion
27/29
E''L'E(
@inalmente, si evaluamos la 1ltimae)presión y le quitamos dos parntesis alfnal2 -(4 *( / 4) + + (2 ** (4 + 2) - 3)
Pyton no detecta el error, pues se quedaesperando a que cerremos los parntesis
Del mismo modo Pyton no detectarácomo error si queremos un resultado enotante y le entregamos solamente
n1mero enteros o enteros largos
-
8/19/2019 2.2_-_Presentacion
28/29
28
Lperadores matemáticosPrecedencia de operadores2ariables y constantesErrores en Pyton
Comando print
CONTENIDOS DE 8O6
-
8/19/2019 2.2_-_Presentacion
29/29
29
9:
CONSULTAS