#随机整数生成类,可以指定生成的个数,可以指定数值的范围,可以调整每批生成数字的个数
class Randmon:
def __init__(self):
pass
@classmethod
def randint(cls,count:int,start:int,end:int) ->list:
import random
return [random.randint(start,end) for _ in range(count)]
print(1,Randmon.randint(5,1,100))
#变形:
import random
class RandomGenerator:
def __init__(self,count=10,start=1,stop=100):
self.count = count
self.start = start
self.stop = stop
self.gen = self._generate()
def _generate(self):
while True:
yield [random.randint(self.start,self.stop) for _ in range(self.count)]
def generate(self,count):
self.count = count
return next(self.gen)
rg = RandomGenerator()
lst = rg.generate(10)
print(2,lst)
#########################################################################################################
print('='*100)
#随机生成20个数字,两两配对形成坐标系的坐标,把这些坐标组织起来,并打印出来
class Coordinate:
def __init__(self):
pass
@classmethod
def show(self,iterable:list):
length = len(iterable)
return [tuple(iterable[i:i+2]) for i in range(0,length,2)]
lst = Randmon.randint(20,1,100)
print(Coordinate.show(lst))
#变形:
class Point:
def __init__(self,x:int,y:int):
self.x = x
self.y = y
def __str__(self):
return '{}:{}'.format(self.x,self.y)
lst1= [Point(x,y) for x,y in zip(rg.generate(10),rg.generate(10))]
for p in lst1:
print(p,end='\t')
else:
print()
#########################################################################################################
print('='*100)
#记录车的品牌mark,颜色color,价格price,速度speed等特征,并实现增加车辆信息,显示全部车辆信息的功能
class Car:
def __init__(self,mark:str,color:str,price:int,speed:float):
self.mark = mark
self.color = color
self.price = price
self.speed = speed
def add(self,**kwargs):
self.__dict__.update(kwargs)
@property
def showall(self):
print(self.__dict__)
bmw = Car('bmw360','white','260000','3.6')
bmw.showall
bmw.add(engine='dragon',window='full',dash='wood')
bmw.showall
#变形:
class Car:
def __init__(self,mark:str,speed:int,color:str,price:int):
self.mark = mark
self.speed = speed
self.color = color
self.price = price
class CarInfo:
def __init__(self):
self.lst = []
def addcar(self,car:Car):
self.lst.append(car)
def getall(self):
return self.lst
ci = CarInfo()
car = Car('Audi_A8',400,'red',2000000)
ci.addcar(car)
print(ci.getall())
for car in ci.getall():
print(car.mark)
print(car.price)
#########################################################################################################
print('='*100)
#实现温度的处理
#公式如下 :
#华氏('F)转摄氏('C):5*('F-32)/9
#摄氏('C)转华氏('F):9*'C/5+32
c = 35
class ConversTemperature():
def __init__(self):
pass
@classmethod
def f2c(self,f):
return 5*(f-32)/9
@classmethod
def c2f(self,c):
return 9*c/5+32
print(ConversTemperature.c2f(c))
运行结果:
1 [66, 80, 15, 29, 65]
2 [5, 41, 70, 81, 27, 1, 12, 40, 52, 38]
====================================================================================================
[(45, 78), (1, 13), (31, 18), (11, 15), (41, 16), (82, 81), (26, 94), (70, 29), (6, 88), (97, 7)]
49:82 46:55 94:89 62:98 16:30 32:33 85:89 47:20 51:63 4:55
====================================================================================================
{'color': 'white', 'mark': 'bmw360', 'price': '260000', 'speed': '3.6'}
{'color': 'white', 'mark': 'bmw360', 'window': 'full', 'dash': 'wood', 'price': '260000', 'speed': '3.6', 'engine': 'dragon'}
[<__main__.Car object at 0x7fb5a263ebe0>]
Audi_A8
2000000
====================================================================================================
95.0