首页 > 其他分享 >等差数列生成器

等差数列生成器

时间:2023-06-03 10:25:46浏览次数:39  
标签:begin end self 生成器 step ArithmeticProgression result 等差数列

 

 

 1 class ArithmeticProgression:
 2     
 3     def __init__(self, begin, step, end = None):
 4         self.begin = begin
 5         self.end = end
 6         self.step = step
 7         
 8         
 9     def __iter__(self):
10         result = type(self.begin + self.step)(self.begin)
11         forever = self.end is None
12         index = 0
13         
14         while forever or result < self.end:
15             yield result
16             index += 1
17             result = self.begin + self.step * index
18             
19             
20             
21 
22 ap = list(ArithmeticProgression(0,1,3))
23 print('\n', ap)
24 
25 
26 ap1 = list(ArithmeticProgression(1, 0.5, 3))
27 print('\n', ap1)
28 
29 
30 ap2 = list(ArithmeticProgression(1,  1/3, 4))
31 print('\n', ap2)
32 
33 
34 from fractions import Fraction
35 ap3 = list(ArithmeticProgression(1, Fraction(2,3),4))
36 print('\n', ap3)
37 
38 
39 from decimal import Decimal
40 ap4 = list(ArithmeticProgression(1, Decimal('.8'), 6))
41 print('\n', ap4)
42 
43 
44 
45 
46 #定义成函数形式实现上述功能_生成器函数
47 def aritprog_gen(begin, step, end = None):
48     result = type(begin + step)(begin)
49     forever = end is None
50     index = 0
51     
52     while forever or result < end:
53         yield result
54         index += 1
55         result = begin + step * index
56         
57     
58     
59     
60     
61     
62 #使用函数实现的第二种方式:
63 import itertools
64 
65 def aritpro_gen_v2(begin, step, end = None):
66     first = type(begin + step)(begin)
67     ap_gen = itertools.count(begin, step)
68     
69     if end is None:
70         itertools.takewhile(lambda n: n < end, ap_gen)
71     
72     return ap_gen

 

 

标签:begin,end,self,生成器,step,ArithmeticProgression,result,等差数列
From: https://www.cnblogs.com/bravesunforever/p/17453394.html

相关文章

  • 发言稿生成器app推荐,这几个生成发言稿的软件要知道!​
    发言稿生成器app推荐,发言稿生成器app是一款能够帮助用户快速生成演讲或发言稿的手机应用程序,用户可以在应用程序中输入主题或关键词,然后应用程序会自动生成一份基础的演讲稿或发言稿,那么很多小伙伴日常会使用到,下面感兴趣的小伙伴一起来看看小编的推荐吧!选择:FunAIFUNAI是一款基......
  • 诗词情话生成器app,诗词情话生成软件推荐!​
    诗词情话生成器app,诗词情话生成器是一种人工智能工具,能够自动生成浪漫、甜蜜、唯美的诗词或情话。用户可以输入关键词或主题,生成与之相关的诗词或情话,用于表达爱意或表达情感,很多小伙伴不知道用什么软件进行操作,感兴趣的小伙伴一起来看看吧!选择:FunAIFUNAI是一款非常优秀的人工智......
  • 迭代器和生成器
    一、迭代器(Iterator)1、可迭代对象(Iterable)存储了元素的一个容器对象,且容器中的元素可以通过“__iter__()”方法或“__getitem__()”方法访问。可迭代对象不能独立进行迭代,可通过“for…in”遍历来完成2、常见的可迭代对象字符串、列表、元组、字典、集合、文件3、迭代器对......
  • 生成器generator
    1,用于协程,最近(2023/6/1)开始看到生成器用于协程这方面的内容,但还没接触,开始有所了解。 如果列表元素可以按照某种算法推算出来,那我们因此可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:g......
  • Mybatis-plus关于代码生成器的使用
    1、添加依赖 2、在test包下创建一个CodeGet类,实现生成代码的功能。注意:全局配置、数据源配置一定要和自己的电脑配置一致! 3、执行CodeGet类中的main方法。打印台有如下图提示字样,即自动生成成功。 4、对比两张图。在wechat文件夹下有controller、entity、mapper、s......
  • 灵感生成器DreamGPT开源:见识一下真正的脑洞大开
    ChatGPT最为人诟病的缺陷就是「胡编乱造」了,可以一本正经地讲一段林黛玉倒拔垂杨柳的故事。  对于真正想了解「林黛玉」或「倒拔垂杨柳」的人来说,这段回答可以说是灾难级误导了,但对于专注于「虚构」和「创意」的从业者来说,天马行空幻觉反而可以激发创造力。 最近Diverge......
  • 中间代码生成器 修改
    #include<stdio.h>#include<stdlib.h>#include<iostream>#include<string>#include<map>#include<sstream>usingnamespacestd;pair<string,string>words[100];//词法分析结果,每个pair的first如"identifier",second如&......
  • Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器
    引用官方文档上的简介:提供交互式的WebUI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。文档github:https://github.com/davidfantasy/mybatis-plus-generator-......
  • 代码生成器
    代码生成器原理是读取表结构,根据表结构的字段名称、数据类型、注释生成实体类,然后根据实体类生成controller和servicefreemarker标签参数${pramName}:根据controller中定义的值,对pramName进行替换<#if>:当结果为true时才会进行展示<p>你好,<#ifuserName=="lyra">......
  • JavaScript中的生成器函数(Generator Functions)
    简介:生成器函数(GeneratorFunctions)是JavaScript中的一种特殊类型函数,它允许开发者在函数内部产生多个值并逐步返回,与传统函数一次返回单个值的方式不同。本文将介绍生成器函数的特性、优缺点以及如何使用它们,并提供一些代码案例来说明其用法。特性:使用function\*关键字声明:生成......