forked from lukman467/coding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbaby.py
More file actions
42 lines (34 loc) · 1.14 KB
/
baby.py
File metadata and controls
42 lines (34 loc) · 1.14 KB
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
40
41
42
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 = [
("\n""Oh, for you, I would have done whatever", 0.08),
("And I just can't believe we ain't together", 0.07),
("And I wanna play it cool, but I'm losing you", 0.07),
("I'll buy you anything, I'll buy you any ring", 0.08),
("And I'm in pieces, baby fix me", 0.09),
("And just shake me 'til you wake me from this bad dream""\n", 0.06),
]
delays = [0.3, 4.1, 7.9, 11.5, 14.1, 19.0]
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()