标准库time、datetime、calendar、random的使用

一、time库

  • 当我们想知道时间的时候,我们会看一看墙上的挂钟或者手上的手表。那么问题来了!我们的计算机先生是怎么知道时间的呢?
    处理时间是程序最常用的功能之一。实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔,即时间戳。时间间隔是以秒为单位的浮点小数。

  • Python具有良好的时间和日期管理功能。

  • time库是Python提供的处理时间的标准库。time库提供了系统级的精准计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。

  • Python中获取时间的常用方法是,先得到时间戳,再将其转换成想要的时间格式

? 了解一下时间戳的概念。

时间戳:格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

? 了解一下元组struct_time的概念及内容。

日期、时间是包含许多变量的,所以在Python中定义了一个元组struct_time将所有这些变量组合在一起,包括:4位数年、月、日、小时、分钟、秒等,为:struct_time(tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,
tm_yday,tm_isdst)。

所有变量及对应的struct_time元组的属性及要求如下:

序号变量字段对应的struct_time元组的属性
04位数年tm_year如:2019
1tm_mon1 到 12
2tm_mday1 到 31
3小时tm_hour0 到 23
4分钟tm_min0 到 59
5tm_sec0 到 61 (60或61 是闰秒)
6一周的第几日tm_wday0到6 (0是周一)
7一年的第几日tm_yday1 到 366(儒略历)
8夏令时tm_isdst-1, 0, 1, -1是决定是否为夏令时的旗帜
? time库主要包括三类函数:

1、时间获取:time()ctime()gmtime()localtime()
2、时间格式化:strftime()strptime()
3、程序计时:sleep()perf_counter()

1.1 获取当前时间戳

即计算机内部时间值,浮点数
语法:time.time()

>>>import time  # 导入time库
>>>t = time.time()  # 返回当前时间戳
>>>print("当前时间戳为:", t)
当前时间戳为: 1554291214.2258205

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

1.2 将一个struct_time转换成时间戳

语法:time.mktime(tuple)

>>> time.mktime(time.localtime())
1478942416.0

1.3 获取当前时间

(1)语法:time.gmtime([secs]):表示为计算机可处理的时间格式

将一个时间戳(以秒表示的时间)转换为UTC中的struct_time,其中dst(夏令时)标志始终为零
如果未提供secs或None,则使用由time()返回的当前时间。忽略秒的分数。

>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=4,
 tm_mday=3, tm_hour=12, tm_min=52, tm_sec=36, 
 tm_wday=2, tm_yday=93, tm_isdst=0)

(2)语法:time.localtime([seconds])
与gmtime()相似,但结果是转换为本地时间
如果未提供secs或None,则使用由time()返回的当前时间。
若给定时间使用的是夏令时,就将dst标志设置为1。

>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=4,
 tm_mday=6,tm_hour=13, tm_min=8, tm_sec=44,
  tm_wday=5, tm_yday=96, tm_isdst=0)
  • gmtime()与localtime()的异同点:
    同:
    ^ 两者的参数相同,都是时间戳。若没有提供参数,都会自动调用time .time()得到时间戳。
    ^ 两者返回的结果格式相同,都是元组struct_time。
    异:
    ^两者返回的时间是两个时区对相同时刻的时间表示。其中,gmtime()表示的是0时区的标准时间,而localtime()表示的是本地时区的时间。

(3)语法:time.ctime([secs]):以易读方式表示,返回字符串

把一个时间戳(用秒计算的浮点数)转换为一个表示本地时间的字符串。
如果参数secs未给出或为None,就使用由time()返回的当前时间。

>>>import time  # 导入time库
>>> time.ctime()
'Wed Apr  3 20:50:27 2019'

(4)语法:time.asctime([t]):参数是元组,返回字符串

将 gmtime()或localtime() 返回的表示时间的元组(9个元素的元组)或struct_time 转换成一个字符串,格式:‘Sun Jun 20 23:21:051993’。
如果没有传入参数t,则使用localtime()返回的时间作为t。

  • 首先,使用函数gmtime()、localtime()的返回值作为参数。
>>> import time
#提供一个反例:time()函数返回时间戳,不能作为asctime()的参数,注意错误提示。
>>> time.asctime(time.time())
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    time.asctime(time.time())
TypeError: Tuple or struct_time argument required
 # 参数只能是元组或struct_time
 
>>> time.asctime(time.gmtime())
'Wed Jan 10 01:03:23 2018'

>>> time.asctime(time.localtime())
'Wed Jan 10 09:03:50 2018'
  • 然后,自定义一个9个元素的元组作为参数。为了方便检查,我们首先使用gmtime()返回一个正确的时间元组,然后将各属性值拷贝到自定义元组中:
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=10, tm_hour=1,
 tm_min=11, tm_sec=24, tm_wday=2, tm_yday=10, tm_isdst=0)
 
>>> tuple_time = (2018,1,10,1,11,24,2,10,0) #9个元素的元组
>>> time.asctime(tuple_time)
'Wed Jan 10 01:11:24 2018'

#若元组中元素个数不等于9个,将会报错
>>> tuple_time = (2018,10,1,1,11,24,2,10) 
>>> time.asctime(tuple_time)
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    time.asctime(tuple_time)
TypeError: function takes exactly 9 arguments (8 given) 
  • ctime()与asctime()的异同点:
    异:两者参数不同。ctime([secs])的参数是时间戳(常用time.time()获得),而asctime([t])的参数是时间元组(常用localtime()或gmtime())。
    同:两者输出时间的格式相同。

2、Python 获取格式化的时间

python中时间日期格式化符号:

指令描述
%a简化星期名称,如Sat
%A完整星期名称,如Saturday
%b简化月份名称,如Nov
%B完整月份名称,如November
%c当前时区日期和时间
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%j年内的一天(001-366)
%m月份(01-12)
%M分钟数(00-59)
%pAM或PM,AM表示上午,PM表示下午
%S秒(00-59)
%U一年中第几个星期(00-53)星期天为星期的开始
%w星期几(0-6),星期天为星期的开始
%W一年中第几个星期(00-53)星期一为星期的开始
%x本地日期,如’11/12/16’
%X本地时间,如’17:46:20’
%y简写年名称,00-99。如16
%Y完整年名称,000-9999。如2016
%Z当前时区名称(PST:太平洋标准时间)
%%代表一个%号本身

2.1 time.strftime(format[, t])

将gmtime()或localtime()返回的时间元组或struct_time转换为与参数格式相同的字符串。
如果未提供t,则默认使用localtime()返回的当前时间。参数format[,t]必须是字符串。如果t中的任何字段超出允许范围,则会引发ValueError。

  • 例:
>>> from time import localtime, strftime

# 格式化成2019-04-06 16:14:16形式
>>> print(strftime("%Y-%m-%d %H:%M:%S", localtime()))#定义一个时间输出格式
2019-04-06 16:14:16 #输出样式

# 格式化成Sat Apr 06 16:15:59 2019形式
>>> print(strftime("%a %b %d %H:%M:%S %Y", localtime()))
Sat Apr 06 16:15:59 2019
>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) #显示时区的时间
'2018-01-10 13:10:28'

>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) #显示本地时间
'2018-01-10 21:09:45'

>>> time.strftime("%Y-%m-%d %H:%M:%S") 
#默认调用time.localtime()获取本地时间
'2018-01-10 21:11:19'

2.2 time.strptime(string [,format] )

  • 相当于strftime()的逆函数
  • 按照格式format(默认使用"%a %b %d %H:%M:%S %Y"),解析表示时间的字符串string。返回值是struct_time类型,类似于gmtime()或localtime()。
>>> import time

>>>a = "Sat Mar 28 22:24:24 2016"
>>>time.strptime(a, "%a %b %d %H:%M:%S %Y") # 等同于time.strptime(a)
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=28,
 tm_hour=22, tm_min=24, tm_sec=24, tm_wday=5, tm_yday=88, tm_isdst=-1)
 
>>>print(time.mktime(time.strptime(a))) # 将格式字符串转换为时间戳 
1459175064.0

#字符串"30 Nov 00",设为"%d %b %y"格式输出
>>> time.strptime("30 Nov 00", "%d %b %y")   
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30,
 tm_hour=0, tm_min=0,tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
 #注意默认值的填充

3. 程序计时

  • 程序计时指测量起止动作所经历时间的过程。

3.1 测量时间:perf_counter()

需要调用两次,解释见下:
perf_counter()返回一个CPU级别的精确时间计数值,单位为秒。
由于这个计数值起点不确定,连续调用差值才有意义。

>>>start = time.perf_counter()
318.66599499718114

>>>end = time.perf_counter()
341.3905185375658

>>>end - start
22.724523540384666

3.2 产生时间:sleep(s)

S拟休眠的时间,单位是秒,可以是浮点数。

>>>def wait:
	   time.sleep(3.3)
>>>wait() 
#程序将等待3.3秒后,再退出

二、datetime库

datetime模块用于date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1。
datetime库提供了以下五个类:


描述
1datetime.date表示日期,年月日组成
2datetime.datetime表示日期和时间
3datetime.time表示时间,时分秒及微秒组成
4datetime.timedelta表示时间间隔,即两个时间点的间隔
5datetime.tzinfo时区的相关信息

获取当前的日期和时间:

from datetime import datetime
now = datetime.now()
print(now)
print(type(now))

1 datetime.date类:

date类有三个参数,datetime.date(year,month,day),返回year-month-day

  • year的范围是[MINYEAR, MAXYEAR],即[1, 9999];
  • month的范围是[1, 12]。(月份是从1开始的,不是从0开始的 ?);
  • day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天。
方法(前面都省略了datetime.)描述描述
date.maxdate对象所能表示的最大日期>>> from datetime import *
>>> import time
>>> date.max
datetime.date(9999, 12, 31)
date.min对象所能表示的最小日期>>> from datetime import *
>>> import time
>>> date.min
datetime.date(1, 1, 1)
date.strftime()根据datetime自定义时间格式>>> date.strftime(datetime.now(), ‘%Y-%m-%d %H:%M:%S’)
'2016-11-12 07:24:15
date.today()返回当前系统日期>>> date.today()
datetime.date(2016, 11, 12)
date.isoformat()返回ISO 8601格式时间
YYYY-MM-DD)
>>> date.isoformat(date.today())
‘2016-11-12’
date.fromtimestamp()根据时间戳返回日期>>> date.fromtimestamp(time.time())
datetime.date(2016, 11, 12)
date.weekday()根据日期返回星期几,周一是0,以此类推>>> date.weekday(date.today())
5
date.isoweekday()根据日期返回星期几,周一是1,以此类推>>> date.isoweekday(date.today())
6
date.isocalendar()根据日期返回日历(年,第几周,星期几)>>> date.isocalendar(date.today())
(2016, 45, 6)

2 datetime.datetime()类:

datetime类有很多参数,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回年月日,时分秒。

方法描述举例
datetime.datetime.ctime()返回一个日期时间的C格式字符串,
等效于time.ctime(time.mktime(dt.timetuple()))
datetime.datetime.now()返回当前系统时间>>> datetime.now()
datetime.datetime(2016, 11, 12, 7, 39, 35, 106385)
datetime.datetime.today()返回当前系统时间
(同datetime.datetime.now())
>>> datetime.datetime.now()
datetime.datetime(2016, 11, 12, 7, 39, 35, 106385)
datetime.datetime.date()返回时间日期对象,年月日>>>datetime.date(datetime.now())
datetime.date(2016, 11, 12)
datetime.datetime.time()返回时间对象,时分秒>>>datetime.time(datetime.now())
datetime.time(7, 46, 2, 594397)
datetime.datetime.now().date()返回当前日期时间的日期部分
datetime.datetime.now().time()返回当前日期时间的时间部分
datetime.datetime.fromtimestamp()
datetime.datetime.replace()
datetime.datetime.strftime()由日期格式转化为字符串格式

3 datetime.time类:

time类有5个参数,datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:30。
1.datetime.time.replace()
2.datetime.time.strftime(format):按照format格式返回时间
3.datetime.time.tzname():返回时区名字
4.datetime.time.utcoffset():返回时区的时间偏移量

4 datetime.timedelta类:

# 获取昨天日期
>>> date.today() - timedelta(days=1)         
datetime.date(2016, 11, 11)
>>> date.isoformat(date.today() - timedelta(days=1))
'2016-11-11'
# 获取明天日期
>>> date.today() + timedelta(days=1)               
datetime.date(2016, 11, 13)
>>> date.isoformat(date.today() + timedelta(days=1))
'2016-11-13'

三、calendar库

  • calendar 模块是python实现的unix 的 cal命令。它可以以标准的模式打印出给定年月的日历。
  • 值得注意的是,默认情况下,这些日历将星期一作为一周的第一天,将星期日作为一周的最后一天(欧洲惯例)。 不过,我们可以使用setfirstweekday()方法来设置一周的第一天为星期日或h者其他工作日,指定的日期以整数形式给出。
  • calendar模块主要由Calendar类与一些模块方法构成,Calendar类又衍生了一些子孙类来帮助我们实现一些特殊的功能。

3.1 setfirstweekday(firstweekday):指定一周的第一天

或者setfirstweekday(calendar.SUNDAY)参数:MONDAY / TUESDAY / WEDNESDAY / THURSDAY / FRIDAY / SATURDAY / SUNDAY

指定一周的第一天,0是星期一,…,6为星期日

>>>import calendar

# 将星期日设置为一周第一天
>>>calendar.setfirstweekday(firstweekday=6)
#方法二
>>>calendar.setfirstweekday(calendar.SUNDAY) 

3.2 firstweekday():返回一周的第一天

返回一周的第一天,0是星期一,…,6为星期日。
一般和setfirstweekday(firstweekday)结合在一起。

>>>import calendar

# 将星期日设置为一周第一天
>>>calendar.setfirstweekday(firstweekday=6)
>>>print(calendar.firstweekday()) 
> 6
#方法二
>>> calendar.setfirstweekday(calendar.SUNDAY)
>>> calendar.firstweekday()
6

3.3 isleap(year):判断闰年

判断指定是否是闰年,闰年为True,平年为False。

>>>import calendar

# 2018年是平年,所以为False
>>>calendar.isleap(2018)
 False
 
# 2008年是闰年,所以为True
>>>print(calendar.isleap(2008))        
True

3.4 leapdays(y1, y2):y1年到y2年的闰年数

返回y1与y2年份之间的闰年数量,y1与y2皆为年份。
包括起始年,不包括结束年

>>>import calendar

# 2008到2011之间只有2008年是闰年,所以数量为1
>>>print(calendar.leapdays(2008, 2011))    
1

3.5 weekday(year, month, day):获取指定日期为星期几

>>>import calendar

# 2018-08-08正是星期三,千万别忘记2代表的是星期三
>>>print(calendar.weekday(2018, 8, 8))     
 2

3.6 weekheader(n):返回包含星期的英文缩写

返回包含星期的英文缩写,n表示英文缩写所占的宽度。

>>>import calendar

>>>print(calendar.weekheader(4))
Mon  Tue  Wed  Thu  Fri  Sat  Sun 

>>>print(calendar.weekheader(1))
S M T W T F S

>>>print(calendar.weekheader(5))
 Sun   Mon   Tue   Wed   Thu   Fri   Sat 

3.7 monthrange(year, month)

返回一个由一个月第一个天的星期与当前月的天数组成的元组

3.8 monthcalendar(year, month)

返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期。

>>>import calendar

>>>calendar.setfirstweekday(firstweekday=6)
>>>print(calendar.monthcalendar(2018, 8))

############### 打印结果如下 ###############
[[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], 
[12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], 
[26, 27, 28, 29, 30, 31, 0]]

3.9 prmonth(theyear, themonth, w=0, l=0)

打印一个月的日历,theyear指定年份,themonth指定月份,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行。

>>>import calendar

>>>calendar.setfirstweekday(firstweekday=6)
>>>calendar.prmonth(2018, 8)

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

3.10 month(theyear, themonth, w=0, l=0)

返回一个月的日历的多行文本字符串。theyear指定年份,themonth指定月份,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行。

import calendar

calendar.setfirstweekday(firstweekday=6)
print(calendar.month(2018, 8))

############### 打印结果如下 ###############
    August 2018
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

3.11 prcal(year, w=0, l=0, c=6, m=3)

打印一年的日历,w每个单元格宽度,默认0,内部已做处理,最小宽度为2,l每列换l行,默认为0,内部已做处理,至少换行1行,c表示月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列。

>>>import calendar

>>> calendar.setfirstweekday(firstweekday = 6)
>>> calendar.prcal(2019,m=3)
###################################################################
                                  2019

      January                   February                   March
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
       1  2  3  4  5                      1  2                      1  2
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       3  4  5  6  7  8  9
13 14 15 16 17 18 19      10 11 12 13 14 15 16      10 11 12 13 14 15 16
20 21 22 23 24 25 26      17 18 19 20 21 22 23      17 18 19 20 21 22 23
27 28 29 30 31            24 25 26 27 28            24 25 26 27 28 29 30
                                                    31

       April                      May                       June
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3  4                         1
 7  8  9 10 11 12 13       5  6  7  8  9 10 11       2  3  4  5  6  7  8
14 15 16 17 18 19 20      12 13 14 15 16 17 18       9 10 11 12 13 14 15
21 22 23 24 25 26 27      19 20 21 22 23 24 25      16 17 18 19 20 21 22
28 29 30                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30

        July                     August                  September
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                   1  2  3       1  2  3  4  5  6  7
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       8  9 10 11 12 13 14
14 15 16 17 18 19 20      11 12 13 14 15 16 17      15 16 17 18 19 20 21
21 22 23 24 25 26 27      18 19 20 21 22 23 24      22 23 24 25 26 27 28
28 29 30 31               25 26 27 28 29 30 31      29 30

      October                   November                  December
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
       1  2  3  4  5                      1  2       1  2  3  4  5  6  7
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       8  9 10 11 12 13 14
13 14 15 16 17 18 19      10 11 12 13 14 15 16      15 16 17 18 19 20 21
20 21 22 23 24 25 26      17 18 19 20 21 22 23      22 23 24 25 26 27 28
27 28 29 30 31            24 25 26 27 28 29 30      29 30 31

3.12 calendar(year, w=2, l=1, c=6, m=3)

以多行字符串形式返回一年的日历,w每个单元格宽度,默认2,内部已做处理,最小宽度为2,l每列换l行,默认为1,内部已做处理,至少换行1行,c表示月与月之间的间隔宽度,默认为6,内部已做处理,最小宽度为2,m表示将12个月分为m列。


import calendar

calendar.setfirstweekday(firstweekday=6)
print(calendar.calendar(2019, m=3))

############### 打印结果如下 ###############
                                    2019

      January                   February                   March
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
       1  2  3  4  5                      1  2                      1  2
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       3  4  5  6  7  8  9
13 14 15 16 17 18 19      10 11 12 13 14 15 16      10 11 12 13 14 15 16
20 21 22 23 24 25 26      17 18 19 20 21 22 23      17 18 19 20 21 22 23
27 28 29 30 31            24 25 26 27 28            24 25 26 27 28 29 30
                                                    31

       April                      May                       June
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3  4                         1
 7  8  9 10 11 12 13       5  6  7  8  9 10 11       2  3  4  5  6  7  8
14 15 16 17 18 19 20      12 13 14 15 16 17 18       9 10 11 12 13 14 15
21 22 23 24 25 26 27      19 20 21 22 23 24 25      16 17 18 19 20 21 22
28 29 30                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30

        July                     August                  September
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                   1  2  3       1  2  3  4  5  6  7
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       8  9 10 11 12 13 14
14 15 16 17 18 19 20      11 12 13 14 15 16 17      15 16 17 18 19 20 21
21 22 23 24 25 26 27      18 19 20 21 22 23 24      22 23 24 25 26 27 28
28 29 30 31               25 26 27 28 29 30 31      29 30

      October                   November                  December
Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
       1  2  3  4  5                      1  2       1  2  3  4  5  6  7
 6  7  8  9 10 11 12       3  4  5  6  7  8  9       8  9 10 11 12 13 14
13 14 15 16 17 18 19      10 11 12 13 14 15 16      15 16 17 18 19 20 21
20 21 22 23 24 25 26      17 18 19 20 21 22 23      22 23 24 25 26 27 28
27 28 29 30 31            24 25 26 27 28 29 30      29 30 31

四、random库

在使用python过程中会遇到随机数的使用,那么怎么使 a 随机生成一个数值呢,来研究一下random的部分程序。
1、随机浮点数

random.uniform() 用于生成指定范围内的浮点数

import random # 首先还是要导入random这个模块
a = random.uniform(2,10) # 两个参数,一个是上限,一下是下限
print(a)

结果:3.0268555183487953
2、随机整数

random.randint() 用于选取指定范围内的整数

a  = random.randint(10,80)
print(a)

结果:35

random.randrange() 用于随机选取0—100之间的随机偶数

a = random.randrange(0,100,2)
print(a)

结果:54
3、随机字符

random.choice() 用于随机选取指定字符串中的字符

a = random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
print(a)

结果:lemon

random.sample() 运行之后 a 就会随机选取字符串中的字符

a = random.sample('qwertyuiop',3) # 随机选3个
print(a)

结果:[‘p’, ‘e’, ‘i’]
4、随机洗牌

random.shuffle() 用于将一个列表中的元素打乱

a = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(a)
print(a)

结果:[‘powerful’, ‘simple’, ‘and so on…’, ‘is’, ‘Python’]

参考链接:
参考1
calendar库参考
datetime库参考
datetime库参考2
random库参考

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值