• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

[Python] Calculadora

5 mensagens neste tópico

Aqui fica uma excelente calculadora que fiz agora recorrendo ao módulo math do Python. :)

from math import *
import sys
old_help = help
def help(x = ''):
if x:
	old_help('math.%s' % x)
else:
	old_help('math')
try:
print "\nWelcome to djthyrax's calculator!\n"
print "To see built-in functions, just type help()"
print "Wanna know how to use function NAME?\nJust type help('NAME')"
while 1:
	try:
		ans = eval(raw_input(">>> "))
	except KeyboardInterrupt:
		print
	except EOFError:
		raise EOFError
	except:
		print "Error: %s" % str(sys.exc_info()[1])
	else:
		if type(ans) in [type(1), type(1.0)]:
			print ans
		else:
			print
except EOFError:
print
except:
print "Woops!"

30 linhas, nada mau eh?

Para ignorar o que se escreveu (género de AC nas calculadoras), ctrl+c. Para sair da calculadora, é só fazer EOF (ctrl+d em sistemas unix, ctrl+z em windows).

EDIT: Alterei uma coisinha pequenina.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bah, fizeste batota ;)

Praticamente é só esta linha

ans = eval(raw_input(">>> "))

E não sei se sabes, mas podes substituir o eval(raw_input(">>> ")) por input(">>> ").

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E o sqrt não funca por exemplo... ;)

Só se for aí...

[djthyrax@dawn ~]$ python lulz.py

Welcome to djthyrax's calculator!

To see built-in functions, just type help()

Wanna know how to use function NAME?

Just type help('NAME')

>>> sqrt(2)

1.41421356237

>>> sqrt(3)

1.73205080757

>>> sqrt(1)

1.0

>>>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora