Python 测试布尔变量
我创建了一系列工具,由于布尔变量,我在处理工作流时遇到了一系列问题 我举了以下例子:Python 测试布尔变量,python,python-3.x,boolean,Python,Python 3.x,Boolean,我创建了一系列工具,由于布尔变量,我在处理工作流时遇到了一系列问题 我举了以下例子: a = False b = 'false' c = 1 if a: print('a is: ', a) if b: print('b is: ', b) if c: print('c is: ', c) 输出: b is: false c is: 1 为什么在上面的例子中我没有打印我的a值?我正在使用Python3。谢谢 因为您的条件是:如果: 在Python中,a为fa
a = False
b = 'false'
c = 1
if a:
print('a is: ', a)
if b:
print('b is: ', b)
if c:
print('c is: ', c)
输出:
b is: false
c is: 1
为什么在上面的例子中我没有打印我的a值?我正在使用Python3。谢谢 因为您的条件是:如果: 在Python中,a为false:
if something:
action
要执行操作
,某些内容
必须为真
。您的a
不是这种情况,因此这里不执行操作
(打印)
因此,在您的情况下,如果您想打印它,您需要使用而不是:
if not a:
print('a is: ', a)
在这个问题上,这仅仅是因为a
是False
但是,我假设您想做的是检查a
、b
和c
的存在性,对吗
要检查局部变量是否存在,请执行以下操作:
if 'myVar' in locals():
# myVar exists.
if 'myVar' in globals():
# myVar exists.
要检查全局变量是否存在,请执行以下操作:
if 'myVar' in locals():
# myVar exists.
if 'myVar' in globals():
# myVar exists.
在python中,类型是固定的。不能像在Javascript中那样将一种类型强制转换为另一种类型。因此,在您的代码中:
False
就是False。这就是为什么它不会打印出if
语句中的内容
'false'
是一个字符串,但是如果使用它,您可以执行。考虑以下事项:
if "":
print("1")
if "abc":
print("2")
这将只打印2
,因此此处的if
语句将检查字符串是否为空
- 如果
用于整数,则与相同。它将检查数字是否不为零
因为a为假?嗯,我认为条件是测试变量是否存在,即使变量为假。@Litwos,那么你错了。@khelwood:在我的程序中,变量可以是“假”或“假”,所以我认为这种条件不利于正确管理变量workflow@Litwos检查我的答案,希望这是您需要的。我需要查看变量是“false”还是false。所以我的条件不合适。对Python语法添加了一些解释。如果变量是字符串“false”
或布尔值false
,可以检查a==“false”或a==false:
。我想我现在明白了。“if:”条件的工作方式因值类型而异(空字符串为False,False为False,0为False)。我明白了吗?是的,看起来是这样的。而且,None
也被视为False
。现在清楚了。我必须对if语句更加小心D