2016-06-07 2 views
1

안녕하세요 여러분, 작은 프로그램 용 코드를 작성하려고하는데 모든 것이 잘 작동하지만 전체 수학 방정식 (C = A + B) 또는 그 변형을 표시 할 수 없습니다 캔버스에. 여기에 내 코드는, 어떤 도움을 주시면 감사하겠습니다. 사용자는 첫 번째 숫자를 입력 한 다음 연산자 (+, -, *, /)를 입력하고 두 번째 숫자를 입력 한 다음 "추가 결과, 뺄셈 결과, 곱하기 결과 또는 나눗셈 결과"가 숫자와 함께 텍스트에 표시됩니다. 운영자 및 결과 응답이 생성됩니다. 내 "결과"텍스트가 나타나지만 방정식이 아닙니다. 예를 들어, 60 + 5를 내 숫자와 연산자로 입력하면 Canvas는 60 + 5 = 65가 아닌 "추가 결과"만 표시합니다. 도움이 필요해!Canvas에 수식이 표시되지 않습니다.

from tkinter import * 

master = Tk() 
canvas_width = 400 
canvas_height = 400 

w = Canvas (master, width=canvas_width, height=canvas_height, bg = "blue") 
w.pack() 

A = int(input("Enter the First Operand: ")) 
O = (input("Enter the Operator: ")) 
B = int(input("Enter the Second Operand: ")) 

#If Functions for Math 
def Add(A, B): 
    return A + B 
def Subtract(A, B): 
    return A - B 
def Multiply(A, B): 
    return A * B 
def Divide(A, B): 
    return A/B 



if (O == "+"): 
    Add(A, B) 
elif (O == "-"): 
    Subtract(A, B) 
elif (O == "*"): 
    Multiply(A, B) 
else: 
    if (O == "/"): 
     Divide(A, B) 



#If Functions for Formula 
if (O == "+"): 
    D = Add(A, B) 
elif (O == "-"): 
    D = Subtract(A, B) 
elif (O == "*"): 
    D = Multiply(A, B) 
else: 
    if (O == "/"): 
     D = Divide(A, B) 



#If Functions for Result text 
if (O == "+"): 
    w.create_text(canvas_width/3, canvas_height/3, font=("Arial", 14), text="Addition Result", fill="white") 
elif (O == "-"): 
    w.create_text(canvas_width/3, canvas_height/3, font=("Arial", 14), text="Subtraction Result", fill="white") 
elif (O == "*"): 
    w.create_text(canvas_width/3, canvas_height/3, font=("Arial", 14), text="Multiplication Result", fill="white") 
else: 
    if (O == "/"): 
     w.create_text(canvas_width/3, canvas_height/3, font=("Arial", 14), text="Division Result", fill="white") 


#If Functions for Formula Text 
if (O == "+"): 
    w.create_text(canvas_width/2, canvas_height/2, font=("Arial", 18), text=D, fill="white") 
elif (O == "-"): 
    w.create_text(canvas_width/2, canvas_height/2, font=("Arial", 18), text=D, fill="white") 
elif (O == "*"): 
    w.create_text(canvas_width/2, canvas_height/2, font=("Arial", 18), text=D, fill="white") 
else: 
    if (O == "/"): 
     w.create_text(canvas_width/2, canvas_height/2, font=("Arial", 18), text=D, fill="white") 
+0

text = "{} {} {} = {}".format(A, O, B, D)에 . – Zjm4192

답변

1

귀하의 기능 Add, Subtract, Multiply, Divide 당신이 D = Add(1 + 1)를 호출 할 때, D는 아무도 없다, 아무 것도 반환하지 않습니다. 그러니 그냥 C = 대신 return를 넣어 :

def Add(A, B): 
    return A + B 
def Subtract(A, B): 
    return A - B 
def Multiply(A, B): 
    return A * B 
def Divide(A, B): 
    return A/B 

편집 : 당신이, "1 + 1 = 2"예를 들어 말을 대체하는 습관 경우 내가 현재 가지고있는에 코드를 변경 text = D

+0

감사합니다. 그렇다면 어떻게 변수를 할당하여 방정식 (A + B = C)을 캔버스에 표시 할 수 있습니까? 말하듯이, 입력 된 숫자는 60 + 5 였으므로 Canvas에서는 "60 + 5 = 65"가 표시됩니다 – Zjm4192

+0

편집을 확인하십시오. –

+0

이러한 {}을 사용하지 않고도 할 수 있습니까? 나는 수업 시간에 아직 사용하지 않은 것을 사용했지만, 지금까지 제공해 주신 모든 정보에 대해 매우 감사드립니다. D – Zjm4192

관련 문제