This exercise presents implementations for the main issues we studied in Python Asyncio.
1) Compute the factorial number for a group of numbers, each number in a specific task. Each task (factorial number) has it is own call. You have to schedule the calls concurrently. Print out the declaration of the factorial number and the calculation result. Between the two printouts, there is a wait.
Note: The factorial of a positive integer (number) is the sum of the multiplication of all the integers smaller than that positive integer. For example, the factorial of 4 is 4 * 3 * 2 * 1, which equals 24.
2) Create a program to print out random numbers in many tasks; each task performs a single number. The program must wait for all tasks to be completed.
3) Create a program to print out a random number in a coroutine with a timeout; execute and wait for the task without a timeout. Apply the exception using asyncio.TimeoutError