Re: kleine Mathe-Spielereien
Verfasst: Freitag 5. April 2024, 09:43
5.4.2024
Wahrscheinlich gibt es für das obige Problem
keine Lösung mit den vorhandenen Mitteln.
KI(?)
Hier mein erweitertes 'MATHEASS'
OSWALD
Wahrscheinlich gibt es für das obige Problem
keine Lösung mit den vorhandenen Mitteln.
KI(?)
Hier mein erweitertes 'MATHEASS'
OSWALD
Code: Alles auswählen
########## MATHEASS WERKSTATT
# importing Tkinter and math
import math
from math import *
import numpy as np
import tkinter
from tkinter import *
class calc:
def getandreplace(self):
self.expression = self.e.get()
self.newtext=self.expression.replace('/','/')
self.newtext=self.newtext.replace('x','*')
def equals(self):
"""when the equal button is pressed"""
self.getandreplace()
try:
# evaluate the expression using the eval function
self.value= eval(self.newtext)
except SyntaxError or NameError:
self.e.delete(0,END)
self.e.insert(0,'Eingabe falsch')
else:
self.e.delete(0,END)
self.e.insert(0,self.value)
def squareroot(self):
"""squareroot method"""
self.getandreplace()
try:
# evaluate the expression using the eval function
self.value= eval(self.newtext)
except SyntaxError or NameError:
self.e.delete(0,END)
self.e.insert(0,'Eingabe Fehler !')
else:
self.sqrtval=math.sqrt(self.value)
self.e.delete(0,END)
self.e.insert(0,self.sqrtval)
def square(self):
"""square method"""
self.getandreplace()
try:
#evaluate the expression using the eval function
self.value= eval(self.newtext)
except SyntaxError or NameError:
self.e.delete(0,END)
self.e.insert(0,'Falsche Eingabe')
else:
self.sqval=math.pow(self.value,2)
self.e.delete(0,END)
self.e.insert(0,self.sqval)
def clearall(self):
"""when clear button is pressed,clears the text input area"""
self.e.delete(0,END)
def clear1(self):
self.txt=self.e.get()[:-1]
self.e.delete(0,END)
self.e.insert(0,self.txt)
def action(self,arge):
"""pressed button's value is inserted into the end of the text area"""
self.e.insert(END,arge)
def __init__(self,master):
#"""Constructor method"""#
master.title(" M A T H E A S S ")
self.e = Entry(master)
self.e.grid(row=0,column=0,columnspan=6,pady=6)
self.e.focus_set() #Sets focus on the input text area
# Generating Buttons
Button(master,text="=",width=15,height=5 ,fg="white",
bg="blue",command=lambda:self.equals()).grid(
row=3, column=4,columnspan=2)
Button(master,text='CLEARALL',width=7,height=5,
fg="red", bg="light blue", ###########
command=lambda:self.clearall()).grid(row=1, column=4)
Button(master,text='Clear',width=7,height=5,
fg="white",bg="green", ############ light green
command=lambda:self.clear1()).grid(row=1, column=5)
Button(master,text="+",width=7,height=5,
fg="white",bg="green",
command=lambda:self.action('+')).grid(row=4, column=3)
Button(master,text="X",width=7,height=5,
fg="blue",bg="orange",
command=lambda:self.action('x')).grid(row=2, column=3)
Button(master,text="minus",width=7,height=5,
fg="black",bg="light green",
command=lambda:self.action('-')).grid(row=3, column=3)
Button(master,text="Divide",width=7,height=5,
fg="blue",bg="orange",
command=lambda:self.action('/')).grid(row=1, column=3)
Button(master,text="%",width=7,height=5,
fg="red",bg="light green",
command=lambda:self.action('%')).grid(row=4, column=2)
Button(master,text="7",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action('7')).grid(row=1, column=0)
Button(master,text="8",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(8)).grid(row=1, column=1)
Button(master,text="9",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(9)).grid(row=1, column=2)
Button(master,text="4",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(4)).grid(row=2, column=0)
Button(master,text="5",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(5)).grid(row=2, column=1)
Button(master,text="6",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(6)).grid(row=2, column=2)
Button(master,text="1",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(1)).grid(row=3, column=0)
Button(master,text="2",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(2)).grid(row=3, column=1)
Button(master,text="3",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(3)).grid(row=3, column=2)
Button(master,text="0",width=7,height=5,
fg="white",bg="blue",
command=lambda:self.action(0)).grid(row=4, column=0)
Button(master,text="Point",width=7,height=5,
fg="black",bg="white",
command=lambda:self.action('.')).grid(row=4, column=1)
Button(master,text="(",width=7,height=5,
fg="blue",bg="orange",
command=lambda:self.action('(')).grid(row=2, column=4)
Button(master,text=")",width=7,height=5,
fg="blue",bg="orange",
command=lambda:self.action(')')).grid(row=2, column=5)
Button(master,text="1/**",width=7,height=5,
fg="white",bg="black",
command=lambda:self.squareroot()).grid(row=1, column=6)
Button(master,text="**",width=7,height=5,
fg="white",bg="black",
command=lambda:self.square()).grid(row=2, column=6)
Button(master,text=" exp = e",width=7,height=5,
fg="white",bg="red",
command =lambda :self.action('e')).grid(row=3, column=6)
Button(master,text=" pi",width=7,height=5,
fg="white",bg="red",
command =lambda :self.action('pi')).grid(row=4, column=6)
Button(master,text="sin()",width=7,height=5,
fg="white",bg="red",
command =lambda :self.action('sin')).grid(row=4, column=4)
Button(master,text="cos()",width=7,height=5,
fg="white",bg="red",
command =lambda :self.action('cos')).grid(row=4, column=5)
root = Tk()
root.geometry("600x600+300+300")
obj=calc(root) # object instantiated
root.mainloop()