吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1184|回复: 7
收起左侧

[已解决] Python求助,错了2个地方,17行和12行为啥呢

[复制链接]
拨Q 发表于 2021-1-18 11:00
本帖最后由 拨Q 于 2021-1-18 11:18 编辑

[Python] 纯文本查看 复制代码
scores =  [91, 95, 97, 99, 92, 93, 96, 98] 
class Aa:
 
    list = []
    #print(type(len(scores)))
    def me(self):
        a = sum(scores)/len(scores)
        print(a)
        for i in scores:
            #print(type(i))
            if i < a:
                list.add(i)
            else:
                pass
        print(list)
b = Aa()
b.me()

我的想法就是把上边的分数算出平均分a,然后遍历scores,低于平均分的加入到空列表list里,打印出低于平均分的数。
错了2个地方,17行和12行为啥呢

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
qian9069 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

公子如玉世无双 发表于 2021-1-18 11:06
12行应该是append吧,不是add
Fate_XZ 发表于 2021-1-18 11:07
python添加元素到列表中应该是append方法不是add方法
xiaosuobjsd 发表于 2021-1-18 11:15
本帖最后由 xiaosuobjsd 于 2021-1-18 11:18 编辑

12行:
list没有add方法,只有append方法
17行:
17行本身的使用没错,但是整段代码有另一个错误,class里的list是类变量,传递到def里会变成一个内存地址,而不是具体的内容。所以list.append(i)依然会报错,如果想改正的话,需要把list变成全局变量就可以传递内容了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
拨Q + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| 拨Q 发表于 2021-1-18 11:16
看来知识没有掌握牢:
Python中 append|extend|insert|add 区别
append(seq)
将对象作为一个整体,添加到列表末尾,添加后列表仅增加1个元素。该对象可以是任意数据类型,函数没有返回值。
[Python] 纯文本查看 复制代码
a = [1, 2, 'python']
b = ['mac', 'linux']
a.append(b)
a
-- > [1, 2, 'python', ['mac', 'linux']]

extend(seq)
将一个可迭代对象中的所有元素(N个),逐个添加到列表末尾,添加后列表元素增加N个;
通常,可迭代对象为list;为字符串时把每个字符逐个添加到列表末尾;为字典时,将字典的key添加到列表末尾。函数没有返回值。
[Python] 纯文本查看 复制代码
a = [1, 2, 3]
b = ['mac', 'python']
c = 'linux'

a.extend(b)
a
-- > [1, 2, 3, 'mac', 'python', 'mac', 'python']

a.extend(c)
a
-- > [1, 2, 3, 'mac', 'python', 'mac', 'python', 'l', 'i', 'n', 'u', 'x']

insert(index, obj)
将对象作为一个整体,添加到列表的指定位置,添加后列表仅增加1个元素,方法类似append();
特别地,在列表最后添加元素时,index为len(object),index为-1时插入到倒数第二的位置,并非末尾。
[Python] 纯文本查看 复制代码
a = [1, 2, 3]
b = 'python'
a.insert(1, b)
a
-- > [1, 'python', 2, 3]

add(element)
将对象作为一个整体,为集合(set)添加元素,若添加的元素已在集合中,则不执行任何操作
[Python] 纯文本查看 复制代码
a = {"python", "mac"}
b = "linux"
a.add(b)
a
-- > {'linux', 'mac', 'python'}


作者:惑也
链接:https://www.jianshu.com/p/61df283d78f8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
qujf 发表于 2021-1-18 11:17
[Python] 纯文本查看 复制代码
scores = [91, 95, 97, 99, 92, 93, 96, 98]

class Aa:
    abc = 123
    def __init__(self, scores):
        self.list = []
        self.scores = scores

    def me(self):
        a= sum(self.scores)/len(self.scores)
        print(a)
        for i in self.scores:
            if i<a:
                self.list.append(i)
            else:
                pass
        print(self.list)
b = Aa(scores)
b.me()


看下python的类变量

免费评分

参与人数 1吾爱币 +1 收起 理由
拨Q + 1 谢谢@Thanks!

查看全部评分

oppaboy 发表于 2021-1-18 11:38
答疑解惑也~
pinesnow 发表于 2021-1-19 14:09
还有一个问题:list是Python关键字,尽量不要用Python关键字作为变量名

免费评分

参与人数 1热心值 +1 收起 理由
拨Q + 1 好的我记住了,谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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