我的程序中有两个布尔变量叫做after和late。为了确保每个变量都得到正确的值,我使用以下命令测试每个变量:
print(after)
print(late)
程序打印
false
true
正如所料。但是,当我运行以下代码时:
if after and late:
print('true and true')
elif after and (not late):
print('true and false')
elif (not after) and late:
print('false and true')
elif (not after) and (not late):
print('false and false')
程序打印
'true and true'
表示后面和后面的表达式评估为true。为什么这个评估为真,即使true和false应该产生错误?
答案 0 :(得分:4)
>>> print(True and False)
False
Boolean值在开头有一个大写字母。我猜你用的是字符串。您可以使用type(after)
检查该内容。
您无需手动划分所有案例以“调试”您的程序。这不是Python的目的......
只需print
已评估的代码print(after+' and '+late)
,就像我一样使用type
或使用交互式python控制台来玩游戏。