|
|
发表于 2019-12-19 12:31:20
|
显示全部楼层
我重写了一下代码
- class Points:
- '''
- 这个类在实例化的时候,要传入小组的数量,或者各小组的名字
- '''
- def __init__(self,team):
- self.all = {}
- if isinstance(team,int):#给的是数量
- self.__t = 1
- for i in range(team):
- self.all[i] = 0
- elif isinstance(team,(list,str)):#给的是小组的名字
- self.__t = 2
- if isinstance(team,str):#只给一组小组的名字
- self.all[team] = 0
- else:
- for i in team:
- self.all[i] = 0
- def __repr__(self):
- return str(self.all)
- __str__ = __repr__
- def right(self,team:'小组的名字,储存在self.all的键值'):#某小组答对了
- self.all[team] += 2
- def wrong(self,team:'小组的名字,储存在self.all的键值'):#某小组答错了
- self.all[team] -= 1
- def seach(self,name:'小组的名字,储存在self.all的键值'):#查某小组的分数
- return name+'得分为%d分'%self.all[name]
-
复制代码
效果
- >>> b = Points(['组%d'%x for x in range(1,6)])
- >>> b
- {'组1': 0, '组2': 0, '组3': 0, '组4': 0, '组5': 0}
- >>> b.right('组1')
- >>> b
- {'组1': 2, '组2': 0, '组3': 0, '组4': 0, '组5': 0}
- >>> b.right('组5')
- >>> b
- {'组1': 2, '组2': 0, '组3': 0, '组4': 0, '组5': 2}
- >>> b.right('组1')
- >>> b.wrong('组1')
- >>> b
- {'组1': 3, '组2': 0, '组3': 0, '组4': 0, '组5': 2}
- >>> b.wrong('组1')
- >>> b
- {'组1': 2, '组2': 0, '组3': 0, '组4': 0, '组5': 2}
- >>> b.seach('组1')
- '组1得分为2分'
- >>>
复制代码
不晓得你还要啥功能。 |
|