2012-02-20 25 views
-2

今日、Pythonの学習を始めたばかりで、別の関数の中から定義した関数を呼び出しようとしていました。インタプリタがエラーを返しました:NameError:グローバル名を「isPrime」ここPythonの関数スコープ

が定義されていない私のコードは次のようになります。

def split (value): 
    x = 2 
    halfOne, halfTwo = 0, 0 
    if isPrime(value) == True: 
     print (value) 
     return 
    else: 
     while x < value: 
      if value % x == 0: 
       halfOne = value/x 
       halfTwo = x 
       split(halfOne) 
       split(halfTwo) 
      x += 1 
def is_prime(value): 
# some code 

助けてくれてありがとう!

答えて

6

Erm - あなたの機能はis_primeで、isPrimeではありません。

+2

oh。私は本当にばかげている。ありがとうございました! – user1220235

+2

我々はすべてそこにいた! :^)エラーメッセージを正確に文字通り受け取って、最も簡単なものを探し出し、外向きに作業することが助けになります。 – DSM

+2

ワークフローを完了するには、正解として回答を選択してください。 – Nilesh

1

エラーメッセージと同様に、isPrime()という関数が存在しないことがありますか?あなたはis_prime()と呼ばれるものを持っています。おそらくあなたはそれを代わりに呼び出すことができます。

1

多分、isPrime(value)が必要です。

そして、関数が呼び出される前に関数を定義する必要があります。

+1

関数を一時的に使用する前に関数を定義する必要があるだけで、ファイル内でそれを上回る必要はありません。 – DSM