Question: ```py
# x = 1
# x = 0

if x:
    print(f'x = {x}, and therefore it\'s truthy')
else:
    print(f"x = {x}, and therefore it's falsey")

```

Hi everyone, I am a little confused with this exercise. The code doesn't have any explanation as when the system should print `truthy` or `falsey` yet it knows when to print it. Why is that?

Answer: 
If *x* is an int and has a value of zero it is equal to False and therefore falsey. If *x* is an int and has a value of 1 it is equal to True and is therefore truthy. However, if *x* is an int and is neither 0 nor 1 it is truthy but **not** equal to True. Therefore, when *x* is of type int, *if x:* can be interpreted as 'if x is non-zero'
the funny part is if you use

```
x = 0.00000000000001

```

it will also consider as true. cause it is not actually equal to zero. in math we consider this as zero for easy calculation. but computer dont do this cause this can create big problem in calculation if we consider a big picture. Example:

```
y = x ** x
print(y)

```

so if we consider x as zero, y will be also zero. but its not.
i hope you enjoyed to learn why 0.000000000001 is not equal to zero in computer.Thanks.