<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Timing your code
Sometimes its important to know how long your code is taking to run, or at least know if a particular line of code is slowing down your entire project. Python has a built-in timing module to do this. 
This module provides a simple way to time small bits of Python code. It has both a Command-Line Interface as well as a callable one. It avoids a number of common traps for measuring execution times. 
Lets learn about timeit!
Step1:  Lets use time it to time various methods of creating the string '0-1-2-3-.....-99'
We'll pass two arguments the actual line we want to test encapsulated as a string and the number of times we wish to run it. Here we'll choose 10,000 runs to get some high enough numbers to comapre various methods.
Step2:  Great! We see a significant time difference by using map()! This is good to know and we shuold keep this in mind.
Now lets introduce iPython's magic function %timeit
iPython's %timeit will perform the code in the same line a certain number of times (loops) and will give you the fastest performance time (best of 3).
Lets repeat the above examinations using iPython magic!
<ASSISTANT_TASK:>
Python Code:
import timeit
Explanation: Timing your code
Sometimes its important to know how long your code is taking to run, or at least know if a particular line of code is slowing down your entire project. Python has a built-in timing module to do this. 
This module provides a simple way to time small bits of Python code. It has both a Command-Line Interface as well as a callable one. It avoids a number of common traps for measuring execution times. 
Lets learn about timeit!
End of explanation
# For loop
timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
# List comprehension
timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
# Map()
timeit.timeit('"-".join(map(str, range(100)))', number=10000)
Explanation: Lets use time it to time various methods of creating the string '0-1-2-3-.....-99'
We'll pass two arguments the actual line we want to test encapsulated as a string and the number of times we wish to run it. Here we'll choose 10,000 runs to get some high enough numbers to comapre various methods.
End of explanation
%timeit "-".join(str(n) for n in range(100))
%timeit "-".join([str(n) for n in range(100)])
%timeit "-".join(map(str, range(100)))
Explanation: Great! We see a significant time difference by using map()! This is good to know and we shuold keep this in mind.
Now lets introduce iPython's magic function %timeit
iPython's %timeit will perform the code in the same line a certain number of times (loops) and will give you the fastest performance time (best of 3).
Lets repeat the above examinations using iPython magic!
End of explanation
<END_TASK>