Advertisement
JPablos

Área del círculo. Simple. Python

Jun 3rd, 2023
848
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 KB | Science | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sat Jun  3 23:27:44 2023
  4.  
  5. Este código permite calcular el área del círculo, el usuario debe
  6. ingresar el radio y puede elegir entre 'cm/metros' como unidades.
  7.  
  8. Se implementa un Control de Errores que sustituye "," por "." evitando el error
  9. de 'float', o genera un mensaje de error si se ingresan valores que no sean
  10. numéricos.
  11.  
  12. Utiliza tkinter para generar una interfaz gráfica.
  13.  
  14. @alpha
  15. """
  16.  
  17. import math
  18. import tkinter as tk
  19.  
  20.  
  21. def calcular_area():
  22.     """
  23.    Este código permite calcular el área del círculo, el usuario debe
  24.    ingresar el radio y puede elegir entre 'cm/metros' como unidades
  25.  
  26.    Returns
  27.    -------
  28.    Área del círculo.
  29.  
  30.    """
  31.     radio_str = entry_radio.get()
  32.     unidades = var_unidades.get()
  33.  
  34.     try:
  35.         radio = float(radio_str.replace(",", "."))
  36.     except ValueError:
  37.         resultado_text.config(state=tk.NORMAL)
  38.         resultado_text.delete("1.0", tk.END)
  39.         resultado_text.tag_configure(
  40.             "error", foreground="red", font=("Courier New", 10, "bold"))
  41.         resultado_text.insert(
  42.             tk.END, "Error: Radio inválido.\nIngrese un valor numérico.", "error")
  43.         resultado_text.config(state=tk.DISABLED)
  44.         return
  45.  
  46.     area = math.pi * (radio**2)
  47.     resultado_text.config(state=tk.NORMAL)
  48.     resultado_text.delete("1.0", tk.END)
  49.     resultado_text.insert(
  50.         tk.END, f"El área del círculo es: {area:.4f} {unidades}^2")
  51.     resultado_text.config(state=tk.DISABLED)
  52.  
  53.  
  54. # Crear ventana
  55. ventana = tk.Tk()
  56. ventana.title("Cálculo de área de un círculo")
  57.  
  58. # Etiqueta y entrada para el radio
  59. label_radio = tk.Label(ventana, text="Radio:")
  60. label_radio.pack()
  61. entry_radio = tk.Entry(ventana)
  62. entry_radio.pack()
  63.  
  64. # Opciones para las unidades
  65. var_unidades = tk.StringVar(value="cm")
  66.  
  67. radio_cm = tk.Radiobutton(
  68.     ventana, text="cm", variable=var_unidades, value="cm")
  69. radio_cm.pack()
  70. radio_metros = tk.Radiobutton(
  71.     ventana, text="metros", variable=var_unidades, value="metros")
  72. radio_metros.pack()
  73.  
  74. # Botón de calcular
  75. boton_calcular = tk.Button(
  76.     ventana, text="Calcular área", command=calcular_area)
  77. boton_calcular.pack()
  78.  
  79. # Resultado
  80. resultado_text = tk.Text(ventana, height=5, width=50)
  81. resultado_text.config(state=tk.DISABLED)
  82. resultado_text.pack()
  83.  
  84. # Iniciar bucle de eventos
  85. ventana.mainloop()
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement