YIRANNA 发表于 2020-9-6 01:01:29

列表添加数据的一些疑问

程序如下
i=input('想知道斐波那契数列的第几位:')
i=int(i)
a=1
b=0
def fb(a,b):
    c=a+b
    return c
for i in range (0,i):
    c=fb(a,b)
    a=c
    d=a
    a=b
    b=d
    list1=[]
    list1.extend()
print(b)
print(list1)
我想让这个list列表显示之前20位的所有元素
但是运行程序之后这个list1列表为只显示最后一个
而我在shell里的这段代码却可以
>>> b=1
>>> list1=[]
>>> list1.extend ()
>>> list1

>>> b=20
>>> list1

>>> list1.extend ()
>>> list1

>>>
我觉得原理差不多,请问下问题出在哪里

YIRANNA 发表于 2020-9-6 01:10:46

还有一个问题,这样输入
print '%d*%d=%d' % (i,j,i*j )
的语法问题是什么

YIRANNA 发表于 2020-9-6 01:13:04

YIRANNA 发表于 2020-9-6 01:10
还有一个问题,这样输入
print '%d*%d=%d' % (i,j,i*j )
的语法问题是什么

知道了,没有加括号

疾风怪盗 发表于 2020-9-6 01:18:26

list1=[]
这个放在循环里,每次循环,都重新赋值为空列表
要达到你要的,把上面这个放循环外就行了

YIRANNA 发表于 2020-9-6 01:21:46

疾风怪盗 发表于 2020-9-6 01:18
这个放在循环里,每次循环,都重新赋值为空列表
要达到你要的,把上面这个放循环外就行了

哦哦,感谢

疾风怪盗 发表于 2020-9-6 01:28:53

斐波那契额数列应该是这样的吧
你写的数列,少了第一位数0
而且for i in range (0,i):这里最好不要这么写,两个i,不易区分
添加字符元素,用append也一样的,不需要变成列表再用extend添加
可以改成这样:
num=int(input('想知道斐波那契数列的第几位:'))

def fb(a,b):
    c=a+b
    return c
a=1
b=0
list1 = []
for i in range (0,num):
    c=fb(a,b)
    a,b=b,c
    list1.append(a)
print(f'斐波那契数列的第{num}位是{a}')
print(f'{num}位数的斐波那契数列是{list1}')
页: [1]
查看完整版本: 列表添加数据的一些疑问