|
import gradio as gr |
|
from fractions import Fraction |
|
|
|
def calculator(num1, operation, num2=None): |
|
if operation == "add": |
|
result = Fraction(num1) + Fraction(num2) |
|
elif operation == "subtract": |
|
result = Fraction(num1) - Fraction(num2) |
|
elif operation == "multiply": |
|
result = Fraction(num1) * Fraction(num2) |
|
elif operation == "divide": |
|
result = Fraction(num1) / Fraction(num2) |
|
elif operation == "square": |
|
result = Fraction(num1) * Fraction(num1) |
|
elif operation == "cube": |
|
result = Fraction(num1) * Fraction(num1) * Fraction(num1) |
|
elif operation == "exponential": |
|
result = pow(Fraction(num1), Fraction(num2)) |
|
elif operation == "frac add": |
|
result = Fraction(num1) + Fraction(num2) |
|
elif operation == "frac subtract": |
|
result = Fraction(num1) - Fraction(num2) |
|
elif operation == "frac multiply": |
|
result = Fraction(num1) * Fraction(num2) |
|
elif operation == "frac divide": |
|
result = Fraction(num1) / Fraction(num2) |
|
return result |
|
|
|
demo = gr.Interface( |
|
fn=calculator, |
|
inputs=[ |
|
gr.Number(value=4), |
|
gr.Radio(["add", "subtract", "multiply", "divide", "square", "cube", "exponential", "frac add", "frac subtract", "frac multiply", "frac divide"]), |
|
gr.Number(value=2, label="Second Number (optional)", optional=True) |
|
], |
|
outputs="number", |
|
examples=[ |
|
[5, "add", 3], |
|
[4, "divide", 2], |
|
[-4, "multiply", 2.5], |
|
[0, "subtract", 1.2], |
|
[2, "exponential", 3], |
|
[Fraction(3, 4), "frac add", Fraction(1, 4)], |
|
[Fraction(3, 4), "frac subtract", Fraction(1, 4)], |
|
[Fraction(3, 4), "frac multiply", Fraction(1, 4)], |
|
[Fraction(3, 4), "frac divide", Fraction(1, 4)], |
|
], |
|
title="Scientific Calculator", |
|
description="Here's a sample scientific calculator. Enjoy! Code by: Freddy Aboulton Improved by: Usually3 and ChatGpt" |
|
) |
|
|
|
demo.launch() |
|
|