python习题——随机整数生成类
随机整数生成类
可以先设定一批生成数字的个数,可设定指定生成的数值的范围
1.普通类实现
import random
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self.count = count
def generate(self):
return [random.randint(self.start, self.stop) for i in range(self.count)]
print(RandomGen().generate())
2.作为工具类来实现,提供类方法
import random
class RandomGen:
@classmethod
def generate(self, start=1, stop=100, count=10):
return [random.randint(start, stop) for i in range(count)]
print(RandomGen().generate())
2. 生成器实现1
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self.count = count
self._gen = self._generate()
def _generate(self):
while True:
yield random.randint(self.start, self.stop)
def generate(self):
return [next(self._gen) for i in range(self.count)]
print(RandomGen().generate())
2. 生成器实现2
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self.count = count
self._gen = self._generate()
def _generate(self):
while True:
yield random.randint(self.start, self.stop)
def generate(self):
yield from (next(self._gen) for i in range(self.count))
print(list(RandomGen().generate()))
2. 生成器实现3
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self.count = count
self._gen = self._generate()
def _generate(self):
while True:
yield random.randint(self.start, self.stop)
def generate(self, count=0): # 可以在后期生产数据时控制个数
count = self.count if count <= 0 else count
return [next(self._gen) for i in range(self.count)]
print(RandomGen().generate(5))
print(RandomGen().generate())
2. 生成器实现4
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self._count = count
self._gen = self._generate()
def _generate(self):
while True: # 一次yield 一批
yield [random.randint(self.start, self.stop) for _ in range(self._count)]
def generate(self, count=0): # 可以在后期生产数据时控制个数
if count > 10:
self._count = count
return next(self._gen)
print(RandomGen().generate(5))
print(RandomGen().generate())
2. 生成器实现5
import random
class RandomGen:
def __init__(self, start=1, stop=100, count=100):
self.start = start
self.stop = stop
self._count = count
self._gen = self._generate()
def _generate(self):
while True: # 一次yield 一批
yield [random.randint(self.start, self.stop) for _ in range(self._count)]
def generate(self): # 可以在后期生产数据时控制个数
return next(self._gen)
@property
def count(self):
return self._count
@count.setter
def count(self, count):
self._count = count
r = RandomGen()
print(r.count)
print(r.generate())
r.count = 3
print(r.generate())
python习题——随机整数生成类的更多相关文章
- Python:随机生成测试数据的模块--faker的基本使用
本文内容: faker的介绍 faker的使用 小例子:生成随机的数据表信息 首发日期:2018-06-15 faker介绍: faker是python的一个第三方模块,是一个github上的开源项目 ...
- 用Java实现在【520,1314】之间生成随机整数的故事
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑.让小木 ...
- JAVA代码:生成一个集合,自定义大小,100以内的随机整数
JAVA代码:生成一个集合,自定义大小,100以内的随机整数 方法一:(Random类) package com.dawa.test; import java.util.ArrayList; impo ...
- java Math.random()生成从n到m的随机整数
Java中Math类的random()方法可以生成[0,1)之间的随机浮点数.而double类型数据强制转换成int类型,整数部分赋值给int类型变量,小数点之后的小数部分将会丢失. 如果要生成[0, ...
- python随机值生成的常用方法
一.随机整数1.包含上下限:[a, b] import random #1.随机整数:包含上下限:[a, b] for i in range(10): print(random.randint(0,5 ...
- javascript生成n至m的随机整数
摘要: 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备. Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 生成n-m,包 ...
- javascript生成指定范围的随机整数
JavaScript有提供一个生成值区间在(0, 1)的随机小数的函数. Math.random(); // 0.10529863457509858 如果你和喜欢的人一起执行这个函数,之后生成的随机小 ...
- Golang生成区间随机整数
package main import ( "fmt" "math/rand" "time" ) func main() { rand.Se ...
- 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的 ...
随机推荐
- 部署主从dns
主机部署:yum安装DNS服务和依赖 [admin@haifly-bj-dns1 ~]$ sudo yum install bind-chroot启动named-chroot服务 [admin@hai ...
- cocos2dx 3.2 内存管理
一.引用计数(cocos2d-x3.2的Node类中用到) 概念:记录当前对象被引用的次数.当次数为0时释放. 1 . retain 与 release 每调用一次retain()使计数+1 每调用 ...
- 重大升级!SEER见证人,您的节点需要在10月28日前更新
SEER的区块链底层目前还处于不断完善中.一些新的完善更新会为区块链的基础设施--节点软件添加新的功能.理事会将会就是否接受新的节点版本进行共识投票,如果提案投票通过,将要求所有见证人在指定时间前将节 ...
- 手把手教你搭建HEXO免费博客
一.环境搭建 node安装 百度搜索node,进入官网.下载稳定版: 下载好后直接打开安装 我这里将其安装在D盘(可以自己选择安装位置) 可以看到安装包中已经自带npm包管理工具 等待安装完成后,WI ...
- [Noip2007] 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- [LUOGU3413] SAC#1 - 萌数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...
- Win10系统Cortana 小娜无法搜索
1.在开始菜单中找“Windows PowerShell”文件夹,打开后右键单击Windows PowerShell,选择“以管理员身份运行” 2.输入命令,通过重新注册语音小娜来解决问题 Get-A ...
- HDU 6045 Is Derek lying?
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=6045 题目: Is Derek lying? Time Limit: 3000/1000 MS (Ja ...
- Java学习笔记二--API课堂记录
JavaSE课堂记录(二) 第一节课 方法的重载:方法名相同,参数列表不同 方法的重写:方法名,参数列表相同 两同:方法名相同,参数列表相同 两小:访问权限小与等于父类,返回值类型小于等于父类(返回值 ...
- JavaWeb EL表达式 key为数值 Map取不到值
JavaWeb EL表达式 key为 Map取不到值 因为JSTL会把Integer,Byte,Short,Charactor都转成Long,这样就取不到值. 参见StackOverFlow的回答 ...