一、Random函数
(一)浮点数函数
random.random随机生成一个
0到1
之间的
浮点数
。
0<=n<=1
>>> random.random()
0.7086588033796296
random.uniform(a,b)生成一个
a到b
内的
随机浮点数
。
若a
若a>b,则b <= n <= a
>>> random.uniform(12,5)
6.128208009182529
>>>> random.uniform(5,12)
5.373996230739382
>>>> random.uniform(5,5)
5.0
(二)整数函数
random.randint(a,b)用于生成一个指定范围内的整数:a<=n<=b;
下限必须小于等于上限值
>>> random.randint(10,10)
>10
>>>> random.randint(10,21)
>15
>>>> random.randint(100,100)
>10
random.randrange([start],[stop],[step])从指定范围内,按指定步长递增的集合中获取一个随机数。等于random.choice(range([start],[stop],[step]))
>>> random.randrange(1,100,10)
>61
>>>> random.randrange(1,100,10)
>21
>>>> random.choice(range(1,100,10))
>71
>>>> random.choice(range(1,100,10))
>41
(三)序列功能
1.random.choice(seq)从序列中获取随机一个元素。
(population, weights=None, *, cum_weights=None, k=1)这个方法平时比较少用。
population是一个可迭代对象,weights是
相对权重
,cum_weights是
绝对权重
,k表示
随机获取的个数
。
需要注意2点:
weights和cum_weights不能同时使用。
population与weights,population与cum_weights需一一对应
>>> for i in range(10):
print(random.choices("abcd",weights=[1,1,7,1],k=1))
['b']
['c']
['c']
['c']
['c']
['c']
['a']
['a']
['c']
['c']
2.random.shuffle
random.shuffle(x[, random])用于将一个列表中的元素打乱,类似
洗牌
的效果
>>> l=['a','b','c','d','e']
>>> random.shuffle(l)
>>> l
['d', 'b', 'e', 'c', 'a']
3.random.sample
random.sample(seq,k)从指定序列中随机获取指定长度的,且
不重复出现的片段
>>> l=['a','b','c','d','e']
>>> s=random.sample(l,2)#随机获取长度为2的片段
>>> s
['c', 'a']
>>> l
['a', 'b', 'c', 'd', 'e']
二、格式化%s
1.以把%想象成:图书馆里用来占位的一本书。先占一个位置,之后再填上实际的变量。
print('血量:'+str(life)+'攻击:'+str(attack))
print('血量:%s 攻击:%s'%(life,attack))
%s 格式化字符串
%f格式化浮点数(%.1f为保留一位小数的浮点数格式)
print('项目大小为%.1f个标准项目,使用%d个人力完成,则需要工时数量为:%.1f个' %(size,number,time))
%d格式化整数
print('我的幸运数字是%d'% lucky)
print('我的幸运数字是%s'% '小龙女的生日816')
print('我的幸运数字是%d和%d'% (8,16)
三、格式化format
笔记转自链接:
Python中用format函数格式化字符串的用法
它通过{}和:来代替%。
“映射”示例
1. 通过位置
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次
print('{0},{1}'.format('kzc',18))
'kzc,18'
print('{}{}'.format('kzc',18))
'kzc,18'
print('{1},{0},{1}'.format('kzc',18))#可以用多次,且不按顺序
'18,kzc,18'
2. 通过关键字参数
print('{name},{age}'.format(age=18,name='kzc'))
'kzc,18'
3.通过对象属性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
str(Person('kfc','18')
'This guy is kzc,is 18 old'
4. 通过下标
p=['kfc',18]
print('{0[0],0[1]'.format(p))
'kfc,18'
有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。
5. 格式限定符
它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
- 填充与对齐
填充常跟对齐一起使用
^、分别是居中、左对齐、右对齐,后面带
宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如
print('{:>8}.format('189')#8表示宽度为8
' 189'
print({:0>8}.format('189')#0表示用0填充
'000189'
print({:a>8}.format('189')#用a填充
'aaa189'
- 精度与类型f
精度常跟类型f一起使用
'{:.2f}.format(321.33345)'#2表示精度为2
'323.33'
- 其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
print('{:b}'.format(17))
'10001'
print('{:d}'.format(17))
'17'
print('{:o}'.format(17))
'21'
print('{:x}'.format(17))
'11'
-用,号还能用来做金额的千位分隔符
print('{:,}'.format(12345677))
'12,345,677