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 展开
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)就可以了,不要接返回值
要知道,append方法是没有返回值的。也就是说,上述语句第一次会成功执行,并且将u_score赋值为None;第二次调用就会报错,因为None是不能调.append方法的,
修改方法也简单,u_score.append(lose)就可以了,不要接返回值
追问
非常感谢半夜指点!!!!!~
另外能否请教下,我想直接再求和list 里面的元素总和,有对应函数可以直接用么?
引用WM_THU的回答:
问题出在这里:u_score=u_score.append(lose)
要知道,append方法是没有返回值的。也就是说,上述语句第一次会成功执行,并且将u_score赋值为None;第二次调用就会报错,因为None是不能调.append方法的,
修改方法也简单,u_score.append(lose)就可以了,不要接返回值
问题出在这里: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)即可,
后面还有三处,也用这种方法修改即可。
append()可以对u_score直接操作,不需要赋值,多此一举。改正方法如下:
把u_score = u_score.append(win)改为 u_score.append(win)即可,
后面还有三处,也用这种方法修改即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if shoot!=direction: #这一句有问题,应该改为if shoot!=defend:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询