【问题标题】:Trouble with lists and functions in pythonpython中列表和函数的问题
【发布时间】:2020-04-17 11:08:47
【问题描述】:

我是一名学生,我的一项任务是根据随机生成的数字用海龟绘图。以下代码与任务类似。

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')

【问题讨论】:

  • 请使用完整的错误回溯更新您的问题。
  • 顺便说一句,您的aaa 函数可以简化为:def aaa(): return [randint(1,6) for _ in range(2)]

标签: python list function turtle-graphics


【解决方案1】:

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

import random

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

aaa_list = aaa_func()

for aaa in 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')

【讨论】:

    【解决方案2】:

    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')
    

    【讨论】:

      【解决方案3】:
      1. 您的函数需要缩进,以便解释器知道哪些行属于该函数。

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

      3. 调用函数时,需要加上括号(否则只会得到函数对象)。

      4. 最好不要使用多个if,而是对所有if 的fol 使用elif

      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')
      

      【讨论】:

        猜你喜欢
        • 2013-01-29
        • 2011-11-18
        • 2016-04-28
        • 1970-01-01
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多