我创建了一个简单的动画,可以在屏幕上移动一个字符串。什么是更加pythonic的写作方式?

时间:2017-07-11 23:18:36

标签: python animation

为了模拟在一行上移动的字符串,我使用os.system("clear")。我希望每次都能在不清除终端的情况下创建动画。另外,有没有更明确的方法将列表中的前一个元素更改为原始元素而不编写x[pos-1] = char?我也很想看看其他人如何创建一个简单的文本动画。

<!-- language: lang-Python -->

import os 

def animate(photo,n,start,char = " ",_time = 1):
    x = [char for i in range(n)]

    for pos in range(start, n):
        os.system("clear")    
        x[pos] = photo
        x[pos - 1] = char
        print("".join(x))
        time.sleep(_time)


if __name__ == "__main__":
    animate("~========*>~~",50,0,_time = 0.05)

1 个答案:

答案 0 :(得分:0)

如何使用回车代替os.system("clear")并使用乘法运算符的重复形式来简化事情:

import time

def animate(photo, n, start, char=" ", _time=1):

    for pos in range(start, n):
        print(char * pos, photo, sep='', end=chr(13))
        time.sleep(_time)

if __name__ == "__main__":
    animate("~========*>~~", 50, 0, _time=0.05)