2013-02-22 3 views
23

デザイン次の文の論理式と等価である場合:チェック対象が数値またはブール

xが3つのまたは5の要素のリストでは、2番目の要素はその文字列'Hip'と最初 ですその数はブール値ではありません。私が持っているもの

x = ['Head', 'Hip', 10] 
print x[1] is 'Hip' 

私の質問:どのようにあなたはそれがブール値または数値であるかどうかをチェックするのですか?

答えて

30

特定の質問に答えるために:x[0]はタプル(int, float)内の型のいずれかのインスタンスである場合

isinstance(x[0], (int, float)) 

このチェックを。

boolはそれ自体intのサブクラスであるため、そこにboolを追加することもできますが、必ずしも必要ではありません。

ドキュメントの参照:


あなたの現在のコードにコメントをするには、interning of short stringsに頼るべきではありません。 python3で

type(x) == type(True) 
5
import types 
type(x) == types.BooleanType 
+0

'types.BooleanType'がPython 3から削除されました。代わりに' bool'が使用されています。ソース:http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html#types – KSR

16

最も簡単:あなたが==演算子で文字列を比較することになっています。

+0

ちょっとハッキーだけど輸入はないので、+1 –

+9

おそらく直接 'type(x)is isブール '? – lerner

3

これは次のようになります:type(x)==boolexampleを参照してください、私が言う

x[1] == 'Hip' 
+0

マインは両方で動作します。論理は主に言語に依存しない。 – CurlyMo

関連する問題