2016-10-03 7 views
0

私はこの割り当てでモジュラープログラミングを練習しようとしています。変数をmain関数に呼び出す方法を見つけましたが、evenOdd()のif文では、値を呼び出す方法がわかりません。私はエラー 'randNum'が定義されていません。Python:関数からifステートメントに変数を呼び出す

from random import randint 
def genNumber(): 
    randNum = randint(0,20000) 
    print("My number is " + str(randNum)) 
    return (randNum) 

def inputNum(): 
    userNum = input("Please enter a number: ") 
    print("Your number is " + str(userNum)) 
    return (userNum) 

def evenOdd(): 
    if randNum%2==0: 
     print("My number is even") 
    else: 
     print("My number is odd") 
    if userNum%2==0: 
     print("Your number is even") 
    else: 
     print("Your number is odd") 

def main(): 
    randNum = genNumber() 
    userNum = inputNum() 
    evenOdd() 
    input("Press ENTER to exit") 


main() 
+0

'randNum'は' evenOdd() 'の範囲外です – MooingRawr

+0

@MooingRawrこれをスコープ内で作成するにはどうすればよいですか?私はそれがmain()でどのように行われたかに似ていると仮定していますが、実装方法についてはわかりません。 –

+0

@TannerBrittその値を使用する関数にその値を渡すことができます。 –

答えて

2

あなたはグローバルスコープでrandNumを定義したり、ちょうどこのEVENODD(randNum)のように、あなたのEVENODD()関数に変数として渡すことができます。

+0

ありがとう!私はもともとこれを試しましたが、userNumをintに変換しないとエラーが発生しました。私は、それが解決策への私の試みのせいであると思っている間違いをばかげて無視しました。 –

+0

型キャスティングは、特にタイプのない言語で毎回あなたを得るでしょう。コンバージョンを逃すのはずっと簡単です。 – Tommy

関連する問題