Python范围和if-then语句

时间:2015-04-13 18:43:31

标签: python python-2.7

我想根据python中另一个变量的值设置一个变量。但是当我在if - then语句中询问变量集的值时,它无法找到变量,显然是因为它现在超出了范围。

请考虑以下事项:

>>> a = True
>>> if a:
...     b=1
... else:
...     b=2
>>> print b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined

有没有pythonic方式来写这个?例如,以下代码有效,但它是正确的方式&#34;写它,还是有更好的方法?

>>> b = None
>>> if a:
...     b=1
... else:
...     b=2
... 
>>> b
1

1 个答案:

答案 0 :(得分:2)

对于简单的作业,您可以使用python's equivalent of ternary operator

>>> a = True
>>> b = 1 if a else 2
>>> b
1

另外,我无法重现你给出的例子,

In [1]: a = True

In [2]: if a:
   ...:     b = 1
   ...: else:
   ...:     b = 2
   ...:     

In [3]: print b
1