使用random库中相关方法生成随机数,并对其进行格式化输出
(读者觉得理论部分杂乱时,可直接单击索引进入代码区查看代码,在返回阅读理论知识。)
1.生成随机数部分理论知识
以下是我对相关方法的积累:
生成随机数,引入random库,因为要生成相应随机数据。
- 注意1: 引入random库,与numpy中random模块不同: import random
- 注意2: 了解random库中的所有方法:
- random.random():用于生成区间[0,1)的浮点数。
- random.randint(a,b):用于生成一个指定范围内的整数,其中a是下限,b是上限。生成区间[a,b]的随机整数。
- random.randrange(int a,int b,temp):生成区间[a,b)的随机整数。
- random.choice([序列]):产生序列中的随意一个元素,可用于造句等。
- random.sample(String,int):生成指定字符中指定个数的随机字符, string.ascii_letter,string.ascii_lowercase,string_uppercase,string_digits为ASCII码中的字符,详情可上网了解。
- jion()方法:用指定字符将指定字符连接成新字符串。
- random.sample([序列],int):生成指定序列中指定个数的随机字符并连接成新字符串或新序列。
- random.shuffle([序列]):将指定序列打乱 。
- random.uniform(a,b):用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。
允许a>b
如果a>b,则生成区间[a,b]的随机数n:b<=n<=a;
如果a<b,则生成区间[b,a]的随机数n:a<=n<=b。
这里我从常使用上方黄色标注的几类方法。
2.实数格式化部分理论知识
下面将使用其几类方法生成随机数。并对其格式化。
- round()方法:
1.1、rounf(i):返回一个最接近i的整数。
1.2、round(i,j):对i进行指定小数位为j进行输出,当i的第j个小数位是奇数时,进行四舍五入;当i的第j个小数位是偶数时,直接舍去。 - %格式化输出时进行赋值: (“%m.nf”%i):i为被控制格式的变量,m全取使可不指定。
- {}格式化输出时进行赋值: (“{m.nf}”.format(i)):i为被控制格式的变量,m全取时可指定为:(英文冒号)。
3.综合运用代码实例
接下来直接进行代码运用即可。
这里我将生成随机数与对数值进行格式化均封装在了同一类中。若需使用,则直接创建对象调用方法即可。
import random as rd
#生成随机数
class DigitTransform(object):
#生成默认为区间[0,1)的浮点数
def defaultFloatDigit(self):
data = rd.random()
return data
# 生成指定[a,b]之间的随机浮点数,a,b为闭区间
def appointFlostDigit(self,a,b):
data = rd.uniform(a,b)
return data
#生成[a,b]之间的随机整数,a,b为闭区间
def appointCloseIntegerDigit(self,a,b):
data = rd.randint(a,b)
return data
#生成[a,b)之间的随机整数,b为开区间,步长可无
def appointOpenIntegerDigit(self,a,b,step):
if step==1:
data = rd.randrange(a,b)
else:
data = rd.randrange(a,b,step)
return data
#控制小数位输出
#使用round格式化小数位输出
def ControlRound(self,data,j):
data = round(data,j)
return data
#使用.format格式化小数位输出
def ControlFormat(self,data):
data = float(data)
data = "{:.6f}".format(data)
return data
#使用%格式化小数位输出
def ControlPercent(self,data):
data = float(data)
data = "%.6f"%(data)
return data
通过创建该类对象,调用其方法。
这里对小数的处理是默认保留小数后六位。
import RandomDigit.RandomIntergration as RI #导入该类
#获取操作类对象,类中定义了object,创建类对象时括号()不能少
object = RI.DigitTransform() #创建连接对象(没有构造函数)
c = 3.141592695
j = 5
a = 10
b = 15
data = object.ControlRound(c,j)
print(data,'\n')
data = object.appointFlostDigit(a,b)
data = object.ControlFormat(data)
print(data,'\n')
data = object.appointCloseIntegerDigit(a,b)
data = object.ControlPercent(data)
print(data)
运行结果为:
若觉得内容稍可,请留下你们的