python - operadores - valores booleanos y operaciones logicas
Compruebe si el objeto es un nĂºmero o booleano (5)
Debes comparar el tipo de x
con la clase bool
:
type(x) == bool
o:
type(x) == type(True)
Aquí hay más sobre el método de tipo
De los documentos del modelo de datos :
Booleanos (bool)
Estos representan los valores de verdad Falsos y Verdaderos. Los dos objetos que representan los valores False y True son los únicos objetos booleanos. El tipo booleano es un subtipo del tipo entero, y los valores booleanos se comportan como los valores 0 y 1, respectivamente, en casi todos los contextos, con la excepción de que cuando se convierten a una cadena, las cadenas "Falso" o "Verdadero" son devueltas , respectivamente.
Diseña una expresión lógica equivalente a la siguiente declaración:
x
es una lista de tres o cinco elementos, cuyo segundo elemento es la cadena''Hip''
y el primero de los cuales no es un número o booleano.
Lo que tengo:
x = [''Head'', ''Hip'', 10]
print x[1] is ''Hip''
Mi pregunta: ¿cómo se verifica si es o no un booleano o un número?
En python3 esto sería: type(x)==bool
see example .
Lo más fácil que diría:
type(x) == type(True)
Para responder la pregunta específica:
isinstance(x[0], (int, float))
Esto comprueba si x[0]
es una instancia de cualquiera de los tipos en la tupla (int, float)
.
Puedes agregar bool
también, pero no es necesario, porque bool
es una subclase de int
.
Referencia de Doc:
Para comentar sobre su código actual, no debe confiar en el interinato de cadenas cortas . Se supone que debes comparar cadenas con el operador ==
:
x[1] == ''Hip''
import types
type(x) == types.BooleanType