鱼C论坛

 找回密码
 立即注册
查看: 1250|回复: 5

[已解决]列表添加数据的一些疑问

[复制链接]
发表于 2020-9-6 01:01:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序如下
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([d])
print(b)
print(list1)
我想让这个list列表显示之前20位的所有元素
但是运行程序之后这个list1列表为只显示最后一个
而我在shell里的这段代码却可以
>>> b=1
>>> list1=[]
>>> list1.extend ([b])
>>> list1
[1]
>>> b=20
>>> list1
[1]
>>> list1.extend ([b])
>>> list1
[1, 20]
>>>
我觉得原理差不多,请问下问题出在哪里
最佳答案
2020-9-6 01:18:26
 list1=[]
这个放在循环里,每次循环,都重新赋值为空列表
要达到你要的,把上面这个放循环外就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-6 01:10:46 | 显示全部楼层
还有一个问题,这样输入
print '%d*%d=%d' % (i,j,i*j )
的语法问题是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 01:13:04 | 显示全部楼层
YIRANNA 发表于 2020-9-6 01:10
还有一个问题,这样输入
print '%d*%d=%d' % (i,j,i*j )
的语法问题是什么

知道了,没有加括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 01:18:26 | 显示全部楼层    本楼为最佳答案   
 list1=[]
这个放在循环里,每次循环,都重新赋值为空列表
要达到你要的,把上面这个放循环外就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哦哦,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 01:28:53 | 显示全部楼层
斐波那契额数列应该是[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]这样的吧
你写的数列,少了第一位数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}')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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