Ir para conteúdo
Fórum Script Brasil
  • 0

Calculadora No Python


Marcoaajf

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
alguém tem algum código de calculadora ou um objeto calculadora (sem ser a do sistema) para incorporar no software?? valeu!!

Que tal uma caixa de texto que calculasse qualquer expressão numérica/pythônica? Seria bem mais útil e poderosa do que uma mera calculadora. Isso você poderia fazer com a função eval() e com a instrução exec.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
HAHAHAHAHA!!! você é terrivel!!! vamo ver até onde eu vou....

Hehehe... :lol: Você conhece a rede IRC ou o mIRC? Se não, saiba que é tipo um bate-papo. Então, certa vez eu fiz um bot (um robô) para IRC que podia executar códigos em Python (mostrando o resultado direto na tela, para todo mundo) e que ainda por cima citava Goethe! :D

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Graymalkin, você vai ter que começar.... não vai adiantar muito eu colocar coisas como....

def soma():

print("\n Soma \n")

try:

c=input("val1: ")

d=input("val2: ")

except...... dá o primeiro passo pra saber como você tá pensando.... ainda mais que você quer usar o eval....

abração

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz um basicão, usando wxPython:

import wx
import sys
import StringIO

class CalcExp(wx.Frame):
    def __init__(self, parent, titulo):
        self.Objetos = {}

        wx.Frame.__init__(self, parent, -1, titulo, size=(230, 250))
        painel = wx.Panel(self, -1, size=(200, 100))
        self.Expressao = wx.TextCtrl(painel, 1, "", wx.Point(10, 10), style=wx.TE_PROCESS_ENTER, size=(200, 20))
        self.Resultado = wx.TextCtrl(painel, 2, "", wx.Point(10, 40), style=wx.TE_MULTILINE, size=(200, 100))
        wx.EVT_TEXT_ENTER(self, 1, self.Calcular)
        self.Show(True)

    def Calcular(self, e):
        expressao = self.Expressao.GetValue()
        sIO = StringIO.StringIO()
        
        sys.stdout = sIO
        
        try:
            resultado = "%s = %s" % (expressao, eval(expressao, self.Objetos)) #Tentando uma expressão
        except Exception:
            try:
                exec expressao in self.Objetos #Tentando uma instrução
                resultado = expressao
            except Exception: #Não é nenhum dos dois!
                resultado = "#erro#"

        s = sIO.getvalue()
        self.Expressao.SetValue("")
        if s != "":
            self.Resultado.SetValue("%s => %s" % (expressao, s))
        else:
            self.Resultado.SetValue(str(resultado))
            
        
        e.Skip()
        

app = wx.PySimpleApp()

j = CalcExp(None, "Calculador de Expressões")

app.MainLoop()
Basta digitar a expressão e pressionar ENTER. Exemplos (digite na ordem ou observe os objetos utilizados):
a = 2
b = 3
a+b
print a+b
2+2
[x**2 for x in range(10)]
lista = [1, 2, 3, 4, 5]
for n in lista: print n
def soma(n1, n2): return n1+n2
soma(2, 3)
len("teste")
2==2
"teste"!="teste"

Certo? ;) Faça uns testes aí e se algo não funcionar, me fale.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...