que padre tan idiota...saludos
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#Programado por Mini_Nauta, protohey.blogspot.com
#Version 1.0
#Este software esta licenciado bajo GNU V3
#http://www.gnu.org/licenses/gpl-3.0.html
#El propósito de este software es aprender y deglosar el software
#Modulos ---------------------------------
import os
#Funciones ---------------------------------
def trozar_lista(lista, operador):
"""Didive la lista a partir del operador
ya sea +, -, /, * para procesar los valores.
Retorna una tupla con los valores de tipo matematico
en ambos lados de la expresion.
trozar_lista(list lista, str operador): return tuple(a, b)"""
#se dividen la lista de 2 trozos marcando como centro el operador
#el if corresponde a un parchepara cuando se ingresan 2 signos -
#este funciona mientras existan mas de 2 signos -, entonces al cortar
#con index el primer signo - que corresponde a un signo negativo y no de resta
#se corta el string a partir del segundo signo - que corresponde a la resta
if lista.count('-') > 1:
trozo_izquierda = ''.join( lista[0 : buscar(lista, 2, operador)] )
else:
trozo_izquierda = ''.join( lista[0 : lista.index(operador)] )
trozo_derecha = ''.join( lista[(lista.index(operador) + 1) : len(lista)] )
#tratado de numeros negativos
if '-' in trozo_izquierda:
#eliminacion de signo -
trozo_izquierda = float( trozo_izquierda[1:len(trozo_izquierda)] )
#conversion a negativo
trozo_izquierda = trozo_izquierda * -1
if '-' in trozo_derecha:
#eliminacion de signo -
trozo_derecha = float( trozo_derecha[1:len(trozo_derecha)] )
#conversion a negativo
trozo_derecha = trozo_derecha * -1
#conversion a float si fuera necesario
if type(trozo_izquierda) != float:
trozo_izquierda = float(trozo_izquierda)
if type(trozo_derecha) != float:
trozo_derecha = float(trozo_derecha)
#conversion a entero si fuese necesario
if (trozo_izquierda - int(trozo_izquierda)) == 0:
trozo_izquierda = int(trozo_izquierda)
if (trozo_derecha - int(trozo_derecha)) == 0:
trozo_derecha = int(trozo_derecha)
#retorno de los 2 trozos de la lista
return (trozo_izquierda, trozo_derecha)
def sumar(lista):
"""Operacion de suma."""
trozos = trozar_lista(lista, '+')
print trozos[0] + trozos[1]
def restar(lista):
"""Operacion de resta."""
trozos = trozar_lista(lista, '-')
print trozos[0] - trozos[1]
def dividir(lista):
"""Operacion de division."""
trozos = trozar_lista(lista, '/')
if(trozos[1] == 0):
print "Math Error!"
else:
print trozos[0] / trozos[1]
def multiplicar(lista):
"""Operacion de multiplicar."""
trozos = trozar_lista(lista, '*')
print trozos[0] * trozos[1]
def Clear():
"""Limpia la consola."""
#windows
if os.name == "nt":
os.system("cls")
#unix
elif os.name == "posix":
os.system("clear")
def buscar(lista, index_num, to_index):
"""Busca el caracter indicado en una lista"""
a = 0
for i in lista:
if i == to_index:
a = a + 1
if a == index_num:
break
return a
#Programa ---------------------------------
#no se permiten operandos al principio
while(True):
#expresion a calcular
expresion = raw_input()
#mismo principio de las casio con el syntax error
if len(expresion) == 1:
if(expresion[0] == '+') or (expresion[0] == '-') or (expresion[0] == '/') or (expresion[0] == '*'):
print "Syntax error!"
else:
#in retorna true si encuentra lo que se busca en la lista
#no modificar orden de prescedencia de sentencias if-elif
#ya que estan en orden de prescedencia matematica para
#un correcto funcionamiento logico del programa.
#division
try:
if '/' in expresion:
dividir(expresion)
#multiplicacion
elif '*' in expresion:
multiplicar(expresion)
#suma
elif '+' in expresion:
sumar(expresion)
#resta
elif '-' in expresion:
restar(expresion)
#ayuda
elif ''.join(expresion) == "help":
Clear()
print "Basic Calculator by Mini_Nauta 1.0\n"
print "clear: clean the screen"
print "quit: close the calculator"
print "help: show the help menu"
#borrar pantalla
elif ''.join(expresion) == "clear":
Clear()
#salir
elif ''.join(expresion) == "quit":
break
else:
print "Invalid operation. You can write help for help menu!"
except:
print "Syntax Error!"