just the usual comparison via `== `

works not as needed:

```
& gt; & gt; & gt; 0 == False
True.
```

## Answer 1, Authority 100%

If the essence of the question in comparing the values and types, you can do this:

```
def strict_eq (obj1, obj2):
IF Type (OBJ1)! = Type (OBJ2):
Return False.
RETURN OBJ1 == OBJ2
```

```
in [4]: strict_eq (0, false)
Out [4]: False
```

PS You can go even further for numerical types to compare the numbers to a certain accuracy to avoid known floating point problems:

```
in [5]: 0.1 + 0.2 == 0.3
Out [5]: False
```

Strict comparison function with a certain accuracy:

```
from numbers import number
DEF STRICT_EQ (OBJ1, OBJ2, EPSILON = 1E-7):
IF Type (OBJ1)! = Type (OBJ2):
Return False.
IF IsInstance (OBJ1, Number):
RETURN ABS (OBJ1 - OBJ2) & LT; Epsilon.
RETURN OBJ1 == OBJ2
```

```
in [10]: strict_eq (0.1 + 0.2, 0.3)
Out [10]: True
```

## Answer 2, Authority 7%

For many cases it is possible to apply a comparison `ID `

s:

```
ID (0) == ID (FALSE)
```

`false`

It does not quite correspond to the Operator `=== `

(JavaScript), but it can be useful.

## Answer 3

What exactly is it confused? In `python `

`True = 1 `

, and `false = 0 `

. If you need to compare the words `true `

and `false `

, then just take them as rows for example `0 == "false" `