找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3859|回复: 8

[求助] 小白提问

2

主题

8

帖子

8

积分

贫民

积分
8
洛子澄 发表于 2020-2-19 15:40:05 | 显示全部楼层 |阅读模式
产生Fibonacci数列的前20项,存放在列表中并打印之
Fibonacci=[]
for i in range(1,21):
    if i < 3 :
        value(i) = 1
    else:
        value(i) = value(i-1) + value(i-2)
    Fibonacci.append=str(value(i))
    print (Fibonacci)

有大佬能看看错哪了吗

回复

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
洛子澄  楼主| 发表于 2020-2-19 20:13:20 | 显示全部楼层
Fibonacci=[]
for i in range(1,21):
    if i < 3 :
        value[i] = 1
    else:
        value[i] = value[i-1] + value[i-2]
    Fibonacci.append=str(value[i])
print (Fibonacci)
        改了一下,发现括号是给函数用的,方括号才是用列表的。可现在还是不能运行。。
回复 支持 1 反对 0

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2020-2-19 18:41:23 | 显示全部楼层
value(i) = 1这个是什么函数
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
洛子澄  楼主| 发表于 2020-2-19 20:01:13 | 显示全部楼层
sheeboard 发表于 2020-2-19 18:41
value(i) = 1这个是什么函数

这不是函数啊。。就是引用一下,类似a()
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2020-2-19 20:18:42 | 显示全部楼层
洛子澄 发表于 2020-2-19 20:01
这不是函数啊。。就是引用一下,类似a()

你是不是要切片啊?可迭代对象才可以用的,声明一下value为1到21的列表再用。你value(i)的意思是调用value函数,参数是i,而且是不能赋值的,
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
洛子澄  楼主| 发表于 2020-2-19 20:31:14 | 显示全部楼层
本帖最后由 洛子澄 于 2020-2-19 20:33 编辑
sheeboard 发表于 2020-2-19 20:18
你是不是要切片啊?可迭代对象才可以用的,声明一下value为1到21的列表再用。你value(i)的意思是调用valu ...

Fibonacci=[]
value=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] for step in value:
    if step< 2:
        Fibonacci.append = '1'
    else:
        Fibonacci.append = Fibonacci[step-1] + Fibonacci[step-2]
    Fibonacci.append=str(value)
print (Fibonacci)
这个意思吗?

回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
Jesse_Chenjie 发表于 2020-2-19 21:28:26 | 显示全部楼层
Fibonacci = []
value = [i for i in range(21)]
for i in range(1,21):
    if i < 3 :
        value[i] = 1
    else:
        value[i] = value[i-1] + value[i-2]
    Fibonacci.append (str(value[i]))
print (Fibonacci)
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
洛子澄  楼主| 发表于 2020-2-19 21:35:29 | 显示全部楼层
Jesse_Chenjie 发表于 2020-2-19 21:28
Fibonacci = []
value =
for i in range(1,21):

谢谢哥我懂了
回复 支持 反对

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-5 19:53:27 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-8-5 20:05 编辑
  1. # Fibonacci Sequences: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610
  2. def fibonacci(n, SUM = 0):
  3.         if n == 0:
  4.                 return 0
  5.         elif n == 1:
  6.                 return 1
  7.         SUM += (fibonacci(n-1, SUM)+fibonacci(n-2, SUM))
  8.         return SUM

  9. def listFibonacci(n):
  10.         list = []
  11.         for i in range(n+1):
  12.                 list.append(fibonacci(i))
  13.         return list
复制代码

或更好寫法
  1. def fibonacci(n, SUM = 0):
  2.         if n == 0: return 0
  3.         elif n == 1: return 1
  4.         SUM += (fibonacci(n-1, SUM)+fibonacci(n-2, SUM))
  5.         return SUM
  6. n = 10
  7. list = [fibonacci(i) for i in range(n)]
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表