1、取整操作---round(value,ndigits)函数
round(3.14,1)
3.1
round(2.28,1)
2.3
round(3.1415926,3)
3.142
当某个值恰好等于两个整数之间的一半时,取整操作会取到离该值最接近的那个偶数上。(针对python3,python2并非如此)
python3:
round(3.5)
4
round(4.5)
4
python2:
round(3.5)
4.0
round(4.5)
5.0
py2和py3输出结果的类型也有所不同,一个输出int,一个输出float。
参数ndigits也可以是负数,这种情况下会相应的取整到十位、百位、千位等。
round(1234567,-1)
1234570
round(1234567,-2)
1234600
2、对数值格式化输出
format(3.1415926,'0.2f')
'3.14'
format(1234.56789,'>10.1f')
' 1234.6'
format(1234.56789,'^10.1f')
' 1234.6 '
其中^、<、>分别是居中、左对齐、右对齐,后面跟的数字表示宽度
format(4425.3861,',')
'4,425.3861'
format(4425.3861,',.1f')
'4,425.4'
','表示对整数部分每三位数字进行分割
format(415.3861,'e')
'e'表示用科学计数法显示。
3、random模块
random.chioce()---从序列中随机选出元素
import random
li=[1,3,5,7,2,4,6,8]
random.choice(li)
Out[3]: 5
random.choice(li)
Out[4]: 5
random.choice(li)
Out[5]: 6
random.choice(li)
Out[6]: 2
random.choice(li)
Out[7]: 3
random.choice(li)
Out[8]: 4
random.choice(li)
Out[9]: 6
random.choice(li)
Out[10]: 8
选出N个元素
random.sample(li,3)
Out[11]: [4, 2, 6]
random.sample(li,4)
Out[12]: [4, 6, 3, 5]
random.sample(li,5)
Out[13]: [2, 3, 7, 6, 8]
a=[1,2,3,4]
random.shuffle(a)
a
Out[16]: [4, 1, 3, 2]
如果在原序列中原地打乱元素的顺序(洗牌),可以使用random.shuffle()
a=[1,2,3,4]
random.shuffle(a)
a
Out[16]: [4, 1, 3, 2]
random.randint()----产生随机整数
random.randint(1,8)
Out[30]: 2
In [31]: random.randint(1,8)
Out[31]: 4
In [32]: random.randint(1,8)
Out[32]: 7
In [33]: random.randint(1,8)
Out[33]: 1
In [34]: random.randint(1,8)
Out[34]: 2
In [35]: random.randint(1,8)
Out[35]: 3
random.random()---产生0到1之间均匀分布的浮点数值
In [37]: random.random()
Out[37]: 0.6197353765835416
In [38]: random.random()
Out[38]: 0.35377782988497564
In [39]: random.random()
Out[39]: 0.5645677476085343
random.uniform()---产生均匀分布值
4、日期时间
datetime模块完成不同时间单位的换算。
In [42]: from datetime import timedelta
In [43]: a=timedelta(days=3,hours=8)
In [44]: b=timedelta(hours=2)
In [45]: c=a+b
In [46]: c.days
Out[46]: 3
In [47]: c.seconds
Out[47]: 36000
In [48]: c.seconds/3600
Out[48]: 10.0
In [49]: c.total_seconds()
Out[49]: 295200.0
In [50]: c.total_seconds()/3600
Out[50]: 82.0
In [51]: from datetime import datetime
In [52]: a=datetime(2018,5,16)
In [53]: a
Out[53]: datetime.datetime(2018, 5, 16, 0, 0)
In [54]: print(a+timedelta(days=10))
2018-05-26 00:00:00
In [55]: b=datetime(2018,6,12)
In [56]: d=b-a
In [57]: d.days
Out[57]: 27
In [58]: now=datetime.today()
In [59]: print(now)
2018-05-16 10:04:35.613223
In [60]: print(now+timedelta(minutes=20))
2018-05-16 10:24:35.613223
In [61]: from dateutil.relativedelta import relativedelta
In [62]: a=datetime(2018,2,8)
In [63]: a+relativedelta(months=+1)
Out[63]: datetime.datetime(2018, 3, 8, 0, 0)
In [64]: a+relativedelta(months=+15)
Out[64]: datetime.datetime(2019, 5, 8, 0, 0)
In [65]: b=datetime(2018,5,1)
In [66]: d=b-a
In [67]: d
Out[67]: datetime.timedelta(82)
In [68]: print(d)
82 days, 0:00:00
In [69]: relativedelta(b,a)
Out[69]: relativedelta(months=+2, days=+23)
In [70]: relativedelta(b,a).months
Out[70]: 2
In [71]: relativedelta(b,a).days
Out[71]: 23
5、将字符串转换为日期
str_datetime='2018-5-8'
In [87]: res=datetime.strptime(str_datetime,'%Y-%m-%d')
In [88]: now=datetime.now()
In [89]: dif=now-res
In [90]: dif
Out[90]: datetime.timedelta(8, 47661, 159201)
参考:
1、Python Cookbook中文版