如何将python变量设置为true或false?

时间:2012-09-28 16:42:09

标签: python-2.7 boolean constants

我想在Python中将变量设置为true或false。但是truefalse这两个词被解释为未定义的变量:

#!/usr/bin/python
a = true; 
b = true;
if a == b:          
  print("same");

我得到的错误:

a = true
NameError: global name 'true' is not defined 

设置变量true或false的python语法是什么?

Python 2.7.3

5 个答案:

答案 0 :(得分:40)

首先回答您的问题,您可以通过为其分配TrueFalse将变量设置为true或false:

myFirstVar = True
myOtherVar = False

如果您的情况基本上与此类似:

if <condition>:
    var = True
else:
    var = False

然后直接简单地分配条件的结果就容易得多:

var = <condition>

在你的情况下:

match_var = a == b

答案 1 :(得分:12)

match_var = a==b

应该足够了

你不能在变量名中使用 - 因为它认为是match(减号)var

match=1
var=2

print match-var  #prints -1

答案 2 :(得分:5)

Python布尔关键字是TrueFalse,请注意大写字母。像这样:

a = True;
b = True;
match_var = True if a == b else False
print match_var;

编译并运行时,会打印:

True

答案 3 :(得分:0)

如@Spixel所述,您没有为变量分配布尔值(True或False-以大写字母开头)。相反,您已为变量分配了文本值(ns tst.demo.core (:use tupelo.core demo.core tupelo.test)) (defn accum [conds] (cond-it-> #{} ; accumulate result in a set (contains? conds :cond-1) (conj it :msg-1) (contains? conds :cond-2) (conj it :msg-2) (contains? conds :cond-3) (conj it :msg-3) (contains? it :msg-3) (disj it :msg-1) ; :msg-3 doesn't like :msg-1 )) ; remember that sets are unsorted (dotest (is= #{:msg-1} (accum #{:cond-1})) (is= #{:msg-3} (accum #{:cond-1 :cond-3})) (is= #{:msg-1 :msg-2} (accum #{:cond-2 :cond-1})) (is= #{:msg-2 :msg-3} (accum #{:cond-2 :cond-3})) (is= #{:msg-2 :msg-3} (accum #{:cond-3 :cond-2 :cond-1 })) ) 。因此,存在变量未定义错误

如果将这些文本包括在引号(true)中,那么您将获得期望的结果(a = 'true' and b = 'true')

在此处查找更多信息:http://interactivepython.org/runestone/static/CS152f17/Selection/BooleanValuesandBooleanExpressions.html

答案 4 :(得分:0)

您必须使用大写的True和False而不是True和false