Loops
For loops
One way Python implements loops is through for
. The syntax of for
loops is:
for element in someCollection:
STATEMENTS
That is, in Python, for loops can be (roughly) thought of transversals over ordered collections. As a concrete example, we will run the following program:
for name in ['Alice', 'Bob', 'Eve']:
print(name)
This prints
Alice
Bob
Eve
Another classic example is to create a for
loop of the following form:
for i in range(5):
print(i)
This prints
0
1
2
3
4
While loops
Python also implements while
loops via the following syntax:
while CONDITION:
STATEMENTS
Compared to for
loops, we typically use while
loops when we do not know the exact number of iterations we will need. For instance, suppose we want to keep looping until the user tells the program they want it to quit:
userInput = ''
while userInput != 'quit':
userInput = input('Type "quit" to exit the loop: ')
Exercises
Write a function, using loops, that sums all of the elements of a list of integers.
A well-known theorem of complex number theory is that \[\sum_{k=0}^{n-1} e^{2\pi i k/n} = 0\] for any positive integer \(n\). Numerically verify this theorem by writing a function
roots_of_unity_sum(n)
that returns this sum and ensuring thatroots_of_unity_sum(n)
is either 0 or very, very, very small for values \(n = 1, 2, \ldots, 100\).The Newton-Raphson method is an example of a root-finder algorithm: that is, it approximates solutions to \(f(x) = 0\). In particular, it is implemented by starting with an initial guess \(x_0\) and then computing steps \[x_{n+1} = x_n - \frac{f(x_n)}{f’(x_n)}.\] Implement the Newton-Raphson method and test it on the function \(f(x) = x^2 - 2\) with initial guess \(x_0 = 2\). Iterate until \(x_8\) is computed and print the result. If done correctly, one should obtain \(x_8 = 1.414213562373095 \approx \sqrt 2\).
Write a function
is_prime(n)
that returnsTrue
if \(n\) is prime andFalse
if not. (Hint: Notice that you only need to test for factors of \(n\) up to \(\sqrt n\). Why?)