用户函数和数组

2024-06-25 06:21:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我学习python的第一天。我想做一个用户函数。向函数传递一个名为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

将b3更改为a3会产生相同的错误:

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

将return语句添加到PassFunction的末尾修复了错误

我知道一定有一个简单的解决办法,但我找不到。如果你有什么建议,请告诉我

谢谢你的帮助


Tags: 函数lenifdef错误with数组b0
3条回答

函数中有b作为参数,但引用的是a(在该范围内没有定义)。
只需在函数体中使用b而不是a
哦,我假设main函数有一些缩进错误,可能是粘贴了代码?main是空的

此错误意味着您在a4 = a[4]中分配变量a之前尚未声明变量a,因此必须在开始时将a声明为列表:

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

我希望我能帮上忙

试试这个:

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...

您使用了错误的参数名称。使用a代替b

相关问题 更多 >