Я пытаюсь сделать калькулятор с двумя полями ввода в CodeSkulptor с помощью модуля simple gui. Я не могу понять, что делаю не так - PullRequest
0 голосов
/ 08 мая 2020

Пытаюсь сделать калькулятор с двумя полями ввода в CodeSkulptor с помощью модуля simple gui. Я не могу понять, что делаю не так. Это моя ссылка: http://www.codeskulptor.org/#user47_kHjBVKqs2k_1 .py Я создал две переменные и не могу понять, как изменить переменную на то, что вводит человек.

import simplegui

# intialize globals
Number1 = 0
Number2 = 0
result = 0


def output():
    """prints contents of store and operand"""
    global Number1, Number2, result
    print "Number 1 = ", Number1
    print "Number 2 = ", Number2
    print "Result = ", result
    print ""

def add():
    """ add operand to store"""
    global Number1, Number2, result
    result = Number2 + Number1
    output()

def sub():
    """ subtract operand from store"""
    global Number1, Number2, result
    result = Number1 - Number2
    output()

def mult():
    """ multiply store by operand"""
    global Number1, Number2, result
    result = Number1 * Number2
    output()

def div():
    """ divide store by operand"""
    global Number1, Number2, result
    result = Number1 / Number2
    output()

def enter1(t):
    global Number1
    Number1 = int(t)
    output()

def enter2(w):
    global Number2
    Number2 = int(w)
    output()

# create frame
f = simplegui.create_frame("Calculator",300,300)

# register event handlers and create control elements
f.add_button("Print", output, 100)
f.add_button("Add", add, 100)
f.add_button("Sub", sub, 100)
f.add_button("Mult", mult, 100)
f.add_button("Div", div, 100)
f.add_input("Number 1", enter1, 100)
f.add_input("Number 2", enter2, 100)


# get frame rolling
f.start()

1 Ответ

0 голосов
/ 01 сентября 2020

На самом деле ваш код работает, но вам нужно нажать клавишу ввода на клавиатуре после того, как вы наберете номер в области ввода 1 или 2. К сожалению, результат не всегда будет правильным, если вы измените число, потому что последнее действие не запоминается! Поэтому для этого вам нужно написать немного больше кода ...

...