MathMan / app.py
Vaibhavpro04's picture
MathMan.py
eb616b0 verified
import gradio as gr
import math
# 1. Write the function
def math_superpowers(number):
"""
Takes a number and returns its square, cube, and factorial.
"""
if number is None:
return None, None, None
# Check if the number is a negative integer or float for factorial safety
# (Factorial generally requires non-negative integers)
if number < 0 or not number.is_integer():
return number**2, number**3, "Factorial requires a non-negative integer"
val = int(number)
square = val ** 2
cube = val ** 3
factorial = math.factorial(val)
# Return as a list/tuple to populate multiple output boxes
return square, cube, factorial
# 2. Wrap the function in a Gradio Interface
# We map 1 input to 3 outputs
demo = gr.Interface(
fn=math_superpowers,
inputs=gr.Number(label="Enter a Number"),
outputs=[
gr.Number(label="Square"),
gr.Number(label="Cube"),
gr.Number(label="Factorial")
],
title="Math Superpowers Calculator",
description="Enter a number to see its Square, Cube, and Factorial instantly!"
)
# 3. Launch the app with share=True as requested
demo.launch(share=True)