python基础-设计滚动字幕(方向,速度可选,回车符实现清除屏幕效果)

设计一个可以选择滚动方向,滚动速度的实现字幕滚动功能的程序。本程序是基于一些类似的程序的扩展和修改。
滚动的实现(核心):

  1. 将字幕作为列表做切片操作切头补尾即可实现左滚,切尾补头实现右滚
  2. 使用回车操作 \r 符实现清除屏幕的效果
    关于回车和换行符的理解推荐两篇文章:
    https://www.cnblogs.com/zzliu/p/10156658.html
    https://www.cnblogs.com/yc3110/p/10809564.html

程序代码:

def roll_titles():
    import time
    adv = input("请输入一段广告语:")

    # 获取滚动方向
    while 1:
        fx = input("请输入滚动的方向(L/R)").upper()  # .upper()转换为大写
        if fx in ['L', 'R']:
            break
        print("您的输入有误,请重新输入!")

    # 获取滚动速度
    while 1:
        sd = input("请输入滚动的速度(请输入一个整数,值越大,滚动速度越快):")
        if sd.isnumeric():
            break
        print("您的输入有误,请重新输入!")

    # 产生滚动效果
    if fx == 'R':  # 右滚
        adv = adv[1:] + adv[0]  # 这样先反向左移一位,使得第一个显示的句子是正常的,否则第一个字已经被移到最后了
        while 1:
            adv = adv[-1] + adv[:-1]  # 切尾补头 实现右滚
            print('\r' + adv, end=' ')    # 回车操作实现刷新显示
            # 原计划使用os.system('cls'),但是不起作用,最后在网上找到了上述方法
            time.sleep(1 / (int(sd)))  # 这种写法使得sd值越大,滚动速度越快

    if fx == 'L':  # 左滚
        adv = adv[-1] + adv[:-1]   # 先反向右右移一位
        while 1:
            adv = adv[1:] + adv[0]  # 切头补尾 实现左滚
            print('\r' + adv, end=' ')
            time.sleep(1 / (int(sd)))


if __name__ == '__main__':
    roll_titles()

左滚演示:速度为1(换算后就是暂停显示1秒)
在这里插入图片描述

右滚演示:速度为3(暂停显示0.333秒),控制台窗口这个刷新率有点低,看起来跟掉帧一样
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值