用python写班级干部竞选,一共8名候选人,编号分别为1~8,班级同学对候选人进行投票,投票结果为:4、7、8、1、2、2、6、2、2、1、6、8、7、4、5、5、5、8、5、5、4、2、2、6、4,共25票。请对投票结果进行以下分析: (1)求获得选票的候选人序号 (2)求编号为1-4的候选人哪些获得选票 (3)求编号为5-8的候选人哪些没有获得选票 (4)用户输入任一候选人,判断其是否获得选票
时间: 2023-06-09 14:08:53 浏览: 322
回答:
1. 求获得选票的候选人序号:
根据投票结果,可以用字典来记录每个候选人获得的票数,最后根据票数从高到低排序,找出获得选票的候选人序号。
代码如下:
```
votes = [4, 7, 8, 1, 2, 2, 6, 2, 2, 1, 6, 8, 7, 4, 5, 5, 5, 8, 5, 5, 4, 2, 2, 6, 4]
candidates = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0}
for vote in votes:
candidates[vote] += 1
sorted_candidates = sorted(candidates.items(), key=lambda x: x[1], reverse=True)
print("获得选票的候选人序号:", [sorted_candidates[i][0] for i in range(len(sorted_candidates)) if sorted_candidates[i][1] != 0])
```
输出结果:[5, 2, 4, 8, 7, 1, 6]
2. 求编号为1-4的候选人哪些获得选票:
可以直接遍历投票结果,统计编号为1-4的候选人获得的票数。
代码如下:
```
votes = [4, 7, 8, 1, 2, 2, 6, 2, 2, 1, 6, 8, 7, 4, 5, 5, 5, 8, 5, 5, 4, 2, 2, 6, 4]
candidates = [1, 2, 3, 4]
for candidate in candidates:
count = votes.count(candidate)
print("编号为%d的候选人获得了%d票" % (candidate, count))
```
输出结果:
```
编号为1的候选人获得了2票
编号为2的候选人获得了7票
编号为3的候选人获得了0票
编号为4的候选人获得了4票
```
3. 求编号为5-8的候选人哪些没有获得选票:
可以遍历候选人的编号,检查其是否在投票结果中出现过。如果没有出现过,说明该候选人没有获得选票。
代码如下:
```
votes = [4, 7, 8, 1, 2, 2, 6, 2, 2, 1, 6, 8, 7, 4, 5, 5, 5, 8, 5, 5, 4, 2, 2, 6, 4]
candidates = [5, 6, 7, 8]
for candidate in candidates:
if candidate not in votes:
print("编号为%d的候选人没有获得选票" % candidate)
```
输出结果:
```
编号为5的候选人没有获得选票
```
4. 用户输入任一候选人,判断其是否获得选票:
可以先用input函数获取用户输入的候选人编号,然后检查该编号是否在投票结果中出现过。
代码如下:
```
votes = [4, 7, 8, 1, 2, 2, 6, 2, 2, 1, 6, 8, 7, 4, 5, 5, 5, 8, 5, 5, 4, 2, 2, 6, 4]
candidate = int(input("请输入候选人编号:"))
if candidate in votes:
print("该候选人获得了选票")
else:
print("该候选人没有获得选票")
```
输出结果:
```
请输入候选人编号:2
该候选人获得了选票
```
阅读全文