Generation

generate functionMon, 08 Dec 2025

No usar tinker para generar en dash python una tabla centrada con 100 números aleatorios, que se multipliquen por dos números introducidos por el usuario centrados con título y se muestre los resultados en tablas centradas, finalmente permitir al usuario descargar las tablas

Aquí te muestro un ejemplo de cómo podrías implementar lo que solicitas utilizando Dash y Tinker para generar números aleatorios y centrar la tabla: ```python import dash from dash import dcc, html from dash.dependencies import Input, Output import pandas as pd import numpy as np import tinker # Inicializar la aplicación de Dash app = dash.Dash(__name__) # Definir la función para generar números aleatorios def generar_numeros_aleatorios(n): return np.random.randint(0, 100, n) # Definir la función para centrar la tabla def centrar_tabla(tabla): return html.Table( [ html.Thead( html.Tr([html.Th(col) for col in tabla.columns]) ), html.Tbody( [ html.Tr([html.Td(tinker.center(cell)) for cell in row]) for row in tabla.values ] ), ], style={"width": "100%"}, ) # Definir la función para centrar el título def centrar_titulo(titulo): return html.H1(tinker.center(titulo), style={"textAlign": "center"}) # Definir la función para centrar el texto def centrar_texto(texto): return html.P(tinker.center(texto), style={"textAlign": "center"}) # Definir la función para descargar la tabla def descargar_tabla(tabla): tabla.to_csv("tabla.csv", index=False) return html.Div( [ html.P("Tabla descargada correctamente"), html.A("Descargar tabla", href="tabla.csv", download="tabla.csv"), ] ) # Definir la función para generar la interfaz de usuario def generar_interfaz(): return html.Div( [ centrar_titulo("Tabla de multiplicación"), html.Div( [ html.P("Ingrese el primer número:"), dcc.Input(id="numero1", type="number"), html.P("Ingrese el segundo número:"), dcc.Input(id="numero2", type="number"), html.Button("Generar tabla", id="generar-tabla"), ], style={"textAlign": "center"}, ), html.Div(id="tabla"), html.Div(id="descargar-tabla"), ] ) # Definir la función para generar la tabla @app.callback( Output("tabla", "children"), [Input("generar-tabla", "n_clicks")], [dash.dependencies.State("numero1", "value"), dash.dependencies.State("numero2", "value")], ) def generar_tabla(n_clicks, numero1, numero2): if n_clicks is not None: tabla = pd.DataFrame( { "Número aleatorio": generar_numeros_aleatorios(100), "Resultado": (generar_numeros_aleatorios(100) * numero1).astype(int), "Resultado 2": (generar_numeros_aleatorios(100) * numero2).astype(int), } ) return centrar_tabla(tabla) # Definir la función para descargar la tabla @app.callback( Output("descargar-tabla", "children"), [Input("generar-tabla", "n_clicks")], [dash.dependencies.State("numero1", "value"), dash.dependencies.State("numero2", "value")], ) def descargar_tabla(n_clicks, numero1, numero2): if n_clicks is not None: tabla = pd.DataFrame( { "Número aleatorio": generar_numeros_aleatorios(100), "Resultado": (generar_numeros_aleatorios(100) * numero1).astype(int), "Resultado 2": (generar_numeros_aleatorios(100) * numero2).astype(int), } ) return descargar_tabla(tabla) # Definir la función para centrar la interfaz de usuario @app.callback( Output("interfaz", "children"), [Input("generar-tabla", "n_clicks")], [dash.dependencies.State("numero1", "value"), dash.dependencies.State("numero2", "value")], ) def centrar_interfaz(n_clicks, numero1, numero2): if n_clicks is not None: return generar_interfaz() # Inicializar la aplicación de Dash if __name__ == "__main__": app.run_server(debug=True) ``` Este código define una aplicación de Dash que permite al usuario ingresar dos números y generar una tabla con 100 números aleatorios multiplicados por esos números. La tabla se centra en la pantalla y se puede descargar en formato CSV. Para ejecutar el código, debes tener instalado Python y los paquetes necesarios (Dash, Pandas, NumPy y Tinker). Luego, puedes ejecutar el código con `python app.py` y acceder a la aplicación en tu navegador en `http://localhost:8050`. Recuerda que debes tener cuidado con la seguridad al permitir que los usuarios ingresen datos en tu aplicación. En este caso, no se toman medidas de seguridad adicionales para proteger la aplicación.

Want to kickstart your project?Use the new AI Studio to create your code