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

定義されていない、と私は(私は括弧< 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() 

するか、関数外で宣言し

関連する問題