统计票数的方法有很多种,以下是一个简单的Python示例,展示了如何使用字典来存储候选人和他们获得的票数,并提供了一个统计功能来显示结果:
```python
定义一个字典来存储候选人和他们获得的票数
candidates = { '张三':0, '李四':0, '王五':0 }
定义一个集合来记录已经投过票的用户
voted_users = set()
定义一个函数来处理投票
def vote(name):
if name in candidates:
candidates[name] += 1
return f'投票成功!{name}当前得票数:{candidates[name]}'
else:
return '咦?这个人不在候选名单里哦'
定义一个函数来显示投票结果
def show_results():
sorted_results = sorted(candidates.items(), key=lambda x:x, reverse=True)
result_str = '当前投票结果:\n'
for name, votes in sorted_results:
result_str += f'{name}:{votes}票\n'
return result_str
测试投票
print(vote('张三'))
print(vote('李四'))
print(vote('张三'))
显示投票结果
print(show_results())
```
代码解释:
定义候选人和票数
```python
candidates = { '张三':0, '李四':0, '王五':0 }
```
这里使用字典`candidates`来存储每个候选人的得票数,初始值为0。
记录已投票用户
```python
voted_users = set()
```
使用集合`voted_users`来记录已经投过票的用户,以确保每个用户只能投一次票。
投票函数
```python
def vote(name):
if name in candidates:
candidates[name] += 1
return f'投票成功!{name}当前得票数:{candidates[name]}'
else:
return '咦?这个人不在候选名单里哦'
```
这个函数接受一个名字作为参数,如果这个名字在候选人的字典中,则增加其票数并返回成功信息;否则返回一个错误信息。
显示结果函数
```python
def show_results():
sorted_results = sorted(candidates.items(), key=lambda x:x, reverse=True)
result_str = '当前投票结果:\n'
for name, votes in sorted_results:
result_str += f'{name}:{votes}票\n'
return result_str
```
这个函数将候选人的得票数按降序排序,并生成一个字符串来显示结果。
测试投票和显示结果
```python
print(vote('张三'))
print(vote('李四'))
print(vote('张三'))
print(show_results())
```
这里通过调用`vote`函数来模拟投票过程,并通过`show_results`函数来显示最终的投票结果。
通过这种方式,你可以轻松地统计和管理候选人的得票数,并且可以根据需要扩展和修改代码。