python中的列表和功能出现问题

时间:2020-04-17 11:08:47

标签: python list function turtle-graphics

我是一名学生,我的任务之一是根据随机生成的数字绘制乌龟。以下代码类似于该任务。

def aaa():
numbers = []
for number_list in range(2):
    bbb = randint(1, 6)
    numbers.append(bbb)

我的假设是创建一个if/elif链,以确定对生成的每个数字采取何种操作,如下所示。但是,我遇到了麻烦,因为aaa函数不是list

if aaa == 1:
print('a')

if aaa == 2:
print('b')

if aaa == 3:
print('c')

if aaa == 4:
print('d')

if aaa == 5:
print('e')

if aaa == 6:
print('f')

3 个答案:

答案 0 :(得分:1)

您必须从函数返回一个值。之后,您必须遍历列表。

mask1 = df['Id'].isin(df.loc[df['Col_1'].str.contains('aa'), 'Id'])
mask2 = df['Id'].isin(df.loc[df['Col_1'].str.contains('bb'), 'Id'])

df['New_Column'] = np.select([mask1, mask2], ['aa','bb'],'')
print (df)
   Id Col_1 New_Column
0   1   aaa         aa
1   1   ccc         aa
2   2   bbb         bb
3   3    aa         aa

答案 1 :(得分:0)

aaa是一个函数,而不是列表。您需要调用aaa,让它返回列表,然后遍历列表。

def aaa():
    numbers = []
    for number_list in range(2):
        bbb = randint(1, 6)
        numbers.append(bbb)
    return numbers

numbers = aaa()

for number in numbers:
    if aaa == 1:
        print('a')

    elif aaa == 2:
        print('b')

    elif aaa == 3:
        print('c')

    elif aaa == 4:
        print('d')

    elif aaa == 5:
        print('e')

    elif aaa == 6:
        print('f')

答案 2 :(得分:0)

  1. 您的函数需要缩进,以便解释器知道哪些行属于该函数。

  2. 您想从函数中获取包含数字的列表,因此请从函数中返回列表numbers

  3. 调用函数时,您需要添加方括号(否则将只获得函数对象)。

  4. 而不是使用多个if,而是将elif用于所有if的行为是最佳实践

  5. 您需要迭代从函数aaa()返回的列表中的所有元素。

您的总体代码应如下所示:

def aaa():
    numbers = []
    for number_list in range(2):
        bbb = randint(1, 6)
        numbers.append(bbb)

    return numbers


for number in aaa():
    elif number == 1:
    print('a')

    elif number == 2:
    print('b')

    elif number == 3:
    print('c')

    elif number == 4:
    print('d')

    elif number == 5:
    print('e')

    elif number == 6:
    print('f')
相关问题