Почему после 10% символ % удваивается?

import sys
x = 40
a = x-1
per = 0
for i in range(x):
    if i != 0:
        per = a/x
        per = per*100
        per = round(per)
    print('['+'-'*i+' '*a+']'+str(per)+'%' , end='\r')
    a-=1
    sleep(.1)```

Ответы (1 шт):

Автор решения: Евгений

Try this code. Symbol \r just move the pointer to 1st position, but not clear the screen. Second % symbol remains after the previous output

Попробуйте этот код. Символ \r просто сдвигает указатель на начальную позицию, но не очищает экран. Второй символ % остаётся от предыдущего вывода (10%)

import sys
from time import *

x = 40
a = x-1
per = 0
for i in range(x):
    if i != 0:
        per = a/x
        per = per*100
        per = round(per)
    print('['+'-'*i+' '*a+']'+str(per) + '% ', end='\r')
    a-=1
    sleep(.1)

Result

Результат:

[---------------------------------------]0% 
→ Ссылка