返回顶部
首页 > 资讯 > 后端开发 > Python >用Python实现的等差数列方式
  • 137
分享到

用Python实现的等差数列方式

Python等差数列等差数列Python实现等差数列 2022-12-16 18:12:32 137人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录python实现等差数列Python等差数列生成器使用itertools模块生成等差数列总结Python实现等差数列 def arithemtic_sequence_based

Python实现等差数列


def arithemtic_sequence_based_generator(first=0, step=1, sequence_count=10):
    for index in range(0, sequence_count):
        yield first + index * step
        index += 1

if __name__ == "__main__":
    generator = arithemtic_sequence_based_generator(first=0, step=5, sequence_count=10)
    for number in generator:
        print(number, end=" ")

运行结果:

0 5 10 15 20 25 30 35 40 45 

python等差数列生成器

典型的迭代器模式作用很简单——遍历数据结构

不过,即便不是从集合中获取元素,而 是获取序列中即时生成的下一个值时,也用得到这种基于方法的标准接口。

例如,内置的 range 函数用于生成有穷整数等差数列(Arithmetic Progression,AP), itertools.count 函 数用于生成无穷等差数列。

先来看等差数列:

"""
等差数列实现。
"""


class ArithmeticProgression:

    def __init__(self, begin, step, end=None):
        self.begin = begin
        self.step = step
        self.end = end   # None -> 无穷数列

    def __iter__(self):
        result = type(self.begin + self.step)(self.begin)
        forever = self.end is None
        index = 0
        while forever or result < self.end:
            yield result
            index += 1
            result = self.begin + self.step * index


if __name__ == '__main__':
    ap = ArithmeticProgression(0, 1, 3)
    print(ap)
    # print(list(ap))
    a = iter(ap)
    print(next(a))

这是个简单的示例,说明了如何使用生成器函数实现特殊的 __iter__ 方法。

然而,如果一个类只是为了构建生成器而去实现 __iter__ 方法,那还不如使用生成器函数

毕竟,生成器函数是制造生成器的 工厂。

def aritprog_gen(begin, step, end=None):
    result = type(begin + step)(begin)
    forever = end is None
    index = 0
    while forever or result < end:
        yield result
        index += 1
        result = begin + step * index

使用itertools模块生成等差数列

然而,itertools.count 函数从不停止,因此,如果调用 list(count()),Python 会创建一 个特别大的列表,超出可用内存,在调用失败之前,电脑会疯狂地运转。

不过,itertools.takewhile 函数则不同,它会生成一个使用另一个生成器的生成器,在指 定的条件计算结果为 False 时停止。因此,可以把这两个函数结合在一起使用,编写下述 代码:

利用 takewhilecount 函数,写出的代码流畅而简短。

import itertools 


# 注意,下面示例中的 aritprog_gen 不是生成器函数,
# 因为定义体中没有 yield 关键字。
# 但是它会返回一个生成器,
# 因此它与其他生成器函数一样,
# 也是生成器工厂函数。
def aritprog_two_gen(begin, step, end=None):
    first = type(begin + step)(begin)
    ap_gen = itertools.count(first, step)
    if end is not None:
        ap_gen = itertools.takewhile(lambda n: n < end, ap_gen)
    return ap_gen

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 用Python实现的等差数列方式

本文链接: https://lsjlt.com/news/175124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 用Python实现的等差数列方式
    目录Python实现等差数列python等差数列生成器使用itertools模块生成等差数列总结Python实现等差数列 def arithemtic_sequence_based...
    99+
    2022-12-16
    Python等差数列 等差数列 Python实现等差数列
  • 怎么用Python实现等差数列
    今天小编给大家分享一下怎么用Python实现等差数列的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Python实现等差数列d...
    99+
    2023-07-04
  • Python计算均值、方差、标准差、协方差等常用指标的方法——Numpy模块+Pandas模块
    Python计算均值、方差、标准差、协方差等常用指标的方法——Numpy模块+Pandas模块 一、利用Numpy模块计算均值、方差、标准差等二、利用Numpy模块计算均值、方差、标准差等 ...
    99+
    2023-10-26
    python numpy 均值算法
  • 使用python计算方差方式——pandas.series.std()
    目录如何计算方差Python计算方差、标准差方差、标准差1、方差2、标准差如何计算方差 简单展示一下pandas里怎么计算方差: 官方文档: def def_std(df):   f...
    99+
    2024-04-02
  • python怎么实现均方误差和均方根误差
    这篇文章给大家分享的是有关python怎么实现均方误差和均方根误差的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该...
    99+
    2023-06-14
  • MySQL自定义序列数的实现方式
    目录mysql自定义序列数实现创建序列表插入定义的序列自定义函数实现MyBATis中调用函数来获取最新序列数MySQL添加自定义的序列使用实例总结MySQL自定义序列数实现 往往有很多情况下,我们需要使用自己生成的唯一I...
    99+
    2022-12-28
    MySQL自定义序列数 自定义序列数 MySQL自定义序列
  • CSS实现三列DIV等高布局的方法
    本篇内容主要讲解“CSS实现三列DIV等高布局的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS实现三列DIV等高布局的方法”吧!DIV等高布局,我想很...
    99+
    2024-04-02
  • Python pandas求方差和标准差的方法实例
    目录准备1.求方差 1.1对全表进行操作1.1.1求取每列的方差1.1.2 求取每行的方差1.2 对单独的一行或者一列进行操作1.2.1 求取单独某一列的方差1.2.2 求取单独某一...
    99+
    2024-04-02
  • Python中怎么实现方差分析
    这篇文章给大家介绍Python中怎么实现方差分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,还是先简介一下方差分析。方差分析(Analysis of Variance,ANOVA)又称“变异数分析”或“F检验”...
    99+
    2023-06-16
  • Hive行转列的实现方式
    本篇内容主要讲解“Hive行转列的实现方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hive行转列的实现方式”吧!前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserve...
    99+
    2023-06-19
  • 纯CSS实现三列DIV等高布局的方法
    本篇内容主要讲解“纯CSS实现三列DIV等高布局的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“纯CSS实现三列DIV等高布局的方法”吧!纯CSS实现三列D...
    99+
    2024-04-02
  • Python实现奇数列与偶数列调换的方法详解
    目录一、前言二、实现过程方法一方法二方法三三、总结一、前言 前几天在Python铂金交流群【瑜亮老师】给大家出了一道Pandas数据处理题目,使用Python实现df的奇数列与偶数列...
    99+
    2024-04-02
  • Python三数之和的实现方式
    目录三数之和题目描述思路Python3代码三数之和题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c , 使得 a + b + c =...
    99+
    2024-04-02
  • Redis怎么实现分布式锁和等待序列
    这篇文章主要介绍了Redis怎么实现分布式锁和等待序列,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在集群下,经常会因为同时处理发生资源争抢...
    99+
    2024-04-02
  • 题目 1059: 二级C语言-等差数列(python详解)——练气四层后期
    ✨博主:命运之光 🦄专栏:算法修炼之练气篇(C\C++版) 🍓专栏:算法修炼之筑基篇(C\C++版) 🍒专栏:算法修炼之练气篇(Python版) ✨博主的其他文章:点击进入博主的主...
    99+
    2023-10-27
    python 算法 经验分享 蓝桥杯 竞赛 保研
  • 解读Python selenium的等待方式
    发现太多人不会用等待了,今天实在是忍不住要给大家讲讲等待的必要性。 很多人在群里问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待。殊不...
    99+
    2022-06-04
    方式 Python selenium
  • Java 延迟队列的常用的实现方式
    目录1.  DelayQueue2.  Redis Key过期回调3.  RocketMQ延迟队列的使用场景还比较多,例如: 1、超时未收到支付回调,主...
    99+
    2024-04-02
  • PHP实现数组差集操作的方法
    标题:PHP实现数组差集操作的方法 在PHP中,数组是一种非常常用的数据结构,它可以帮助我们存储和操作多个元素。在实际开发中,有时候我们需要对数组进行一些操作,比如取两个数组的差集。本...
    99+
    2024-03-13
    php 数组 差集
  • CSS Positions布局实现多列等高布局的方法
    在网页开发中,实现多列等高布局是一个常见的需求。传统的方法是使用JavaScript来实现,但是这种方法存在兼容性和性能问题。现在我们可以通过使用CSS Positions布局来实现多列等高布局,不仅简单易用,而且效果良好。实现多列等高布局...
    99+
    2023-10-21
    CSS 布局 Positions
  • mysql alter添加列的实现方式
    目录mysql alter添加列alter的执行过程如下mysql基础之alter字段解读1、先创建一张表testalter_tbl2、删除,添加或修改表字段3、修改字段类型及名称4、 ALTER TABLE 对 Nul...
    99+
    2023-01-28
    mysqlalter添加列 mysqlalter alter添加列
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作