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

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

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
展开
 我来答
WM_THU
推荐于2017-11-07 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3930万
展开全部
问题出在这里:u_score=u_score.append(lose)

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

修改方法也简单,u_score.append(lose)就可以了,不要接返回值
追问
非常感谢半夜指点!!!!!~
另外能否请教下,我想直接再求和list 里面的元素总和,有对应函数可以直接用么?
百度网友715f949
2017-11-07
知道答主
回答量:1
采纳率:0%
帮助的人:935
引用WM_THU的回答:
问题出在这里:u_score=u_score.append(lose)

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

修改方法也简单,u_score.append(lose)就可以了,不要接返回值
展开全部
我觉得解答并不切中要害。我的解答如下,供讨论。
append()可以对u_score直接操作,不需要赋值,多此一举。改正方法如下:
把u_score = u_score.append(win)改为 u_score.append(win)即可,
后面还有三处,也用这种方法修改即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鄙人只玩贱
2017-11-04
知道答主
回答量:1
采纳率:0%
帮助的人:936
展开全部
if shoot!=direction: #这一句有问题,应该改为if shoot!=defend:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式