拨Q 发表于 2021-1-18 11:00

Python求助,错了2个地方,17行和12行为啥呢

本帖最后由 拨Q 于 2021-1-18 11:18 编辑

scores =
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行为啥呢

公子如玉世无双 发表于 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变成全局变量就可以传递内容了

拨Q 发表于 2021-1-18 11:16

看来知识没有掌握牢:
Python中 append|extend|insert|add 区别
append(seq)
将对象作为一个整体,添加到列表末尾,添加后列表仅增加1个元素。该对象可以是任意数据类型,函数没有返回值。
a =
b = ['mac', 'linux']
a.append(b)
a
-- > ]
extend(seq)
将一个可迭代对象中的所有元素(N个),逐个添加到列表末尾,添加后列表元素增加N个;
通常,可迭代对象为list;为字符串时把每个字符逐个添加到列表末尾;为字典时,将字典的key添加到列表末尾。函数没有返回值。
a =
b = ['mac', 'python']
c = 'linux'

a.extend(b)
a
-- >

a.extend(c)
a
-- >
insert(index, obj)
将对象作为一个整体,添加到列表的指定位置,添加后列表仅增加1个元素,方法类似append();
特别地,在列表最后添加元素时,index为len(object),index为-1时插入到倒数第二的位置,并非末尾。
a =
b = 'python'
a.insert(1, b)
a
-- >
add(element)
将对象作为一个整体,为集合(set)添加元素,若添加的元素已在集合中,则不执行任何操作
a = {"python", "mac"}
b = "linux"
a.add(b)
a
-- > {'linux', 'mac', 'python'}

作者:惑也
链接:https://www.jianshu.com/p/61df283d78f8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

qujf 发表于 2021-1-18 11:17

scores =

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的类变量

oppaboy 发表于 2021-1-18 11:38

答疑解惑也~

pinesnow 发表于 2021-1-19 14:09

还有一个问题:list是Python关键字,尽量不要用Python关键字作为变量名
页: [1]
查看完整版本: Python求助,错了2个地方,17行和12行为啥呢