2017-09-15 16 views
1

時々私は式の論理値を確認したいので、私は、Python(あるいはIPython)に入力し、結果を得る:対話シェルの式の論理値をチェックする方法は?

>>> a==3 
True 

しかし、他のケースでは、そのように動作しません(ここでは文字列なし)ではありません:

>>> string 
>>> 

だから私はこのような論理値をチェックします。

>>> if string: print('True') 
... 
>>> 

は、式の論理値をチェックするための短い方法はありますか? を返す関数またはの場合と同じ方法で、の条件を返しますか?

+0

あなたの例で 'False'を返す' string is not None'でNoneをテストできます。 – GPhilo

+0

私は知っています。 *文字列*がif条件でTrue *または* False *を返すかどうかをチェックしたい。しかし、* string *(次の行)と入力すると、結果が得られません。 – MaxGyver

+0

私はコードブロックから文字列の割り当てを削除しました。だから、今や私が意味していたことがはっきりしています。 – MaxGyver

答えて

5

式の論理値をチェックする方法はありますか?

はい、それはbool()機能です:

>>> string = None 
>>> bool(string) 
False 
7

Noneを生成するものを除くすべての式がエコーされます。

データがエコーされない式を実行すると、おそらくNoneという結果になります。明示的Noneをテストすることができます:is Noneを使用して

>>> string = None 
>>> string is None 
True 

は、非None結果を生成します。

ブール値の式の値をテストする場合は、bool() functionを使用します。それは、標準truth value testing rules次の結果を返します:

再び
>>> string = None 
>>> bool(string) 
False 

を、これはNoneこととエコーされないことが保証されます。ただし、Noneと他のfalse-y値をこのように区別することはできません。空の文字列''は、たとえばFalseにもなります。

別の方法としては、明示的に使用して、すべての式の結果を印刷することであるrepr() function

>>> print(repr(string)) 
None 

エコーがするように。これは、その後Noneがあまりにも印刷されていることを一つの例外を除いて、まったく同じ出力を生成します。

2

はい、常にTrueまたはFalseされる、式から直接ブール値を作成します。

>>> bool(string) 
False 
1

string is Noneまたはstring is not None戻りますあなたが必要とするブール値

>>> string = None 
>>> string is None 
>>> True 
+0

あなたの答えをありがとう!しかし、 "bool()"は私が必要としていたものです。もしstring = ''なら、私はFalseにもなります。 – MaxGyver

+0

'string is None'はboolを返します – magicleon

+1

ここで' else: 'を使うことができます。 'elif'条件は' if'条件の正確な逆です。 –

関連する問題