逻辑推演题——谁是骗子
在小红书看到一道逻辑问题(见下图),突发奇想地想用Python推演答案。

有大神只用了11行就得到了正确答案。代码见下面:
def check_liar(liar):
xiaoming = (liar != "小明")
xiaohong = xiaoming and liar != "小红"
xiaohua = (liar == "小红")
xiaole = (liar == "小华")
truth_count = int(xiaoming) + int(xiaohong) + int(xiaohua) + int(xiaole)
print(truth_count)
return truth_count == 3
for candidate in ["小明", "小红", "小华", "小乐"]:
if check_liar(candidate):
print("骗子是{}".format(candidate))
自己学了几年Python,还不能解决这个初级问题,感觉备受打击。
