Python菜鸟出错:AttributeError: 'NoneType' object has no attribute 'append'

具体代码如下:主要是写一个练习程序,我想记录每轮比赛的得分情况

from random import choice
print 'Baby,choose one direction to shoot!'
print 'left,center,right'
win=1
lose=0
u_score=[]
com_score=[]

for i in range(1,3):
shoot=raw_input()
print "++++round%d++++"%(i)
print 'You kicked '+shoot
direction=["left",'center','right']
defend=choice(direction)
print 'Com kicked '+defend
if shoot!=direction:
u_score=u_score.append(win) #出错:AttributeError: 'NoneType' object has no attribute 'append'
com_score=com_score.append(lose)
else:
u_score=u_score.append(lose)
com_score=com_score.append(win)

print u_score

问题出在这里:u_score=u_score.append(lose)

要知道,append方法是没有返回值的。也就是说,上述语句第一次会成功执行,并且将u_score赋值为None;第二次调用就会报错,因为None是不能调.append方法的,

修改方法也简单,u_score.append(lose)就可以了,不要接返回值追问

非常感谢半夜指点!!!!!~
另外能否请教下,我想直接再求和list 里面的元素总和,有对应函数可以直接用么?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-07
我觉得解答并不切中要害。我的解答如下,供讨论。
append()可以对u_score直接操作,不需要赋值,多此一举。改正方法如下:
把u_score = u_score.append(win)改为 u_score.append(win)即可,
后面还有三处,也用这种方法修改即可。
第2个回答  2017-11-04
if shoot!=direction: #这一句有问题,应该改为if shoot!=defend: