forked from lukman467/coding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforever young.py
More file actions
42 lines (36 loc) · 1.1 KB
/
forever young.py
File metadata and controls
42 lines (36 loc) · 1.1 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""Forever young", 0.09),
("I want to be forever young", 0.09),
("Do you really want to live forever?", 0.08),
("Forever, and ever", 0.14),
("Forever young", 0.09),
("I want to be forever young", 0.1),
("Do you really want to live forever?", 0.08),
("Forever, and ever", 0.14)
]
delays = [0.3, 2.8, 7.5, 10.9, 14.5, 16.9, 21.6, 24.9]
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()