Está en la página 1de 8

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Clase N3 Python como calculadora


Actividad
Python es el lenguaje de programacin que aprenderemos este semestre. Python es un lenguaje interpretado de propsito general que sustenta diferentes paradigmas de programacin, pero nos enfocaremos solamente en el paradigma procedural-imperativo, es decir, en programas que describen procedimientos detallados para un computador de cmo hacer una tarea. Como Python es un lenguaje interpretado, un usuario puede interactuar directamente con su intrprete y utilizarlo, por ejemplo, como una calculadora. Intentemos lo siguiente: Ejemplo 1 Escribamos 2+5 Python responde 7, el resultado de la operacin matemtica 2+5

>>> 2 + 5 7 >>>

Ahora, hagamos algo ms complejo: 7+10+100-4*2 Python responde 109 que es el resultado de la operacin matemtica ingresada

>>> 7 + 10 + 100 4 * 2 109 >>>

Ahora, apoyndonos los aos de experiencia que tenemos con operaciones aritmticas respondamos:

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Pregunta 1 Sume dos nmeros enteros. Haga una resta cuyo resultado sea -1. Calcule la cantidad de horas totales por semana, considerando que un da tiene 24 horas. Divida un mltiplo de 5 por un mltiplo de 4.

Qu le ha llamado la atencin en este ejercicio?

Como se podemos darnos cuenta, las expresiones aritmticas se pueden expresar igual a como lo conocemos y hacemos habitualmente: (Nmero) (Operador) (Nmero) Esto se conoce como notacin infija, y es la que usamos cada vez que escribimos una operacin matemtica. Notarn que una diferencia puede estar en la multiplicacin, en donde su operador corresponde al smbolo (asterisco). Python provee, adems, un par de operaciones que pueden ser de utilidad: Resto o mdulo ( % ) y la Potencia (), y tambin dos operaciones unarias: Identidad ( + ) y cambio de signo ( - ). Ejemplo 2 Ingrese las siguientes expresiones a Python:
>>> 2 ** 3 8 >>> 2 ** 0 1 >>>27 % 5 2 >>> 25 % 5 0 >>>

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Pregunta 2 Cul sera el resultado de: 2 ** 2 * 2 ? Es lo mismo 2 * 3 + 2 qu 2 + 3 * 2 ? Qu resulta de : a) +4 b) -4 c) +-+----+-+-4 2.4) 2.5) 2.6) 2 + 3 * 4 ** 5 * 2 Es equivalente -2 ** 2 a 4? Son equivalentes siguientes expresiones y por qu? a) +-+---+-+-4 b) ++---++-4 por qu?

2.1) 2.2) 2.3)

En los ejercicios anteriores quizs notaron algunos problemas con los resultados esperados y los obtenidos. Esto ocurre por una sencilla razn: la precedencia de operadores. Ejemplo 3 Si tenemos que resolver 5+5**3/5*4-10*3, con qu operacin comenzamos? Si las operaciones se realizaran por el orden de aparicin de los operadores, de izquierda a derecha, el resultado sera: 5+5 = 10, 10**3 = 1000, 1000/5 = 200, 200*4 = 800, 800-10 = 790, y 790*3 = 2370. Pero Python nos entrega un resultado distinto:
>>> 5 + 5 ** 3 / 5 * 4 10 * 3 75 >>>

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Pregunta 3 En la hoja de respuesta, reordene la expresin de tal forma que al resolverse de izquierda a derecha d el mismo resultado que lo obtenido con Python.

La precedencia de operadores son reglas sencillas que permiten a Python ordenar la evaluacin de expresiones. Este orden se puede modificar con el uso de parntesis, tal y como se realiza en matemticas.

Pregunta 4 En la hoja de respuestas, escriba mediante el uso de parntesis la siguiente operacin: 2+4*3+2**21 de tal forma que: 4.1) 4.2) 4.3) El resultado sea 17 El resultado sea 20 El resultado sea 101

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Podemos ver que Python usa los parntesis como en la aritmtica tradicional. Pero el uso de parntesis conlleva una preocupacin extra: que stos estn balanceados.

Ejemplo 4 Miremos lo que hace el intrprete de Python cuando nos equivocamos en el balanceo de parntesis:
>>> ((((((2+((3**2)/5*3)+3*2-(-3*4))+5)+5)-3)-2)*2)-1) SyntaxError: invalid syntax >>>

El intrprete no interpreta nuestra expresin, slo nos seala que existe un error sintctico.

Ahora que hemos usado Python como una calculadora bsica, supongamos que necesitamos calcular el permetro y rea de un crculo. Como sabemos, las frmulas respectivas son:

Si trabajamos con una buena precisin decimal, nos tardaremos bastante en escribir cada clculo, y es muy fcil que nos equivoquemos en algn decimal. Ejemplo 5 Supongamos que calculamos el permetro y el rea de un crculo con radio de 2.452335634384712 cm, y que usamos el valor con 18 decimales.
>>> 2 * 3.141592653589793238 * 2.452335634384712 15.408479226238953 >>> 3.141592653589793238 * 2.452335634384712 ** 2 18.893381339091178 >>>

Y si ahora queremos calcular el permetro de una crculo con el doble del radio?
>>> 2 * 3.141592653589793238 * 2 * 2.452335634384712 30.816958452477905 >>> 3.141592653589793238 * (2 * 2.452335634384712) ** 2 75.573525356364712 >>>

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Qu sucede si lo que necesitamos es calcular repetidamente valores, o si requerimos de valores previos obtenidos para continuar con nuestros clculos? Pues la digitacin se torna tediosa. Para mejorar esta situacin, podemos pedirle a Python que recuerde valores vistos anteriormente.

Ejemplo 6
>>> PI = 3.141592653589793238 >>> radio = 2.452335634384712 >>> 2 * PI * radio 15.408479226238953 >>> PI * radio ** 2 18.893381339091178 >>> 2 * PI * (2 * radio) 30.816958452477905 >>> PI * (2 * radio) ** 2 75.573525356364712 >>>

Con esto, indicamos a Python que PI contiene el valor 3,1415 y que radio contiene 2.452 Noten que el smbolo igual (=) no es una comparacin ni una equivalencia matemtica, sino que una asignacin, es decir una asociacin de un valor (en la memoria del computador) a un nombre. Cuando Python encuentra un nombre en alguna expresin, ste se evala como el valor que le fue asignado previamente. Habremos notado que escribimos el nombre PI en maysculas, mientras que el nombre radio en minsculas. Este no ha sido por capricho, sino que por una convencin entre programadores, quienes decidieron usar maysculas para identificar constantes, nombres cuyo valor se asigna una sola vez en el programa (no se cambian), y minsculas para identificar variables, nombres cuyo valor puede ir cambiando a medida que avanza un programa. Tambin debemos notar que el intrprete de Python hizo diferencia con la sentencias de asignacin del ejemplo. Cuando escribimos expresiones aritmticas, el intrprete nos mostr los resultados inmediatamente. Sin embargo, al asignar, no se muestra inmediatamente el contenido de la variable o constante. Podemos conocer el valor de una constante o variable de dos formas.

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Ejemplo 7
>>> radio 2.452335634384712 >>> PI 3.1415926535897931 >>> print "El radio del circulo es ", radio El radio del circulo es 2.45233563438 >>>

Una opcin entonces es escribir una expresin que slo contiene el nombre de la variable o constante. La otra, es usar la sentencia print, que toma una lista de mensajes y expresiones (separador con comas) y los despliega por pantalla en el mismo orden en que se especifican.

Pregunta 5 En la hoja de respuestas, escriba la secuencia de instrucciones para calcular el promedio y la desviacin estndar de las edades, en meses, de los integrantes del grupo. Haga que al final se despliegue el mensaje La edad promedio del grupo es P mas/menos SD meses (no use tildes, porque Python podra reclamar). Recuerde que el promedio se calcula con la frmula:

Y la desviacin estndar como:

Donde son las edades de los miembros del grupo y N es el nmero de integrantes del grupo. Sean pillos y usen variables y constantes en su secuencia de instrucciones.

Universidad de Santiago de Chile Facultad de Ingeniera Fundamentos de Computacin y Programacin

Reglas para identificadores Las variables y constantes pueden tener cualquier nombre, siempre y cuando cumplan con algunas sencillas reglas: 1. Un identificador debe estar formado por: a. Letras: minsculas, maysculas b. Dgitos c. Caracter de subrayado ( _ ) 2. El primer caracter no puede ser un dgito 3. No puede coincidir con una palabra reservada del lenguaje Python 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 4. Debe ser representativo, ya que hace ms entendible el programa. Por ejemplo: radio, pi, sumando1, nombre, edad.

También podría gustarte