calc_avg_std / app.py
akki2825's picture
rm rounding off
7394131 verified
import gradio as gr
def calculate_stats(numbers):
"""
Calculate the average and standard deviation of a list of numbers.
"""
if not numbers:
return "Error: No numbers provided"
try:
if isinstance(numbers, str):
numbers = numbers.split(',')
numbers = [float(num.strip()) for num in numbers]
average = sum(numbers) / len(numbers)
std_dev = (sum((x - average) ** 2 for x in numbers) / len(numbers)) ** 0.5
return f"Average: {average}\nStandard Deviation: {std_dev}"
except ValueError:
return "Error: All inputs must be numeric"
except Exception as e:
return f"Error: {str(e)}"
def main():
with gr.Blocks() as demo:
gr.Markdown("# Average and Standard Deviation Calculator")
with gr.Row():
numbers_input = gr.Textbox(label="Enter numbers (separate by commas)")
calculate_button = gr.Button("Calculate")
with gr.Row():
result_output = gr.Markdown(label="Results")
def calculate_and_display(numbers):
stats = calculate_stats(numbers)
return stats
calculate_button.click(
fn=calculate_and_display,
inputs=[numbers_input],
outputs=[result_output]
)
demo.launch()
if __name__ == "__main__":
main()