**Submission**: Submit the python or text file that
contains all your answers to the submission folder for this lab **by the end of the lab**.
To simplify Drew's (our tutor) work, please include your name and the number
of the lab at the top of the file (if you're submitting a Python file, use
comments: start the line with a #).

**Grading**: see the
grading criteria for lab assignments.

1. (While Loop) Implement the factorial function factorial(n) which calculates 1*2* ... * n. We've done this before, here the difference is: don't use the built-in factorial, and don't use a for loop. Work with a while loop.

2. (While Loop - Statistics) We want to find out how many
throws of a die it takes to get a 6. To do this, write two functions:
**die()** and **stats(n)**:

a) A call of the **die()** function repeatedly rolls a die
until it comes out 6. The function counts how often you have to roll the die
before you get the 6 and returns that count. Here are some test-runs:

So in the last call to **die()** the very first
roll gave a 6. In the call before that, it took 9 times. *Hint*: use the randrange(a,b)
function in the random module to simulate a die-roll (remember that a is
inclusive, and b is exclusive), and a while loop to keep going until you
have a 6.

b) Write a function **stats(n)** that calls the
**die()** function n
times, and records each outcome. At the end, it then reports the average
value of all outcomes. We'd expect it to 6 rolls on average to get a six, so
the larger n, the closer we should get to 6. This is borne out by the
following test-runs (the last one took a couple of seconds to complete).

3. (While Loop) Here's a somewhat silly game: you alternate
naming numbers that always have to be strictly larger than the previous one.
Write a function **bigger()** that supports playing this game.
The game starts with 0; if anybody enters a number lower than the previously
highest number the game ends with the player losing. Entering nothing simply
ends the game.

Marcus Schaefer

Last updated:May 22nd, 2019.