26

Python での次のステートメントの意味は何ですか。

x = variable_1 or 0

variable_1はオブジェクトです。x上記の値は何ですか?そして、タイプはx何ですか?

4

4 に答える 4

29

variable_1 が に評価される場合False、x は に設定され0、それ以外の場合は に設定されます。variable_1

と考えてください。

if variable_1:
  x = variable_1
else:
  x = 0
于 2012-08-31T10:25:36.823 に答える
22

x0false と評価された場合は になりvariable_1、そうでない場合はvariable_1

>>> 'abc' or 0
'abc'
>>> '' or 0
0
>>> ['a', 'b', 'c'] or 0
['a', 'b', 'c']
>>> [] or 0
0
于 2012-08-31T10:25:20.717 に答える
4

xvariable_1その値がまたはでない場合Noneに初期化されますFalse

簡単な例:

>>> a = None
>>> b = 2
>>> a or 0
0
>>> b or 0
2
于 2012-08-31T10:27:39.427 に答える
2
x = variable_1 or 0

これは、 が にvariable_1評価される場合False(つまり、「空」と見なされる - マジック メソッド のドキュメントを参照__nonzero__)、0が に割り当てられることを意味しxます。

>>> variable_1 = 'foo'
>>> variable_1 or 0
'foo'
>>> variable_1 = ''
>>> variable_1 or 0
0

これは、「variable_1 が空でない値に設定されている場合はその値を使用し、それ以外の場合は 0 を使用する」と同等です。

の型xvariable_1またはの型ですint(0 は であるためint)。

于 2012-08-31T10:30:04.107 に答える