# Lengths of preperiod and period of a rational number

I found something for Continued fractions, but I ask myself:

*I there an easy way to get the lengths of preperiod and period of a rational number?*

It seems for Rational numbers I can only use `a.period()`

, not `a.preperiod()`

.

For, say, 1/7 = 0.142857142857... I should get something like:

`Length of preperiod: 0`

`Length of period: 6`

```
a = 1/7
print(float(a))
print('a.period() gives me the length of the period:', a.period())
print('a.preperiod() does not work', #a.preperiod())
```

Out:

```
0.142857142857
a.period() gives me the length of the period: 6
a.preperiod() does not work
```

It's really not well-defined. For all you know, $0.142857142857=\frac{142857142857}{1000000000000}$, in which case the decimal expansion should be extended with $0$, so the period will be $1$ and the preperiod will be the place of the last non-zero digit.

@nbruin I posted an answer. ;)

Ah, I see

`period`

is a method on a rational number, not on a float. That makes perfect sense then. Apologies for the noise.