¿Dos números son divisibles?

Enunciado

Pedir dos números e indicar si son divisibles utilizando la biblioteca tkinter, con los dos métodos grid y pack.

En este ejemplo, se creará una ventana de Tkinter utilizando tk.Tk(). Luego, se agrega etiquetas y campos de entrada para que el usuario introduzaca los dos números. También agregamos un botón "Aceptar" que, cuando se presiona, llama a la función verificar_divisibilidad y función verificar.

Función verificar

Comprueba verifica si los datos introducidos son números.

def validar(valor,valor1):
    
    if valor.isdigit() and valor1.isdigit():
        valor=True
    else:
        valor=False
    return valor

La función verificar_divisibilidad

Obtiene los valores introducidos por el usuario de los campos de entrada y verifica si el primer número es divisible por el segundo número utilizando el operador % y viceversa. Previamente verifica que los datos introducidos sean valores numéricos con la función verificar.

def verificar_divisibilidad():
    
    num1 = entry_num1.get()
    num2 = entry_num2.get()
    valor=validar(num1,num2)
    if valor:
        if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
            texto1="Son divisibles"
            
        else:
            texto1="No son divisibles"
    else:
        texto1="Algún dato no es númerico"
    texto.set(texto1)

Método grid

import tkinter as tk
def validar(valor,valor1):
    
    if valor.isdigit() and valor1.isdigit():
        valor=True
    else:
        valor=False
    return valor
def verificar_divisibilidad():
    
    num1 = entry_num1.get()
    num2 = entry_num2.get()
    valor=validar(num1,num2)
    if valor:
        if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
            texto1="Son divisibles"
            
        else:
            texto1="No son divisibles"
    else:
        texto1="Algún dato no es númerico"
    texto.set(texto1)
        

# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550") 

# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.grid(row=0, column=0)

entry_num1 = tk.Entry(ventana)
entry_num1.grid(row=0, column=1)

# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.grid(row=1, column=0)

entry_num2 = tk.Entry(ventana)
entry_num2.grid(row=1, column=1)

# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.grid(row=2, columnspan=2)

# Etiqueta para mostrar el resultado

texto=tk.StringVar()
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.grid(row=3, columnspan=2)

# Iniciar el bucle de eventos
ventana.mainloop()

Método pack

import tkinter as tk

def validar(valor,valor1):
    
    if valor.isdigit() and valor1.isdigit():
        valor=True
    else:
        valor=False
    return valor
def verificar_divisibilidad():
    
    num1 = entry_num1.get()
    num2 = entry_num2.get()
    valor=validar(num1,num2)
    if valor:
        if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
            texto1="Son divisibles"
            
        else:
            texto1="No son divisibles"
    else:
        texto1="Algún dato no es númerico"
    texto.set(texto1)
# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550") 

# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.pack()

entry_num1 = tk.Entry(ventana)
entry_num1.pack()

# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.pack()

entry_num2 = tk.Entry(ventana)
entry_num2.pack()

# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.pack()
texto=tk.StringVar()
# Etiqueta para mostrar el resultado
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.pack()

# Iniciar el bucle de eventos
ventana.mainloop()

Método pack, utilizando side

import tkinter as tk

def validar(valor,valor1):
    
    if valor.isdigit() and valor1.isdigit():
        valor=True
    else:
        valor=False
    return valor
def verificar_divisibilidad():
    
    num1 = entry_num1.get()
    num2 = entry_num2.get()
    valor=validar(num1,num2)
    if valor:
        if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
            texto1="Son divisibles"
            
        else:
            texto1="No son divisibles"
    else:
        texto1="Algún dato no es númerico"
    texto.set(texto1)
# Crear la ventana
ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")

# ancho y alto de la ventana


# Etiqueta y campo de entrada para el primer número
label_num1 = tk.Label(ventana, text="Número 1:")
label_num1.pack(side=tk.LEFT)

entry_num1 = tk.Entry(ventana)
entry_num1.pack(side=tk.LEFT)

# Etiqueta y campo de entrada para el segundo número
label_num2 = tk.Label(ventana, text="Número 2:")
label_num2.pack(side=tk.LEFT)

entry_num2 = tk.Entry(ventana)
entry_num2.pack(side=tk.LEFT)

# Botón para verificar la divisibilidad
boton_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
boton_aceptar.pack()
texto=tk.StringVar()
# Etiqueta para mostrar el resultado
label_resultado = tk.Label(ventana, textvariable=texto)
label_resultado.pack()

# Iniciar el bucle de eventos
ventana.mainloop()

Metódo pack, utilizando messagebox

import tkinter as tk
from tkinter import messagebox
def validar(valor,valor1):
    
    if valor.isdigit() and valor1.isdigit():
        valor=True
    else:
        valor=False
    return valor

    
def verificar_divisibilidad():
    
    num1 = entry_num1.get()
    num2 = entry_num2.get()
    valor=validar(num1,num2)
    if valor:
        if int(num1) % int(num2)==0 or int(num2) % int(num1) == 0:
            messagebox.showinfo("Divisibilidad", f"{num1} es divisible por {num2}")
            
        else:
            messagebox.showinfo("Divisibilidad", f"{num1} no es divisible por {num2}")
    else:
        messagebox.showinfo(message="Algún dato no es númerico",title="Error")
    
    
    
    
    

ventana = tk.Tk()
ventana.title("Verificar Divisibilidad")
ventana.resizable(True, True)
# ancho y alto de la ventana
ventana.geometry("550x550") 

# Etiqueta y entrada para el primer número
label_num1 = tk.Label(ventana, text="Primer número:")
label_num1.pack()
entry_num1 = tk.Entry(ventana)
entry_num1.pack()

# Etiqueta y entrada para el segundo número
label_num2 = tk.Label(ventana, text="Segundo número:")
label_num2.pack()
entry_num2 = tk.Entry(ventana)
entry_num2.pack()

# Botón Aceptar
btn_aceptar = tk.Button(ventana, text="Aceptar", command=verificar_divisibilidad)
btn_aceptar.pack()

ventana.mainloop()

Última actualización