Version 2 of Calculator: An AI-Powered Python Program

Posted by

Calculator version 2 using AI Python

Calculator version 2

Introducing the updated version of our calculator powered by AI Python. This advanced calculator utilizes artificial intelligence to provide accurate calculations in a fraction of the time.

Features:

  • AI-powered calculations
  • Improved accuracy
  • Enhanced user experience

How it works:

Our calculator version 2 is built using Python programming language with AI capabilities. This allows the calculator to understand complex mathematical expressions and provide quick and accurate results.

Benefits:

  • Save time on calculations
  • Reduce errors in calculations
  • Improve productivity

Get started:

Try out our calculator version 2 today and experience the power of AI Python in your calculations. Simply enter your mathematical expression and let the AI do the rest!

0 0 votes
Article Rating
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@johnsim3722
3 months ago

I see now how Geordi La Forge was able to program the Enterprise so easily! The computer doing its own programming.

@TJMoir
3 months ago

Here's the code.

import tkinter as tk

import math

class ScientificCalculator:

def __init__(self, master):

self.master = master

master.title("Scientific Calculator")

master.configure(bg='silver')

self.display = tk.Entry(master, font=("Arial", 24), width=30, justify='right', bd=10, relief="sunken", bg='white')

self.display.grid(row=0, column=0, columnspan=5, padx=10, pady=10)

self.buttons = {}

self.create_buttons()

self.radians = True

def create_buttons(self):

buttons = [

'C', '(', ')', '/', 'sqrt',

'7', '8', '9', '*', 'x^y',

'4', '5', '6', '-', 'sin',

'1', '2', '3', '+', 'cos',

'0', '.', '=', 'tan', '1/x',

'arcsin', 'arccos', 'arctan', 'Rad', 'exp(x)',

'π', '+/-', '%', 'ln', 'log10', 'x^2'

]

row = 1

col = 0

for i, button in enumerate(buttons):

command = lambda x=button: self.click(x)

self.buttons[button] = tk.Button(self.master, text=button, font=("Arial", 18), command=command, height=2, width=5, bd=5, relief="raised", bg='lightgray')

self.buttons[button].grid(row=row, column=col, sticky='nsew', padx=5, pady=5)

col += 1

if col > 4:

col = 0

row += 1

def click(self, key):

if key == '=':

try:

expression = self.display.get()

if '%' in expression:

nums = expression.split('%')

result = float(nums[0]) * float(nums[1]) / 100

else:

result = eval(expression)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'C':

self.display.delete(0, tk.END)

elif key == '+/-':

try:

current_value = float(self.display.get())

new_value = -current_value

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(new_value))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'x^2':

try:

value = float(self.display.get())

result = value ** 2

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key in ['sin', 'cos', 'tan']:

try:

value = float(self.display.get())

if not self.radians:

value = math.radians(value)

result = getattr(math, key)(value)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key in ['arcsin', 'arccos', 'arctan']:

try:

value = float(self.display.get())

if key in ['arcsin', 'arccos'] and (value < -1 or value > 1):

raise ValueError("Input out of range for arcsin/arccos")

result = getattr(math, 'a' + key[3:])(value)

if not self.radians:

result = math.degrees(result)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except Exception as e:

self.display.delete(0, tk.END)

self.display.insert(tk.END, f"Error: {str(e)}")

elif key == 'sqrt':

try:

result = math.sqrt(float(self.display.get()))

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'x^y':

self.display.insert(tk.END, '**')

elif key == 'exp':

self.display.insert(tk.END, 'math.exp(')

elif key == '1/x':

try:

result = 1 / float(self.display.get())

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'Rad':

self.radians = not self.radians

self.buttons['Rad'].config(text="Rad" if self.radians else "Deg")

elif key == 'exp(x)':

try:

value = float(self.display.get())

result = math.exp(value)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'π':

self.display.insert(tk.END, str(math.pi))

elif key == 'ln':

try:

value = float(self.display.get())

result = math.log(value)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

elif key == 'log10':

try:

value = float(self.display.get())

result = math.log10(value)

self.display.delete(0, tk.END)

self.display.insert(tk.END, str(result))

except:

self.display.delete(0, tk.END)

self.display.insert(tk.END, "Error")

else:

self.display.insert(tk.END, key)

root = tk.Tk()

for i in range(1, 7):

root.grid_rowconfigure(i, weight=1)

for i in range(5):

root.grid_columnconfigure(i, weight=1)

calculator = ScientificCalculator(root)

root.mainloop()