forked from lukman467/coding
-
Notifications
You must be signed in to change notification settings - Fork 0
/
18 onedirection.py
39 lines (34 loc) · 1.1 KB
/
18 onedirection.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import time
from threading import Thread, Lock
import sys
lock = Lock()
def animate_text(text, delay=0.1):
with lock:
for char in text:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(delay)
print()
def sing_lyric(lyric, delay, speed):
time.sleep(delay)
animate_text(lyric, speed)
def sing_song():
lyrics = [
("I have loved you since we were 18", 0.08),
("Long before we both thought the same thing", 0.07),
("To be loved and to be in love", 0.07),
("And all I could do is say that these arms were made for holding you oh oh oh whoa", 0.07),
("I wanna love like you made me feel", 0.09),
("When we were 18", 0.1)
]
delays = [0.3, 6.9, 11.0, 14.0, 20.8, 24.8]
threads = []
for i in range(len(lyrics)):
lyric, speed = lyrics[i]
t = Thread(target=sing_lyric, args=(lyric, delays[i], speed))
threads.append(t)
t.start()
for thread in threads:
thread.join()
if __name__ == "__main__":
sing_song()