2017-11-10 6 views
0

私のmain()関数内の行で、関数norm(x)を呼び出すと名前エラーが発生します。これは私がこのプログラム全体で問題を抱えている唯一の機能です。私のプログラムがNameErrorを投げているのはなぜですか? 'norm'(x)に 'x'という名前が定義されていませんか?

def read_fp_numbers(): 
    x = input('Please enter several floating point numbers separated 
by spaces. ').split(' ') 
    x = [float(i) for i in x] 
    return(x) 
def norm(x): 
    x = (sum(x))**(.5) 
    x = str(x) 
    return(x) 
def display_norm(x): 
    print('norm =', x) 
    return(x) 
def main(): 
    read_fp_numbers() 
    norm(x) 
    display_norm(x) 
main() 
+2

を撮影したことがない:'、 'X'が実際に定義されていません。他の 'x'は、その関数のローカルです。 – JulienD

+0

関数で作成された変数はその中にのみ存在するので、xは定義したところにのみ存在します。基本的なチュートリアルを読むことをお勧めします。 – eyllanesc

+0

fp_numbersを保存する必要があります(E.G. 'x = read_fp_numbers()') – ingroxd

答えて

1

あなたは)( `メインのコンテキストで返された値

def main(): 
    x= read_fp_numbers() 
    display_norm(norm(x)) 
関連する問題