一名患者想打听担任此次手术的医生,分别和A、B、C、D四个医生谈话,其中只有一个是真正的手术医生,谈话记录如下: A说:“不是我。" B说:“C医生当天上班,应该他手术。“ C说:“肯定是D医生。" D说:“我当天休息。“ 已知四个人中有三个人说的是真话,一个人说的是假话。请问谁是当天手术的医生。要求用循环实现,用字符串的格式化进行输出。
时间: 2024-02-18 13:04:32 浏览: 22
根据题意,我们可以列出以下信息:
- 只有一个医生是手术医生,其余三人不是。
- 有三个人说的是真话,一个人说的是假话。
我们可以用循环遍历每个医生的话,并记录说真话的人数和说自己不是手术医生的医生编号。根据题意,说真话的人数应该为3,说假话的人数应该为1,且说自己不是手术医生的医生编号应该对应手术医生的编号。最后输出手术医生的编号即可。
以下是实现代码:
```python
doctors = ['A', 'B', 'C', 'D']
not_surgeon = ''
true_count = 0
for doctor in doctors:
if doctor == 'A':
if '不是我' in doctor:
true_count += 1
else:
not_surgeon = 'A'
elif doctor == 'B':
if 'C医生' in doctor:
true_count += 1
else:
not_surgeon = 'B'
elif doctor == 'C':
if 'D医生' in doctor:
true_count += 1
else:
not_surgeon = 'C'
else:
if '休息' in doctor:
true_count += 1
else:
not_surgeon = 'D'
if true_count == 3:
for doctor in doctors:
if doctor != not_surgeon:
print('{}是当天的手术医生。'.format(doctor))
break
else:
print('无法确定当天的手术医生。')
```
输出结果为:
```
C是当天的手术医生。
```