2011-01-11 10 views
1
>>> a = False 
>>> b = False 
>>> a | b 
True 
>>> a 
True 
>>> b 
True 

私はこれをPythonインタプリタで取得します。信じられないpythonブール機能

私はそうは思わない。 python boolean typeに関する詳細な資料はありますか?

Python 2.6.6、ありがとう!

+0

これは本当ですか?どのプラットフォームですか? – Anycorn

+0

確かに、通訳者に何か間違いがあります。終了してもう一度お試しください。 http://uthcode.codepad.org/DLc4pEPQ –

+0

私はubuntu 10.10です。 – Ikbear

答えて

7

私はあなたの問題は理にかなっている唯一のコンテキストを見ることができますか?上記が発生した場合は、1を取得する必要があります。試してみてください:

>>> False = bool(0) 
>>> a = False 
>>> b = False 
>>> a | b 
False 
これがなぜ起こったかのように

限り - 多分誰かがあなたにいたずらを果たし、Falseの値を変更(this answerを参照してください)?私は本当にこれを引き起こす何かを考えることができません。これを防ぐために、いつでもFalsebool(0)に設定することができます。

または、TrueFalseの予約語を変更できないPython 3に切り替えます。

+0

うわー、華麗なキャッチ。 –

2

|は、Pythonのbitwise-or演算子です。

>>> a = False 
>>> b = False 
>>> a or b 
False 
>>> a 
False 
>>> b 
False 

あなたはビット演算子here詳細を読むことができます:あなたは条件付きチェックをやっている場合は

あなたはor演算子を使用する必要があります。

編集/サイド注:あなたがあなたの質問に投稿されたコードを実行した後、私は同じ結果を得ていないのです...

+0

リンクありがとう!私は私の通訳から得たものを信じることができません:-) – Ikbear

4

何かがあなたの通訳が間違っている...あなたのインストールで何か問題があるかもしれません: - print int(False)の結果は何デバッグを開始するには

>>> False = True 
>>> a = False 
>>> b = False 
>>> a | b 
True 
>>> a 
True 
>>> b 
True 
>>> 

Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> False | False 
False 
>>> a = False 
>>> b = False 
>>> a | b 
False 
+0

ありがとう!私のプログラムにバグがありました。 – Ikbear

関連する問題