1, 随机数生成类
可以指定一批生成的个数, 可以指定生成范围, 可以调整每批生成数字的个数
- import random
- #1 普通类实现
- class RandomGen:
- def __init__(self, num=10,start=1,stop=100,patch=10):
- self.start = start
- self.stop = stop
- self.patch = patch
- def generate(self):
- return [random.randint(self.start,self.stop) for _ in range(self.patch)]
- #2 作为工具类实现, 提供类方法
- class RandomGen:
- @classmethod
- def generate(cls,start=1,stop=100,patch=10):
- return [random.randint(start,stop) for _ in range(patch)]
2, 打印坐标
使用上题中的类, 随机生成 20 个数字, 两两配对形成二维坐标系的坐标, 把这些打印组织起来, 并打印输出
- class Point:
- def __init__(self,x,y):
- self.x = x
- self.y = y
- points = [Point(x,y) for x ,y in zip(RandomGenerator(10).generate(),RandomGenerator(10).generate())]
- for p in points:
- print('{}:{}'.format(p.x,p.y))
3, 车辆信息
记录车的品 ***mark, 颜色 color, 价格 price, 速度 speed 等特征, 并实现增加车辆信息, 显示车辆全部信息的功能
- class Car:
- def __init__(self,mark,color,price,speed):
- self.mark = mark
- self.color = color
- self.price = price
- self.speed = speed
- class CarInfo:
- def __init__(self):
- self.info = []
- def addcar(self,car:car):
- self.info.append(car)
- def getall(self):
- return self.info
- ci = CarInfo()
- car = Car('ahuang',400,'rad',10)
- ci.addcar(car)
- ci.getall() # 返回所有数据, 此时在实现格式打印
来源: http://www.bubuko.com/infodetail-2770623.html