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