2017-08-29 9 views
-2

これは私の最初の日です。私はユーザー機能を作ろうとしています。この関数にはbという配列が渡されます。配列を渡さずにコードを書くと、動作します。ユーザー関数と配列

b = [5, 32, 19, 84, 3, 3] 

if len(a) == 5: 
    a4 = a[4] 
else: a4 = 0 

b3 = a[3] 
b2 = a[2] 
b1 = a[1] 
b0 = a[0] 

#Calculation with b0 b1 b2... 

しかし、私が機能を作ろうとすると、それはしません。

def PassFunction(b):  
    if len(a) == 5: 
     a4 = a[4] 
    else: a4 = 0 

    b3 = a[3] 
    b2 = a[2] 
    b1 = a[1] 
    b0 = a[0] 

#Calculation with b0 b1 b2... 

私はこの機能を使用しています主な機能は次のとおりです。

def main(): 

b = [1,2,3,4] 

number = PassFunction(b) 
print(number) 

私が手にエラーがある:

b3 = a[3] 
NameError: name 'a' is not defined 

はA3にB3を変更すると同じエラーが発生し:

a3 = a[3] 
NameError: name 'a' is not defined 

返品の追加PassFunctionの最後のステートメントはエラーを修正しました。

私はこのための簡単な修正が必要であることを知っていますが、私はそれを見つけることができません。ご提案がありましたら、お知らせください。

ありがとうございました!

+0

_exactly_は動作しません。エラーメッセージが表示されますか?もしそうなら、それをあなたのポストに貼り付けてください。最初の例で 'a'とは何ですか?どのように定義されていますか? – DyZ

+2

ここでは「a」とは何ですか? – Antimony

+2

あなたは*関数を作成しましたが、実際にどこで*使用*していないか、またはその関数をまだ呼び出していません。関数自体を 'PassFunction(b)' *外部*として呼び出す必要があるかもしれません。 – davedwards

答えて

1

あなたの関数ではbがパラメータにありますが、a(そのスコープでは定義されていません)を参照しています。
機能の本体にaの代わりにbを使用してください。
main関数のインデントが間違っていると思われます。おそらくコードを貼り付けますか?それmainは空です...

0

はこれを試してみてください:

def PassFunction(a):  
    if len(a) == 5: 
     a4 = a[4] 
    else: a4 = 0 

    b3 = a[3] 
    b2 = a[2] 
    b1 = a[1] 
    b0 = a[0] 

#Calculation with b0 b1 b2... 

あなたは間違ったパラメータ名を使用していました。代わりにb使用のa

0

このエラーは、a4 = a[4]でそれを割り当て前に変数aを宣言していないことを意味し、あなたは開始時にリストとして宣言する必要があります:私は願っています

a = [w,r,i,t,e, ,y,o,u,r, ,i,t,e,m,s, ,h,e,r,e] 

私は助けた!