我们假设我们有以下代码来检测文档的星级。如果星级评分是50.0,它会使用stars_indicator = True表示它,我们希望做一些事情'在这种情况下,如果星级评分为10.0,则使用stars_indicator = False指示它,我们希望做其他事情'在这种情况下。
stars_indicator = sentiment_indicator = None
if document[stars] == 50.:
stars_indicator = True
elif document[stars] == 10.:
stars_indicator = False
我们如何检查是否应该做某事'或者'做别的事情'?
检查它是否真实
if stars_indicator:
# do something
检查是否为假或无效的简单方法
if not stars_indicator:
# do something else
但是通过这种方式,if条件不会区分这两个选项,并且会做出其他事情'如果stars_indicator为False或None。
答案 0 :(得分:6)
更好的方法是使用is
明确检查False或None:
if stars_indicator is None:
答案 1 :(得分:1)
虽然其他人已经回答了如何检查您的变量是True,False还是None,但我想指出,如果您只是在没有Stars_indicator的情况下工作,那么在您的代码段中可能会更容易:
if document[stars] == 50.:
# Do what you would do if stars_indicator was True
elif document[stars] == 10.:
# Do what you would do if stars_indicator was False
else:
# Do what you would do if stars_indicator was None
通过这种方式,您无需在变量中对结果进行编码,只需再次解释变量即可。当然,这完全取决于您提供的代码段。
答案 2 :(得分:-1)
这种问题的正确方法是使用isinstance()
if isinstance(stars_indicator, bool) and not stars_indicator:
# do something else
isinstance(stars_indicator,bool)将首先确保变量不是None,并且只确保变量为False。
这是我遇到的一个问题,并希望分享其解决方案。