55

次のステートメントと同等の論理式を設計します。

xは3つまたは5つの要素のリストであり、その2番目の要素は文字列'Hip'であり、最初の要素は数値またはブール値ではありません。

私が持っているもの:

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

私の質問:それがブール値であるか数値であるかをどのように確認しますか?

4

7 に答える 7

73

特定の質問に答えるには:

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

x[0]これは、 が tuple 内のいずれかの型のインスタンスであるかどうかをチェックします(int, float)

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

ドキュメント参照:


現在のコードにコメントするには、短い文字列のインターンに頼るべきではありません。==文字列を演算子と比較することになっています:

x[1] == 'Hip'
于 2013-02-22T08:33:49.087 に答える
39

最も簡単に言うと:

type(x) == type(True)
于 2016-01-05T13:51:47.940 に答える
32

python3 では、これは次のようになります:type(x)==boolを参照してください。

于 2016-08-02T07:54:28.320 に答える
14

パイソン 2

import types

x = False
print(type(x) == types.BooleanType) # True

パイソン3

# No need to import types module
x = False
print(type(x) == bool) # True
于 2015-09-25T20:38:20.183 に答える