<pre><code>from threading import Timer
out_of_time = False
def time_ran_out():
print ('You didn\'t answer in time') # Default answer
out_of_time = True
seconds = 5 # waiting time in seconds
t = Timer(seconds,time_ran_out)
t.start()
inp = input("change music(1) or close the app(2):\n")
if inp != None and not out_of_time:
if inp == '1':
print("Music changed")
elif inp == '2':
print("good by")
else:
print ("Wrong input")
t.cancel()
</code></pre>
<blockquote>
<p><strong>Timer Objects</strong> </p>
<p>This class represents an action that should be run only after a certain amount of time has passed — a timer. Timer is a
subclass of Thread and as such also functions as an example of
creating custom threads.</p>
<p>Timers are started, as with threads, by calling their start() method.
The timer can be stopped (before its action has begun) by calling the
cancel() method. The interval the timer will wait before executing its
action may not be exactly the same as the interval specified by the
user.</p>
<p><em>For example:</em></p>
<pre><code>def hello():
print("hello, world")
t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
</code></pre>
<p><strong>class threading.Timer(interval, function, args=None, kwargs=None)</strong></p>
<p>Create a timer that will run function with arguments args and keyword
arguments kwargs, after interval seconds have passed. If args is None
(the default) then an empty list will be used. If kwargs is None (the
default) then an empty dict will be used.</p>
<p><em>cancel()</em> </p>
<p>Stop the timer, and cancel the execution of the timer’s action. This will only work if the timer is still in its waiting
stage.</p>
</blockquote>