File size: 1,982 Bytes
53403c1
14f0522
564b4e2
9f72ed4
53403c1
14f0522
53403c1
14f0522
53403c1
14f0522
53403c1
14f0522
53403c1
14f0522
53403c1
14f0522
626683a
14f0522
48a3aa1
14f0522
48a3aa1
14f0522
48a3aa1
14f0522
48a3aa1
14f0522
 
48a3aa1
53403c1
 
 
 
48a3aa1
9f72ed4
53403c1
 
 
 
 
 
 
15aba26
14f0522
 
 
 
53403c1
9f72ed4
14f0522
53403c1
 
564b4e2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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()