Spaces:
Runtime error
Runtime error
Download app.py from MuhammadKhuram/SimpleCalculator: direct link, hf CLI and curl.
- Browser
- Download file 2.43 kB
-
https://huggingface.co/spaces/MuhammadKhuram/SimpleCalculator/resolve/main/app.py
- Command line
-
hf download hf://spaces/MuhammadKhuram/SimpleCalculator/app.py
-
curl -L -o app.py https://huggingface.co/spaces/MuhammadKhuram/SimpleCalculator/resolve/main/app.py
2.43 kB
| import streamlit as st | |
| import math | |
| st.set_page_config(page_title="Advanced Calculator", layout="centered") | |
| st.title("🧮 Advanced Calculator") | |
| st.write("Supports: +, -, *, /, sqrt, power, log, ln") | |
| # Select operation | |
| operation = st.selectbox( | |
| "Choose Operation", | |
| ["Addition (+)", "Subtraction (-)", "Multiplication (*)", "Division (/)", | |
| "Square Root (sqrt)", "Power (x^y)", "Log base 10 (log)", "Natural Log (ln)"] | |
| ) | |
| # Input fields | |
| if operation in ["Addition (+)", "Subtraction (-)", "Multiplication (*)", "Division (/)"]: | |
| num1 = st.number_input("Enter first number") | |
| num2 = st.number_input("Enter second number") | |
| elif operation == "Power (x^y)": | |
| num1 = st.number_input("Enter base") | |
| num2 = st.number_input("Enter exponent") | |
| else: | |
| num1 = st.number_input("Enter number") | |
| # Calculate button | |
| if st.button("Calculate"): | |
| try: | |
| if operation == "Addition (+)": | |
| result = num1 + num2 | |
| elif operation == "Subtraction (-)": | |
| result = num1 - num2 | |
| elif operation == "Multiplication (*)": | |
| result = num1 * num2 | |
| elif operation == "Division (/)": | |
| if num2 == 0: | |
| st.error("Division by zero!") | |
| else: | |
| result = num1 / num2 | |
| st.success(f"Result: {result}") | |
| elif operation == "Square Root (sqrt)": | |
| if num1 < 0: | |
| st.error("Cannot take square root of negative number!") | |
| else: | |
| result = math.sqrt(num1) | |
| st.success(f"Result: {result}") | |
| elif operation == "Power (x^y)": | |
| result = math.pow(num1, num2) | |
| st.success(f"Result: {result}") | |
| elif operation == "Log base 10 (log)": | |
| if num1 <= 0: | |
| st.error("Log undefined for non-positive numbers!") | |
| else: | |
| result = math.log10(num1) | |
| st.success(f"Result: {result}") | |
| elif operation == "Natural Log (ln)": | |
| if num1 <= 0: | |
| st.error("Log undefined for non-positive numbers!") | |
| else: | |
| result = math.log(num1) | |
| st.success(f"Result: {result}") | |
| # Show result for basic operations | |
| if operation in ["Addition (+)", "Subtraction (-)", "Multiplication (*)"]: | |
| st.success(f"Result: {result}") | |
| except Exception as e: | |
| st.error(f"Error: {e}") |