这是我的代码。无论我为A和B输入什么,它总是返回false ..
def TorF():
for i in range(10):
A = input('A: ')
B = input('B: ')
print((A and not B) or (B and not A))
TorF()
结果:
>>>
A: True
B: False
False
A: True
B: True
False
A: False
B: True
False
答案 0 :(得分:1)
在3.X中,input
返回一个字符串,因此您实际上并没有在bools上执行布尔逻辑。它始终评估为False
,因为not s
对于任何非空字符串False
都是s
;对于s and False
的任何值,False
为s
;当然False or False
是False
。尝试事先明确转换A和B的类型。
def TorF():
for i in range(10):
A = input('A: ').lower() == "true"
B = input('B: ').lower() == "true"
print((A and not B) or (B and not A))
TorF()
结果:
A: True
B: False
True
A: True
B: True
False
A: False
B: True
True