# 20.9: Exercises

- Page ID
- 16982

fExercise \(\PageIndex{1}\)

*To test the square root algorithm in this chapter, you could compare it with *`math.sqrt`

*. Write a function named test_square_root that prints a table like this:*

1.0 1.0 1.0 0.0 2.0 1.41421356237 1.41421356237 2.22044604925e-16 3.0 1.73205080757 1.73205080757 0.0 4.0 2.0 2.0 0.0 5.0 2.2360679775 2.2360679775 0.0 6.0 2.44948974278 2.44948974278 0.0 7.0 2.64575131106 2.64575131106 0.0 8.0 2.82842712475 2.82842712475 4.4408920985e-16 9.0 3.0 3.0 0.0

*The first column is a number, a; the second column is the square root of a computed with the function from Section 7.5; the third column is the square root computed by *

`math.sqrt`

*; the fourth column is the absolute value of the difference between the two estimates.*

Exercise \(\PageIndex{2}\)

*The built-in function *`eval`

* takes a string and evaluates it using the Python interpreter. For example:*

>>> eval('1 + 2 * 3') 7 >>> import math >>> eval('math.sqrt(5)') 2.2360679774997898 >>> eval('type(math.pi)') <type 'float'>

*Write a function called eval_loop that iteratively prompts the user, takes the resulting input and evaluates it using *

`eval`

*, and prints the result.*

*It should continue until the user enters 'done', and then return the value of the last expression it evaluated.*

Exercise \(\PageIndex{3}\)

*The mathematician Srinivasa Ramanujan found an infinite series that can be used to generate a numerical approximation of *\( 1/\pi \):

\[ \dfrac{1}{\pi} = \dfrac{2 \sqrt{2}}{9801} \sum_{k=0}^{\infty} \dfrac{(4k)!(1103+26390k)}{(k!)^{4} 396^{4k}} \nonumber \]

*Write a function called estimate_pi that uses this formula to compute and return an estimate of *

`π`

*. It should use a*

`while`

*loop to compute terms of the summation until the last term is smaller than*

`1e-15`

*(which is Python notation for 10*

^{−15}). You can check the result by comparing it to`math.pi`

*.*

**Solution:**