Pro159-泡面Python[Py#059]——5min-EasyCase 多公差数列生成

Python

3分钟练习

数列计算和转换

 上回我们已经完成了分割分钟的自定义函数,根据遗留下来的任务,这次我们需要做一个简单的生成数列的方法。可以通过观察得出结论,这些时间是在500到3000之间,公差为250小时,3000到5000之间,公差为500小时,最后一个公差是1000小时。
 这里我们可以用一个简单的限制结尾的循环体,内嵌 if-else 判断,来完成一个自动生成数列。


代码构建和效果展示

数列计算

 首先我们设置好开始和结束,由 500 为开始,至于什么时候结束这个可以由用户自定义。分别存储到变量 limit 和 num 中,准备到下一个循环结构里面使用。
 我们已经知道的规律如下——

  • 500~3000之间 +250
  • 3000~5000之间 +500
  • 5000以上 +1000
     所以首先我们可以构建一个 if-elif-else 结构,用来判断当点的数处于哪一个区间之内。然后不同的区间使用不同的公差来计算下一个值。
     最后使用一个 while 循环套在这个 if-elif-else 结构的外面,用来循环连续执行这个判断结构,生成数值,从而形成数列。
#    建立初始边界条件
limit = int(input())
num = 500

#    使用 while 循环生成函数
while num <= limit:
    if num < 3000:
        print(num)
        num = num + 250
    elif 3000 <= num < 5000:
        print(num)
        num = num + 500
    else:
        print(num)
        num = num + 1000
Pro159-泡面Python[Py#059]——5min-EasyCase 多公差数列生成_第1张图片
数列生成及试运行效果

合并两个模块

 我们把两个模块合并到一起,就可以做到这个参数表在通讯上需要的要求。

def cut(num):
    h = 0
    l = 0
    numed = num * 60
    if numed < 65536:
        l = numed
    else:
        h = numed // 65536
        l = numed % 65536
    return h,l

limit = int(input())
num = 500
i = 0

while num <= limit:
    numed = num * 60
    print(i,numed)
    if num < 3000:
        print(cut(num))
        num = num + 250
    elif 3000 <= num < 5000:
        print(cut(num))
        num = num + 500
    else:
        print(cut(num))
        num = num + 1000
    i = i + 1
Pro159-泡面Python[Py#059]——5min-EasyCase 多公差数列生成_第2张图片
完整代码及运行效果

 但是,还是同样的问题,能不能换成一种 txt 输出,让我们使用起来,只需要拖动+拖黑复制这么简单的操作呢?好,那么下一节课,我们再来学习,如何将这个也弄成懒人输出。

你可能感兴趣的:(Pro159-泡面Python[Py#059]——5min-EasyCase 多公差数列生成)