Skip to content

Commit eacebd7

Browse files
authored
Create Calc.py
1 parent a71618f commit eacebd7

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

other/Calc.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
from flask import Flask, request, render_template_string
2+
3+
app = Flask(__name__)
4+
5+
def calculate(num1: float, num2: float, operation: str) -> float:
6+
"""
7+
Perform basic arithmetic operations: add, subtract, multiply, divide.
8+
9+
>>> calculate(2, 3, 'add')
10+
5
11+
>>> calculate(5, 3, 'subtract')
12+
2
13+
>>> calculate(4, 2, 'multiply')
14+
8
15+
>>> calculate(10, 2, 'divide')
16+
5.0
17+
>>> calculate(5, 0, 'divide')
18+
Traceback (most recent call last):
19+
...
20+
ValueError: Division by zero is not allowed.
21+
"""
22+
if operation == "add":
23+
return num1 + num2
24+
elif operation == "subtract":
25+
return num1 - num2
26+
elif operation == "multiply":
27+
return num1 * num2
28+
elif operation == "divide":
29+
if num2 == 0:
30+
raise ValueError("Division by zero is not allowed.")
31+
return num1 / num2
32+
else:
33+
raise ValueError(f"Unknown operation: {operation}")
34+
35+
# HTML template for the web interface
36+
template = """
37+
<!DOCTYPE html>
38+
<html>
39+
<head>
40+
<title>Flask Calculator</title>
41+
<style>
42+
body { font-family: Arial, sans-serif; text-align: center; padding: 50px; background: #f7f7f7; }
43+
input, select { padding: 10px; margin: 5px; width: 150px; }
44+
input[type=submit] { width: auto; cursor: pointer; }
45+
.result { margin-top: 20px; font-size: 1.5em; color: #27ae60; }
46+
h1 { color: #2c3e50; }
47+
</style>
48+
</head>
49+
<body>
50+
<h1>Flask Calculator</h1>
51+
<form method="POST">
52+
<input type="number" name="num1" step="any" placeholder="First Number" required>
53+
<input type="number" name="num2" step="any" placeholder="Second Number" required>
54+
<br>
55+
<select name="operation">
56+
<option value="add">Add (+)</option>
57+
<option value="subtract">Subtract (-)</option>
58+
<option value="multiply">Multiply (×)</option>
59+
<option value="divide">Divide (÷)</option>
60+
</select>
61+
<br>
62+
<input type="submit" value="Calculate">
63+
</form>
64+
{% if result is not none %}
65+
<div class="result">Result: {{ result }}</div>
66+
{% endif %}
67+
</body>
68+
</html>
69+
"""
70+
71+
@app.route("/", methods=["GET", "POST"])
72+
def home():
73+
result = None
74+
if request.method == "POST":
75+
try:
76+
num1 = float(request.form["num1"])
77+
num2 = float(request.form["num2"])
78+
op = request.form["operation"]
79+
result = calculate(num1, num2, op)
80+
except Exception as e:
81+
result = str(e)
82+
return render_template_string(template, result=result)
83+
84+
if __name__ == "__main__":
85+
app.run(debug=True)

0 commit comments

Comments
 (0)