How do i fix a bug where Hello world! is printed twice?
The output:
{clear}Hello World! {clear}{clear}Hello World! The terminal is cleared [Finished in 3.4s]
The code:
JavaScript
x
19
19
1
messages = []
2
3
def render():
4
os.system("cls")
5
for msg in messages:
6
print(msg)
7
8
def msg(message:str):
9
messages.append(message)
10
render()
11
def clear():
12
messages = []
13
os.system("cls")
14
15
msg("Hello world!")
16
time.sleep(3)
17
clear()
18
msg("The terminal is cleared")
19
Advertisement
Answer
clear
does not clear the global list messages
; it creates a new local variable that is assigned an empty list before going away when clear
returns. Either use global
JavaScript
1
5
1
def clear():
2
global messages
3
messages = []
4
os.system('cls')
5
or use the clear
method:
JavaScript
1
4
1
def clear():
2
messages.clear()
3
os.system('cls')
4