今天写了一个简单的代码,但是问题不断,断断续续一天才完成,写这篇博客好好分析以下:
问题就是建立个student对象里面有name和count,记载某人的投票数.原始数据已给出.
示例代码如下:
A=['tom','adel','alex']
B=[4,3,2]
class Student:
def setName(self,name):
self.name=name
def setCount(self,count):
self.count=count
def getName(self):
return self.name
def getCount(self):
return self.count
def _str_(self):
return "%s:%s"%(self.name,self.count)
C=zip(A,B)
Stu_list=[]
for i in range(len(C)):
Stu=Student()
Stu.setName(C[i][0])
Stu.setCount(C[i][1])
Stu_list.append(Stu)
for i in range(len(C)):
print Stu_list[i]._str_()
现在我仔细梳理一下我遇到的各种问题:
1: for i in range(len(C)):
在这一句中我想得出C列表的长度,并进行循环操作,这时必须要用range函数才可以不然会得到错误如下:
TypeError: 'int' object is not iterable
2: Stu=Student()
在没有建立实例的情况下直接使用Student对象.谨记谨记!
3: Stu_list.append(Stu)
之前一直写Stu[i]一直出错.后来知道只有建立列表才能这样使用,和C语言的结构体数组混淆了.
随后建立了Stu_list数组利用append函数加入对象.
4: print Stu_list[i]._str_()
在输出时一开始直接使用 print Student 结果出来的是:
[<__main__.Student instance at 0x7f6fbbbdcbd8>,
类似于存储地址
输出地址中内容要么使用 Stu_list.getName 要么加入_str_函数然后用
print Stu_list._str_() 就可以了.
总结起来感觉没有什么好说的,当时写的时候真的是麻烦不断阿!!!!