You are on page 1of 8

Calculadora en Python a modo de introduccion al lenguaje

en: 16/03/2006, 20:40:35

Bueno pues como el titulo dice este codigo lo he hecho de manera que podamos ver ciertas caracteristicas de Python, ni que decir tiene que para hacer una calculadora no hace falta toda esta mandanga. Intentare explicar que hace cada cosa pero ya os aviso que no soy muy bueno explicandome y tengo tendencia a liar mas al que me pregunta que a aclararle el asunto
Cdigo #by woody for ziberzone.net :D #gracias a shoot por su paciencia conmigo #y por corregirme los fallos :P import os we=1 class operaciones: def suma(self, numero1, numero2): return numero1 + numero2 def resta(self, numero1, numero2): return numero1 - numero2 def multiplicacion(self, numero1, numero2): return numero1 * numero2 def division(self, numero1, numero2): return numero1 / numero2 while we==1: opcion=raw_input("""Que tipo de operacion quieres hacer?:\n a)Sumar\n b)Restar\n c)Multiplicar\n d)Dividir\n e)Salir\nEscribe la opcion: """) if opcion=="a": try: os.system("clear") numero1=(raw_input(' introduce primer numero:' )) numero1=int(numero1) numero2=(raw_input(' introduce segundo numero:' )) numero2=int(numero2) calcular=operaciones()

print calcular.suma(numero1, numero2) except: pass seguir=raw_input("Deseas Continuar?(s/n): ") if seguir=="s": we=1 else: print "FINALIZADO" we=0 elif opcion=="b": try: os.system("clear") numero1=(raw_input(' introduce primer numero:' )) numero1=int(numero1) numero2=(raw_input(' introduce segundo numero:' )) numero2=int(numero2) calcular=operaciones() print calcular.resta(numero1, numero2) except: pass seguir=raw_input("Deseas Continuar?(s/n): ") if seguir=="s": we=1 else: print "FINALIZADO" we=0 elif opcion=="c": try: os.system("clear") numero1=(raw_input(' introduce primer numero:' )) numero1=int(numero1) numero2=(raw_input(' introduce segundo numero:' )) numero2=int(numero2) calcular=operaciones() print calcular.multiplicacion(numero1, numero2) except:

pass seguir=raw_input("Deseas Continuar?(s/n): ") if seguir=="s": we=1 else: print "FINALIZADO" we=0 elif opcion=="d": try: os.system("clear") numero1=(raw_input(' introduce primer numero:' )) numero1=float(numero1) numero2=(raw_input(' introduce segundo numero:' )) numero2=float(numero2) calcular=operaciones() print calcular.division(numero1, numero2) except: pass seguir=raw_input("Deseas Continuar?(s/n): ") if seguir=="s": we=1 else: print "FINALIZADO" we=0 elif opcion=="e": print "FINALIZADO" we=0 else: we=1

Bueno pues explicaremos esto un poco:

Cdigo

import os we=1 class operaciones: def suma(self, numero1, numero2): return numero1 + numero2 def resta(self, numero1, numero2): return numero1 - numero2 def multiplicacion(self, numero1, numero2): return numero1 * numero2 def division(self, numero1, numero2): return numero1 / numero2

Bien lo primero que hacemos es importar la biblioteca os, que entre otras cosas tiene la funcion de limpiar la consola. Acto seguido declaramos una variable llamada we que nos servira para saber si queremos salir del programa o no. Lo siguiente es definir la clase operaciones, las clases son conjuntos de objetos, que son objetos? pues son funciones, ya explicaremos en otro hilo las clases. Definimos la funcion suma pasandole el contenido de las variables numero1 y numero2, lo mismo para las funciones de resta, multiplicacion, y division

Cdigo while we==1: opcion=raw_input("""Que tipo de operacion quieres hacer?:\n a)Sumar\n b)Restar\n c)Multiplicar\n d)Dividir\n e)Salir\nEscribe la opcion: """) if opcion=="a": try: os.system("clear") numero1=(raw_input(' introduce primer numero:' ))

numero1=int(numero1) numero2=(raw_input(' introduce segundo numero:' )) numero2=int(numero2) calcular=operaciones() print calcular.suma(numero1, numero2) except: pass seguir=raw_input("Deseas Continuar?(s/n): ") if seguir=="s": we=1 else: print "FINALIZADO" we=0

Empieza el bucle while que estara ejecutandose hasta que el usuario decida parar el programa. Seguido del while tenemos un raw_imput que nos captura lo que escribe el usuario, al ejecutar el programa nos mostrara una lista de opciones y con raw_imput capturaremos la que quiere usar el usuario. Despues tenemos:

Cdigo if opcion=="a":

esto es una simple comprobacion con un if, en este caso comprueba que sea "a" lo que ha introducido y de ser se ejecutara el codigo que le sigue. Tambien tenemos un try: que lo usamos para controlar los errores, en caso de error no para la ejecucion si no que saltara hasta el except: que esta abajo y ejecutara el codigo que tenga. os.system("clean") nos limpia la consola Ahora vemos que volvemos a capturar con raw_imput, en este caso le estamos pidiendo al user un numero que metemos en numero1 Tambien se aprecia que cambiamos la variable de tipo, esto es para que veais que lo que capturamos con raw_imput es un str y que no podemos sumar, si no lo cambiamos en lugar de la suma nos concatenaria las 2 variables, en este caso pasamos a int el str, en el caso de la division pasaremos a float para poder usar decimales

Lo mismo con el siguiente numero

Cdigo calcular=operaciones()

Esto nos crea un puntero que nos manda a la clase operaciones.

Cdigo print calcular.suma(numero1, numero2)

Con esto llamamos al puntero que apunta a la clase y dentro de esa clase a la funcion suma, le pasamos las variables numero1 y numero2 e imprimimos el resultado que nos devuelve la funcion. Ahora vemos el except: que mencionabamos antes, si se escribiera una letra y lo que esperamos es un numero try nos mandaria que se ejecutase el except: y este ejecutaria el pass que lo que hace es pasar del error y continuar el codigo Despues tenemos
Cdigo seguir=raw_input("Deseas Continuar?(s/n): ")

Aqui el usuario decide si sigue con el programa o si quiere salir, con el


Cdigo if seguir=="s":

comprobamos que en el raw_imput haya introducido "s" (acordemonos que lo que ha capturado en el raw_imput lo tenemos en la variable "seguir"), si es asi pone la variable we a 1 (aunque esto no seria cierto ya que we siempre va a estar a 1 ya que si esta a cero se saldria del programa). else: con este else hacemos que si la variable seguir no tiene el caracter "s" nos imprima FINALIZADO y nos ponga la variable we a 0 we=0 de este modo el bucle while no se vuelve a ejecutar. Bueno a partir de aqui se repite el codigo, solo cambia el tipo de operacion. Pues ese es el codigo, espero que os anime a meteros en Python.

esto seria lo veremos al ejecutarlo:


Cdigo %python calculadora.py Que tipo de operacion quieres hacer?: a)Sumar b)Restar c)Multiplicar d)Dividir e)Salir Escribe la opcion: a #suma #Aqui nos limpia la pantalla. introduce primer numero:1 introduce segundo numero:1 2 Deseas Continuar?(s/n): s Que tipo de operacion quieres hacer?: a)Sumar b)Restar c)Multiplicar d)Dividir e)Salir Escribe la opcion: b #resta #limpia introduce primer numero:2 introduce segundo numero:1 1 Deseas Continuar?(s/n): s Que tipo de operacion quieres hacer?: a)Sumar b)Restar c)Multiplicar d)Dividir e)Salir Escribe la opcion: c #multiplicacion #limpia introduce primer numero:2 introduce segundo numero:2 4 Deseas Continuar?(s/n): s Que tipo de operacion quieres hacer?: a)Sumar b)Restar

c)Multiplicar d)Dividir e)Salir Escribe la opcion: d #division #limpia introduce primer numero:3 introduce segundo numero:2 1.5 Deseas Continuar?(s/n): s Que tipo de operacion quieres hacer?: a)Sumar b)Restar c)Multiplicar d)Dividir e)Salir Escribe la opcion: e #salir FINALIZADO %

Para ejecutar el codigo solo teneis que crear un txt y pegarlo, (y tener el python instalado claro ) lo guardais como loquequerais.py y ya lo teneis, Yo uso FreeBSD y esto seria para sistemas UNIX/UNIX-like buscar sobre python para windows.Para ejecutarlo seria asi: python loquesea.py

Salu2 P.D. ya he avisado que tengo tendencia a liar mas que a explicar