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),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的 ...
随机推荐
- 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了
全文包含 12000+ 字.30 张高清图片,预计阅读时间为 40 分钟,强烈建议先收藏再仔细阅读. 作者 | 李威 整理 | 公众号:五分钟学算法 个人博客 | https://www.cxyxia ...
- Windows 8.1硬盘安装Ubuntu 14.04双系统参考教程及多硬盘注意事项
本文来自:http://www.linuxidc.com/Linux/2015-08/122140.htm,此处仅做收藏. Windows 8.1硬盘安装Ubuntu 14.04双系统参考教程及多硬盘 ...
- MVC ValidationAttribute 验证一个字段必须大于另一个字段
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)] pu ...
- linux下mqtt-client
CPATH += ../embe_mqtt/MQTTClient/srcPSRTPATH = ../embe_mqtt/MQTTPacket/src LOADPATH += -I$(CPATH)LOA ...
- PageObjec页面对象模式(理论)
ui自动化测试的分层思想:实现测试数据与业务数据分离 1. 基础层 2. 对象层:每个页面的操作元素封装为一个文件 3.测试用例层:调用对象层封装的方法进行测试用例编写
- 记因git规范导致的提测和发布延迟
号外 最近因为换工作的原因,我的博客和Github没有像之前那样频繁的更新了.一方面原因是投递简历和准备面试,由于之前的基础没有很扎实,需要把平时的知识点都整理一遍.这个时间段持续了20多天的样子,因 ...
- Netty源码分析之ChannelPipeline(一)—ChannelPipeline的构造与初始化
Netty中ChannelPipeline实际上类似与一条数据管道,负责传递Channel中读取的消息,它本质上是基于责任链模式的设计与实现,无论是IO事件的拦截器,还是用户自定义的ChannelHa ...
- Spring Boot Security And JSON Web Token
Spring Boot Security And JSON Web Token 说明 流程说明 何时生成和使用jwt,其实我们主要是token更有意义并携带一些信息 https://github.co ...
- 文本查重算法SimHash
1.介绍 爬虫采集了大量的文本数据,如何进行去重?可以使用文本计算MD5,然后与已经抓取下来的MD5集合进行比较,但这种做法有个问题,文本稍有不同MD5值都会大相径庭, 无法处理文本相似问题.另一种方 ...
- Java基础(三十六)日期和时间
1.Date类 (1)无参数构造方法创建的对象可以获取本机当前时间 (2)有参数构造方法创建的对象表示举例计算机系统自身时间的距离为给定的参数 Date date = new Date(); // 当 ...