🎨
Informática para ingeniería 2023-2024
  • Informática para ingeniería
  • Básico python
  • Estructuras de control
    • while
    • for
    • try...except
    • If, else, elif, while, for
    • Ejemplo. Ciclos anidados. Tablas de multiplicar
    • Método abreviado
    • ¿Qué hace zip() ?
  • Secuencias
  • Comparativas: Cadena, lista, tupla y conjunto
    • Ejemplos listas y funciones: Control de temperatura
    • Verificación del NIF
    • Ejemplo listas: control de temperaturas
  • Secuencias: Matriz
    • Definición: Matriz
    • Localizar valores únicos en una matriz
    • Ejemplo matrices: Suma y Multiplicación
    • verificar si una matriz es cuadrada
  • Funciones
    • Definición: funciones
    • Ejemplo de funciones
  • Módulos
    • Módulo. Definición
    • Ejemplos de Módulos: math y random
  • Método abreviado de comprensión de listas...
    • Comprensión de listas
  • Funciones- Matriz-Ejemplos
    • Ejemplo, cálculo de Nómina mensual
    • Ejemplo, cálculo de Nómina mensual (desde el programa principal)
    • Menú, matriz y funciones
    • Localizar valores únicos en una matriz. Usar Funciones
    • Ejemplo funciones, matriz, archivos: Recuento de votos
    • Matrices 2ª Prueba Evaluación Continua. Curso 2018-2019 Parcial. Prof MRD
    • Prueba Evaluación Continua. Curso 2018-2019. Examen 1. Prof. MRD
    • Gestión de una matriz de números enteros
  • Ejecutable
    • Crear un programa ejecutable
  • Archivo (ficheros)
    • Definición: archivos (ficheros)
  • Ejemplos de Matriz y archivos (ficheros)
    • ¿Cómo se multiplican dos matrices?
    • Crear una matriz a partir de un archivo
    • Pedir datos, guardarlos en una matriz y en un archivo
    • Cálcular la media de unos datos almacenados en un archivo
    • Leer archivo, modificar datos y guardarlos
  • Interfaz Gráfica
    • Definición: Interfaz Gráfica de Usuario (IGU)
      • Label
      • Button
      • Radiobutton y Checkbutton
      • LabelFrame
      • Listbox
      • Entry
      • Características comunes de Label, Entry, button, radiobutton checkbutton
      • ttk.Combobox
      • Tamaño de una ventana
    • Ejemplo de Entorno gráfico: RadioButton
    • Visualizar la especialidad y nombre de un alumno
    • Visualizar los datos introducidos
    • Sumar 10 a un número introducido
    • Cálculo del área de un triángulo
    • Cálculo del área de un Círculo. Y dibujo de un círculo
    • ¿Dos números son divisibles?
    • Introducir valores y graficar
    • Ejemplo de botón, lista
  • Ejemplos de interfaz gráfica y archivos
  • Entorno gráficos y archivos
    • Almacenar los datos de un alumno
Con tecnología de GitBook
En esta página
  • Enunciado
  • Función verificar
  • La función verificar_divisibilidad
  • Método grid
  • Método pack
  • Método pack, utilizando side
  • Metódo pack, utilizando messagebox
  1. Interfaz Gráfica

¿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()
AnteriorCálculo del área de un Círculo. Y dibujo de un círculoSiguienteIntroducir valores y graficar

Última actualización hace 1 año