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()