# Square a number in python

```import math

8 * 8          # 64
8 ** 2.        # 64
math.pow(8, 2) # 64.0```

Here is what the above code is Doing:
1. 8 * 8 is an integer multiplication, so it returns an integer.
2. 8 ** 2. is a floating point exponentiation, so it returns a float.
3. math.pow(8, 2) is a floating point exponentiation, so it returns a float.

The reason for this is that ** is an operator, and it always returns the same
type as its operands. So if both operands are integers, it returns an integer,
and if both operands are floats, it returns a float.

The math.pow() function, on the other hand, is a function, and it always
returns a float.

The reason for this is that ** is an operator, and it always returns the same
type as its operands. So if both operands are integers, it returns an integer,
and if both operands are floats, it returns a float.

The math.pow() function, on the other hand, is a function, and it always
returns a float.

The reason for this is that ** is an operator, and it always returns the same
type as its operands. So if both operands are integers, it returns an integer,
and if both operands are floats, it returns a float.

The math.pow() function, on the other hand, is a function, and it always
returns a float.