钱闻韬 发表于 2018-9-23 11:17:09

本主题需向作者支付 10 鱼币 才能浏览 购买主题

pyhero 发表于 2018-9-25 13:18:58

本帖最后由 pyhero 于 2018-9-25 13:22 编辑

answers = dict()
persons = ['A', 'B', 'C', 'D']

# get answers
for person in persons:
    print('Ask {}'.format(person))
    answer = dict()
    total = {'0': 0, '1': 0, '2': 0}
    for p in :
      value = input('Is {} the prisoners? 0: No, 1: Yes, 2 Unknown: '.format(p))
      while value not in ['0', '1', '2']:
            value = input('Bad input, chose from: 0: No, 1: Yes, 2 Unknown: ')

      total += 1
      answer = int(value)

    mapping = {'是凶手票数': total['1'], '不是凶手票数': total['0'], '不知道票数': total['2']}
    answers =

# judge prisoners
for k, v in answers.items():
    print('{}: {}, 投票情况: {}'.format(k, v, v))

result = sorted(answers.items(), key=lambda x: x['是凶手票数'])[-1]
print('凶手是{}'.format(result))


执行过程:
Ask A
Is B the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is C the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is D the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Ask B
Is A the prisoners? 0: No, 1: Yes, 2 Unknown: 2
Is C the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is D the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Ask C
Is A the prisoners? 0: No, 1: Yes, 2 Unknown: 2
Is B the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is D the prisoners? 0: No, 1: Yes, 2 Unknown: 2
Ask D
Is A the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is B the prisoners? 0: No, 1: Yes, 2 Unknown: 1
Is C the prisoners? 0: No, 1: Yes, 2 Unknown: 1
A: {'是凶手票数': 3, '不是凶手票数': 0, '不知道票数': 0}, 投票情况: {'B': 1, 'C': 1, 'D': 1}
B: {'是凶手票数': 2, '不是凶手票数': 0, '不知道票数': 1}, 投票情况: {'A': 2, 'C': 1, 'D': 1}
C: {'是凶手票数': 1, '不是凶手票数': 0, '不知道票数': 2}, 投票情况: {'A': 2, 'B': 1, 'D': 2}
D: {'是凶手票数': 3, '不是凶手票数': 0, '不知道票数': 0}, 投票情况: {'A': 1, 'B': 1, 'C': 1}
凶手是D


不足:如果有票数相同的,会只打印最后一个
页: [1]
查看完整版本: Python 么循环解决后给鱼币