流畅的python和cookbook学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流畅的python和cookbook学习笔记相关的知识,希望对你有一定的参考价值。

1.随机选择

  python中生成随机数使用random模块。

  1.从序列中随机挑选元素,使用random.choice()

>>> import random
>>> values = [1, 2, 3, 4, 5, 6]
>>> random.choice(values)
3
>>> random.choice(values)
3
>>> random.choice(values)
1
>>> random.choice(values)
1
>>> random.choice(values)
4

  2.取出指定个数的元素,使用random.sample()

>>> random.sample(values, 2)
[1, 4]
>>> random.sample(values, 2)
[3, 5]
>>> random.sample(values, 3)
[5, 3, 2]
>>> random.sample(values, 3)
[1, 3, 2]

  3.打乱序列的顺序,可以用来洗牌,使用random.shuffle()

>>> random.shuffle(values)
>>> values
[2, 4, 5, 3, 6, 1]
>>> random.shuffle(values)
>>> values
[2, 6, 5, 4, 3, 1]

  4.生成随机整数,使用random.randint()

>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
10
>>> random.randint(1, 10)
5

  5.生成 0 到 1 之间的浮点数,使用random.random()

>>> random.random()
0.31720220264500265
>>> random.random()
0.8230452349376671
>>> random.random()
0.09307172325744872

  6.生成随机比特位的整数,使用random.getrandbits()

>>> random.getrandbits(200)
859899606181938256764615251875627706548045135119258688489931
>>> random.getrandbits(200)
582401031226834278134883678914218487507678688169321631685078

 

2.时间的转换

  1.python中使用datetime模块来转换时间。

>>> from datetime import timedelta
>>> a = timedelta(days = 2, hours = 6)
>>> b = timedelta(hours = 4.5)
>>> c = a + b
>>> c.days
2
>>> c.seconds
37800
>>> c.seconds / 3600
10.5
>>> c.total_seconds() / 3600
58.5

  表示特定的日期和时间。

>>> from datetime import datetime
>>> a = datetime(2017, 9, 8)
>>> print(a + timedelta(days=2))
2017-09-10 00:00:00
>>> b = datetime(2017, 9, 22)
>>> d = b - a
>>> d.days
14
>>> now = datetime.today()
>>> print(now)
2017-09-08 20:09:56.904169
>>> print(now + timedelta(minutes=10))
2017-09-08 20:19:56.904169

  2.使用dateutil模块,可以处理不同月份中的天数。datetime不能处理月份。

>>> from dateutil.relativedelta import relativedelta
>>> a = datetime(2017, 9, 8)
>>> a + relativedelta(months=1)
datetime.datetime(2017, 10, 8, 0, 0)
>>> a + relativedelta(months=4)
datetime.datetime(2018, 1, 8, 0, 0)
>>> b = datetime(2017, 11, 11) >>> d = b - a >>> d datetime.timedelta(64)
>>> d = relativedelta(b, a) >>> d relativedelta(months=+2, days=+3) >>> d.months 2 >>> d.days 3

  3.把字符串转换为时间,使用datetime.strptime(),把时间转化为字符串使用datetime.strftime()

>>> from datetime import datetime
>>> text = 2017-9-8
>>> y = datetime.strptime(text, %Y-%m-%d)
>>> z = datetime.now()
>>> diff = z - y
>>> diff
datetime.timedelta(0, 73494, 826144)
>>> y
datetime.datetime(2017, 9, 8, 0, 0)
>>> z
datetime.datetime(2017, 9, 8, 20, 24, 54, 826144)
>>> nice_z = datetime.strftime(z, %A %B %d %Y)
>>> nice_z
Friday September 08 2017

 



以上是关于流畅的python和cookbook学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

Python Cookbook学习笔记

python cookbook第三版学习笔记九:函数