2014-06-24 3 views
-1

저는 계산기를 만들고 있습니다 (tkinter 사용). 사용자가 999 개 이상의 입력을 입력하면 오류 메시지가 나타나고 숫자가 계산되지 않습니다. 학교 프로젝트). 스크립트를 아래에서 실행하면 학교에서 빈 GUI가 나타나고 집 컴퓨터에서는 '들여 쓰기가 외부 들여 쓰기 레벨과 일치하지 않습니다.'라고 말합니다. 이 문제를 어떻게 해결할 수 있습니까? 고마워요 고마워 추신 파이썬 3.3.2를 사용하고 있습니다.들여 쓰기 오류 및 입력 된 번호 제한

def calc(self): 
     try: 
      self.display.set(self.validate_result(eval(self.display.get()))) 
      self.need_clr = True 
      except: 
       showerror('Operation Error', 'Illegal Operation') 
       self.display.set('') 
       self.need_clr = False 
       def validate_result(self, result): 
        if result >= 1000: 
         raise ValueError('result too big!') 
        else: 
         return result 
+1

'except' (두 번째 함수에서)를 'try'와 들여 쓰기 할 수 있습니까? – Alec

+1

왜 'calc'에 대해 두 가지 정의가 있습니까? – jwodder

답변

1

파이썬은 범위 수준을 구분하기 위해 들여 쓰기를 사용합니다.

모든 코드가 완전히 들여 쓰기되어있는 것처럼 보이므로 파이썬은 모든 코드가 내부 범위에 있다고 생각하고 포함하는 외부 범위를 찾으려고하지만 아무 것도 없습니다.

이 들여 쓰기 시도해야합니다 :

def calc(self): 
    try: 
     ... 

def calc(self): 
    try: 
     ... 

편집 : 또한, 두 번째 기능의 다른 들여 쓰기 문제를 갖고있는 것 같다. excepttry으로 맞추고 if result >= 1000: 앞에 하나의 공백이 있어야합니다.

+0

들여 쓰기 오류가 수정되었지만 스크립트를 실행하면 단추가없는 빈 GUI가 나타납니다. 어떤 제안? (코드는 보통이 코드없이 작동합니다.) – user3742334

+0

그러면 다른 문제 일 수 있습니다. 결과를보고 예외가 있는지 확인하십시오. 그렇지 않은 경우 GUI에 문제가있는 것 같습니다. 나는 당신의 코드를 tkinter 튜토리얼과 비교할 것을 제안한다. ([these] (https://wiki.python.org/moin/TkInter)를 보라). – kjaquier