将列表的最后两个整数之和附加到同一列表

时间:2019-02-01 23:39:19

标签: python python-3.x

编辑:我应该补充指出,此问题的重点是在函数中使用“副作用”。

我正在我的Coursera计算机课程上提交我的代码。我想我必须失去了一些东西超明显。当我提出我的代码,我收到以下错误:


#TEST 5#
append_fibonacci(参数)返回无 **错误**副作用从:[-5、8、1]至:[-5、8、1] * EXPECTED:* [-5,8,3]
输入:

输出:


我大多只是不明白反馈在告诉我什么。我有点新手,本月刚开始使用Python。谢谢您的帮助!

以下是我的代码:

def append_fibonacci(integer_list):
  # Modify the argument list of integers by
  # appending a new integer that is the sum
  # of the last two integers in the list.
  # If the list has fewer than two elements
  # add the int object 1 to the list.

  if len(integer_list) > 2:
    sum_last_two = ((integer_list[-1]) + (integer_list[-2]))
    integer_list.append(sum_last_two)
  else:
    integer_list.append(1)

def main():
  # Call the append_fibonacci function on this
  # list: [3, 5, 8] and output the result object

  number_list = [3, 5, 8]
  append_fibonacci(number_list)
  print(number_list)

main()

1 个答案:

答案 0 :(得分:1)

您收到的错误消息是说更新后的列表应为[-5, 8, 3],但您将其设置为[-5, 8, 1]

这是因为如果列表中的恰好 2个元素,则您的函数将无法正常工作。它应该将两个元素相加并附加总和(-5 + 8 = 3),但是它将仅附加1

if len(integer_list) > 2:

应为:

if len(integer_list) >= 2: