2016-06-29 2 views
-1
line 24, in <module> 
    if not num1.isdigit(): 
NameError: name 'num1' is not defined 
>>> 

정의되지 않은, 나는 (I 괄호 < 3을 넣어했다 OFC)이 그것의 원인이되는 부분이라고 생각 :은 나가서 설명하자면 NameError : 이름이 'NUM1이 표시되고있는 오류의

def main1(self): 
    num1 = input("Enter a number: ") 
if not num1.isdigit(): 
    print("Please enter a valid number") 
    main1() 

main1() 

def main2(self): 
    num2 = input("Enter a number: ") 
if not num2.isdigit(): 
    print("Please enter a valid number") 
    main2() 

main2() 

감사합니다, 어떤 도움을 주셔서 감사합니다!

+0

원본 코드에 표시되는 것과 정확히 같은 실제 들여 쓰기입니까? – Kevin

+0

질문에 전체 추적을 복사하여 붙여 넣으십시오. 들여 쓰기가 잘못되었습니다. –

답변

1

조건부가 들여 쓰기가 적절하지 않습니다. 그들은 함수 정의 안에 있지 않으므로 num1 = ...이 실행될 수 있기 전에 즉시 실행됩니다.

시도 :

def main1(self): 
    num1 = input("Enter a number: ") 
    if not num1.isdigit(): 
     print("Please enter a valid number") 
     main1() 

main1() 

def main2(self): 
    num2 = input("Enter a number: ") 
    if not num2.isdigit(): 
     print("Please enter a valid number") 
     main2() 

main2() 
1

귀하의 NUM1는 함수에 로컬 범위를 가지고, 그래서 당신이 그것을 사용하려는 경우 당신은 제대로 들여 있습니다

def main1(self): 
    num1 = input("Enter a number: ") 

    if not num1.isdigit(): 
     print("Please enter a valid number") 
main1() 

을 또는 함수 외부에 선언

관련 문제