0Hojoon0 commited on
Commit
8985e55
·
verified ·
1 Parent(s): 37329e9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +90 -0
app.py ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ # Create a layout for the calculator
4
+ layout = gr.Layout(
5
+ gr.InputBox(id='num1', label='Number 1'),
6
+ gr.InputBox(id='num2', label='Number 2'),
7
+ gr.Dropdown(id='operator', options=['+', '-', '*', '/', '^', 'sqrt', 'exp']),
8
+ gr.Button(id='equal', label='='),
9
+ gr.TextOutput(id='result')
10
+ )
11
+
12
+ # Define a function for each operation
13
+ def add():
14
+ num1 = float(input_box.get_value('num1'))
15
+ num2 = float(input_box.get_value('num2'))
16
+ return num1 + num2
17
+
18
+ def subtract():
19
+ num1 = float(input_box.get_value('num1'))
20
+ num2 = float(input_box.get_value('num2'))
21
+ return num1 - num2
22
+
23
+ def multiply():
24
+ num1 = float(input_box.get_value('num1'))
25
+ num2 = float(input_box.get_value('num2'))
26
+ return num1 * num2
27
+
28
+ def divide():
29
+ num1 = float(input_box.get_value('num1'))
30
+ num2 = float(input_box.get_value('num2'))
31
+ return num1 / num2
32
+
33
+ def power():
34
+ num1 = float(input_box.get_value('num1'))
35
+ num2 = float(input_box.get_value('num2'))
36
+ return num1 ** num2
37
+
38
+ def sqrt():
39
+ num1 = float(input_box.get_value('num1'))
40
+ return num1 ** 0.5
41
+
42
+ def exp():
43
+ num1 = float(input_box.get_value('num1'))
44
+ return num1 ** Math.E
45
+
46
+ # Set up the buttons and outputs
47
+ button_equal = gr.Button(id='equal', label='=')
48
+ button_add = gr.Button(id='add', label='+')
49
+ button_subtract = gr.Button(id='subtract', label='-')
50
+ button_multiply = gr.Button(id='multiply', label='*')
51
+ button_divide = gr.Button(id='divide', label='/')
52
+ button_power = gr.Button(id='power', label='^')
53
+ button_sqrt = gr.Button(id='sqrt', label='√')
54
+ button_exp = gr.Button(id='exp', label='e^x')
55
+
56
+ output = gr.TextOutput(id='result', text='')
57
+
58
+ # Set up the event handlers
59
+ def update_output(sender):
60
+ global output
61
+ if sender == button_equal:
62
+ num1 = float(input_box.get_value('num1'))
63
+ num2 = float(input_box.get_value('num2'))
64
+ output.text = f'{num1} {sender.label} {num2} = {num1 {sender.label} num2}'
65
+ elif sender == button_add or sender == button_subtract or sender == button_multiply or sender == button_divide:
66
+ num1 = float(input_box.get_value('num1'))
67
+ num2 = float(input_box.get_value('num2'))
68
+ result = None
69
+ if sender == button_add:
70
+ result = add()
71
+ elif sender == button_subtract:
72
+ result = subtract()
73
+ elif sender == button_multiply:
74
+ result = multiply()
75
+ else:
76
+ result = divide()
77
+ output.text = f'{num1} {sender.label} {num2} = {result}'
78
+ elif sender == button_power or sender == button_sqrt or sender == button_exp:
79
+ num1 = float(input_box.get_value('num1'))
80
+ num2 = float(input_box.get_value('num2'))
81
+ result = None
82
+ if sender == button_power:
83
+ result = power()
84
+ elif sender == button_sqrt:
85
+ result = sqrt()
86
+ else:
87
+ result = exp()
88
+ output.text = f'{num1} {sender.label} {num2} = {result}'
89
+
90
+ # Run the application