雨留下的印记 发表于 2020-4-3 20:16:29

关于列表的一个问题

代码:
def cc(x):
    x1 = 1
    x2 = 1
    x3 = 1
    if x<1:
      print('输入有误!')
      return -1
    if x==1:
      return
    if x== 2:
      return
    while x>2:
      x3 = x2 + x1
      x1 = x2
      x2 = x3
      x -= 1
      list1 =
      
      list1.append(x3)
    return list1
这是我看小甲鱼在课程求斐波那契数列的代码改过来的代码,因为我想把整个数列都显示出来。
如cc(5)
. 这是我希望看到的结果

但是现实确是:cc(5)

求大佬告知下问题出在哪里,以及该如何改正,谢谢了

qiuyouzhi 发表于 2020-4-3 20:33:36

你每次循环都会把list1
重设为,所以最后只会添加进一个元素。

heidern0612 发表于 2020-4-3 20:44:39

def cc(x):
    x1 = 1
    x2 = 1
    x3 = 1
    list1 =
    if x<1:
      print('输入有误!')
      return -1
    if x==1:
      return
    if x== 2:
      return
    while x>2:
      x3 = x2 + x1
      x1 = x2
      x2 = x3
      x -= 1
      list1.append(x3)
    return list1

print(cc(5))


把list1放在循环外面,不要放在while循环里,不然每次运行到while循环最后都会把列表重新赋值。

雨留下的印记 发表于 2020-4-3 21:06:10

heidern0612 发表于 2020-4-3 20:44
把list1放在循环外面,不要放在while循环里,不然每次运行到while循环最后都会把列表重新赋值。

懂了,谢谢大佬

雨留下的印记 发表于 2020-4-3 21:06:47

qiuyouzhi 发表于 2020-4-3 20:33
你每次循环都会把list1
重设为,所以最后只会添加进一个元素。

懂了,谢谢

雨留下的印记 发表于 2020-4-3 21:15:28

这个设置最佳答案没有了嘛?
页: [1]
查看完整版本: 关于列表的一个问题