Encontrar el error en un código como este es una de las razones por las que podría necesitar un depurador:
#! / usr / bin / python
de tkinter import *
raíz = Tk ()
this_is_an_answer = False
signo = ”
número = 0
memoria = 0
main_string = StringVar ()
main_string.set (número)
Entrada (root, textvariable = main_string) .grid (fila = 0, columna = 0, columnas = 4)
def check_if_this_is_an_answer ():
global this_is_an_answer
if this_is_an_answer: wipe ()
this_is_an_answer = False
def press1 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 1
main_string.set (str (número))
def press2 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 2
main_string.set (str (número))
def press3 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 3
main_string.set (str (número))
def press4 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 4
main_string.set (str (número))
def press5 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 5
main_string.set (str (número))
def press6 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 6
main_string.set (str (número))
def press7 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 7
main_string.set (str (número))
def press8 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 8
main_string.set (str (número))
def press9 ():
check_if_this_is_an_answer ()
número global
número = número * 10
número = número + 9
main_string.set (str (número))
def press0 ():
check_if_this_is_an_answer ()
número global
número = número * 10
main_string.set (str (número))
def wipe ():
número global
memoria global
número = 0
memoria = 0
main_string.set (str (número))
def plus ():
evaluar()
memoria global, número, signo, this_is_an_answer
this_is_an_answer = False
signo = ‘+’
memoria = número
main_string.set (‘Ingrese el número para agregar.’)
número = 0
def menos ():
evaluar()
memoria global, número, signo, this_is_an_answer
this_is_an_answer = False
signo = ‘-‘
memoria = número
main_string.set (‘Ingrese el número para restar.’)
número = 0
tiempos de def ():
evaluar()
memoria global, número, signo, this_is_an_answer
this_is_an_answer = False
signo = ‘*’
memoria = número
main_string.set (‘Ingrese el número para multiplicar’)
número = 0
def divide ():
evaluar()
memoria global, número, signo, this_is_an_answer
this_is_an_answer = False
signo = ‘/’
memoria = flotante (número)
main_string.set (‘Ingrese el número para dividir por’.)
número = 0
def evaluar ():
memoria global, número, signo, this_is_an_answer
si signo == ‘+’: número = memoria + número
if sign == ‘-‘: número = memoria – número
if sign == ‘*’: número = memoria * número
si signo == ‘/’ y el número no es 0: número = memoria / número
si número == int (número): número = int (número)
si no (sign == ‘/’ y number == 0): main_string.set (number)
else: main_string.set (“No se puede dividir por cero”)
signo = ”
this_is_an_answer = True
Botón (raíz, texto = ‘7’, comando = presionar 7). Cuadrícula (fila = 1, columna = 0, columnas = 1)
Botón (raíz, texto = ‘8’, comando = prensa8) .grid (fila = 1, columna = 1, columnas = 1)
Botón (raíz, texto = ‘9’, comando = presionar 9) .grid (fila = 1, columna = 2, columnas = 1)
Botón (raíz, texto = ‘4’, comando = presionar 4). Cuadrícula (fila = 2, columna = 0, columnas = 1)
Botón (raíz, texto = ‘5’, comando = presionar 5). Cuadrícula (fila = 2, columna = 1, columnas = 1)
Botón (raíz, texto = ‘6’, comando = presionar 6). Cuadrícula (fila = 2, columna = 2, columnas = 1)
Botón (raíz, texto = ‘1’, comando = prensa1) .grid (fila = 3, columna = 0, columnas = 1)
Botón (raíz, texto = ‘2’, comando = prensa2) .grid (fila = 3, columna = 1, columnas = 1)
Botón (raíz, texto = ‘3’, comando = prensa3) .grid (fila = 3, columna = 2, columnas = 1)
Botón (raíz, texto = ‘+’, comando = más) .grid (fila = 4, columna = 3, columnas = 1)
Botón (raíz, texto = ‘-‘, comando = menos) .grid (fila = 3, columna = 3, columnas = 1)
Botón (raíz, texto = ‘X’, comando = veces). Cuadrícula (fila = 2, columna = 3, columnas = 1)
Botón (raíz, texto = ‘/’, comando = dividir) .grid (fila = 1, columna = 3, columnas = 1)
Botón (raíz, texto = ‘=’, comando = evaluar) .grid (fila = 4, columna = 2, columnas = 1)
Botón (raíz, texto = ‘CE’, comando = borrar) .grid (fila = 4, columna = 0, columnas = 1)
Botón (raíz, texto = ‘0’, comando = prensa0) .grid (fila = 4, columna = 1, columnas = 1)
root.mainloop ()
Y ahora imagine lo que sucede si segmento este código por simplicidad y lo pongo en archivos separados, y cuando ejecuta el bucle principal no está seguro de cuál de los archivos tiene el error …