鱼C论坛

 找回密码
 立即注册
查看: 2285|回复: 14

[已解决]列表的问题

[复制链接]
发表于 2021-4-7 21:33:26 | 显示全部楼层 |阅读模式

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

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

x
def saver(x=None):
        if x is None:
                x=[]
        x.append(1)
        print(x)

saver(2)
AttributeError: 'int' object has no attribute 'append'
直接报错了,咋回事啊?
它说int类型没有append这个函数。是这个意思吧,但是为什么呢?我又没有定义X是int类型
最佳答案
2021-4-7 22:40:26
江湖散人 发表于 2021-4-7 22:37
不是的,我想当我传入2的时候,就会得到【2,1】这样的列表

这样你看看,如果你传入的参数都是整形的话
  1. def saver(x=None):
  2.     if x:
  3.         my_list = []
  4.         my_list.append(x)
  5.         my_list.append(1)
  6.     print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-4-7 21:40:24 | 显示全部楼层
里面要添加一个数组,如
  1. saver(x = [])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 21:42:21 | 显示全部楼层
saver()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 22:08:59 | 显示全部楼层
本帖最后由 弈秋呜呜呜 于 2021-4-7 22:10 编辑

你调用saver函数的时候,传入了一个参数2,这时,2就被赋值给了x,即此时x=2,。此时你在函数内自然无法调用append方法
你把第四行代码加一个缩进就行了
  1. def saver(x=None):
  2.     if x is None:
  3.         x = []
  4.         x.append(1)
  5.     print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 22:32:09 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-7 22:08
你调用saver函数的时候,传入了一个参数2,这时,2就被赋值给了x,即此时x=2,。此时你在函数内自然无法调用 ...

好像是这么回事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 22:33:38 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-7 22:08
你调用saver函数的时候,传入了一个参数2,这时,2就被赋值给了x,即此时x=2,。此时你在函数内自然无法调用 ...

但是,我的意思不是这样的,我的意思是在传入X后,再添加一个1,你这就没有添加1这一步了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 22:35:45 | 显示全部楼层
亢一飞 发表于 2021-4-7 21:40
里面要添加一个数组,如

你这个加在哪?函数体里吗?还是调用前边?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 22:35:59 | 显示全部楼层
江湖散人 发表于 2021-4-7 22:33
但是,我的意思不是这样的,我的意思是在传入X后,再添加一个1,你这就没有添加1这一步了

??你此时的x=2,是一个整形,怎么添加1。你的意思是x+1吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 22:37:06 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-7 22:35
??你此时的x=2,是一个整形,怎么添加1。你的意思是x+1吗

不是的,我想当我传入2的时候,就会得到【2,1】这样的列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 22:40:26 | 显示全部楼层    本楼为最佳答案   
江湖散人 发表于 2021-4-7 22:37
不是的,我想当我传入2的时候,就会得到【2,1】这样的列表

这样你看看,如果你传入的参数都是整形的话
  1. def saver(x=None):
  2.     if x:
  3.         my_list = []
  4.         my_list.append(x)
  5.         my_list.append(1)
  6.     print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 22:44:04 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-7 22:40
这样你看看,如果你传入的参数都是整形的话

好吧,你这结果是对的。我照着视频里写的,但是结果却是不一样的。视频里用的2.65版本的python,我这个是3.8版本。不知道怎么回事。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 22:46:03 | 显示全部楼层
江湖散人 发表于 2021-4-7 22:44
好吧,你这结果是对的。我照着视频里写的,但是结果却是不一样的。视频里用的2.65版本的python,我这个是 ...

3.0版本以前的Python和之后的版本语法上有一些差别,看课程最好看新版的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-8 10:02:59 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-7 22:46
3.0版本以前的Python和之后的版本语法上有一些差别,看课程最好看新版的

你有什么免费的课程推荐吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-8 19:07:39 | 显示全部楼层
江湖散人 发表于 2021-4-8 10:02
你有什么免费的课程推荐吗?

免费课程就去B站搜索吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-9 09:28:30 | 显示全部楼层
弈秋呜呜呜 发表于 2021-4-8 19:07
免费课程就去B站搜索吧

我看B 站也就那么回事,有可能是我不会搜吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-25 10:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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