第八章 time模块

news2024/11/28 6:51:12

1. time模块介绍

time 模块提供了各种时间相关的函数,该模块中对于时间表示的格式有如下三种:

  • 时间戳(timestamp):时间戳表示的是从1970 年1 月1 日00:00:00 开始按秒计算的偏移量。

  • 时间元组(struct_time):共有九个元素,分别为:年、月、日、时、分、秒、一周中的第几日、一年中的第几日、夏令时。

  • 格式化时间字符串(format time):已格式化的结构使时间更具可读性,包括自定义格式和固定格式。

2. 时间戳

时间戳(timestamp)表示的是从1970 年1 月1 日00:00:00 开始按秒计算的偏移量,也就是指格林尼治时间1970 年01 月01 日00 时00 分00 秒(即北京时间1970 年01 月01 日08 时00 分00 秒)起至现在的总秒数,它返回的是float 类型。但是在1970 年之前的日期就无法用时间戳来表示,太遥远的日期也无法用时间戳表示,且UNIX 和Windows 只支持到2038 年。

导入time 模块,然后通过time 模块调用time() 方法获取当前时间的时间戳,代码如下:

import time        			# 导入time模块

print(time.time())  		# 获取当前时间的时间戳

3. 时间元组

在Python 中,使用9 个元素组成的元组来处理时间,我们称之为时间元组(struct_time 元组)。时间元组中9 个元素分别为:年、月、日、时、分、秒、一周中的第几日、一年中的第几日、夏令时。struct_time 元组的含义及属性如表1 所示。

在这里插入图片描述
导入time 模块,然后通过time 模块调用localtime() 方法获取当地时间的时间元组,代码如下:

import time            		# 导入time模块

print(time.localtime())  	# 接收时间戳并返回当地时间的时间元组

程序运行结果如下:

time.struct_time(tm_year=2020, tm_mon=3, tm_mday=11, tm_hour=8, tm_min=54, tm_sec=53,tm_wday=2, tm_yday=71, tm_isdst=0)

说明:当前时间为:2020 年,3 月,11 日,8 时,54 分,53 秒,星期三,一年中的第71 天,不是夏令时。

4. 格式化的时间字符串

常用的时间日期格式化符号:
在这里插入图片描述
完整英文星期名称和简写英文星期名称:
在这里插入图片描述
完整英文月份名称和简写英文月份名称:
在这里插入图片描述
导入time 模块,然后调用time 模块的strftime() 方法按“年- 月- 日 时: 分: 秒”格式输出日期时间,代码如下:

import time                             		# 导入time模块

print(time.strftime(%Y-%m-%d %H:%M:%S’))   	# 打印年-月-日 时:分:秒

5. altzone常量——获取夏令时时区的偏移量(秒为单位)

altzone 常量用于获取本地夏令时的偏移秒数,如果该地区在UTC 东部会返回负值(如西欧,包括英国),且对夏令时启用的地区才可以使用。语法格式如下:

time.altzone

参数说明:

  • 返回值:返回本地夏令时的偏移秒数。

调用altzone 常量获取本地夏令时的偏移秒数,代码如下:

import time        	# 导入time模块

print(‘本地夏令时的偏移秒数为:',time.altzone)

6. daylight常量——获取是否定义了夏令时

daylight 常量用于获取是否定义了夏令时时区。语法格式如下:

time.daylight

参数说明:

  • 返回值:如果定义了夏令时的时区将返回1;否则返回0。

调用daylight 常量获取当前系统时区是否定义了夏令时,代码如下:

import time        	# 导入time模块

print(‘确认定义夏令时时区的返回值为:,time.daylight)

7. timezone常量——获取非夏令时时区的偏移量(秒为单位)

timezone 常量用于获取本地非夏令时的偏移秒数(西欧大部分地区与亚洲为负,美国为正,英国为零),且对非夏令时的地区才可以使用。语法格式如下:

time.timezone

参数说明:

  • 返回值:返回非夏令时时区的偏移秒数。

调用timezone 常量获取北京非夏令时时区的偏移量,代码如下:

import time    	# 导入time模块

print(‘北京非夏令时时区的偏移量为:',time.timezone,’秒')

8. tzname常量——返回标准时区名称与夏令时时区名称所组成的元组

tzname 常量用于获取包含两个字符串的元组,该元组中的第一个值为本地非夏令时时区名称,第二个值为本地夏令时时区名称。语法格式如下:

time.tzname

参数说明:

  • 返回值:返回标准时区名称与夏令时时区名称所组成的元组。

使用tzname 常量,由于返回的元组信息为乱码,所以需要进行编码后输出,代码如下:

import time           		# 导入time模块

tz=time.tzname         		# 获取计算机当前标准时区与夏令时时区名称

print(‘返回的元组信息为:',tz)


# 由于返回的元组信息为乱码,所以需要进行编码后输出

print(‘标准时区名称为:',tz[0].encode(‘latin-1).decode(‘gbk’))

print(‘夏令时时区名称为:',tz[1].encode(‘latin-1).decode(‘gbk’))

9. asctime()方法——接收时间元组并返回一个字符串

asctime() 方法用于接收时间元组,并返回一个可读长度为24 个字符的字符串,语法格式如下:

time.asctime([t]))

参数说明:

  • t :表示完整的9 位元素元组或者通过方法localtime() 方法或gmtime() 方法返回的时间值。参数为空时,默认以time.localtime() 的值为参数,所得到的是当前时间。

  • 返回值:返回一个字符串,格式为:Www Mmm dd hh:mm:ss yyyy。其中Www为星期、Mmm为月份、dd 为日、hh 为时、mm 为分、ss 为秒、yyyy 为年份。

使用asctime() 方法输出时间元组对应的时间字符串,代码如下:

import time                                       				# 导入time模块

t = (2018,12,13,21,36,54,3,347,0)                    			# 创建一个名称为t的时间元组

print(‘指定时间元组: ‘,time.asctime(t))               			# 指定时间元组

print(‘默认时间元组: ‘,time.asctime())                			# 参数为空

print(‘UTC时区的时间元组:',time.asctime(time.gmtime())) 		# 设置参数为time.gmtime()

10. clock()方法——以浮点数返回当前的CPU时间

clock() 方法用于获取浮点类型的当前CPU 时间,可以用来衡量不同程序的运行时间。语法格式如下:

time.clock()

参数说明:

  • 返回值:第一次调用该方法,返回的时间为本次程序开始执行到调用clock() 方法结束所经过的秒数;第二次调用该方法,返回的时间为本次程序开始执行到第二次调用结束所经过的秒数,其类型为浮点型。

说明:time.clock() 方法在Python 3.3 中已被弃用,将从Python 3.8 中删除,但可以使用time.perf_counter()方法或time.process_time() 方法来代替。

time() 方法与clock() 方法都可以返回一个时间信息,不同的是,time() 方法返回格林尼治时间1970 年01 月01 日00 时00 分00 秒(北京时间1970 年01 月01 日08 时00 分00 秒)起至现在的总秒数;而clock() 方法返回自程序执行开始到clock() 方法结束所经过的秒数,代码如下:

import time        # 导入time模块

print(‘time方法的执行结果为:',time.time())

print(‘clock方法的执行结果为:',time.clock())

程序运行结果如下:

time方法的执行结果为:1564470063.4872446

clock方法的执行结果为:0.0679539

说明:由于time.clock() 方法已被弃用,所以在运行结果中会出现如下警告信息:

C:/Users/Administrator/Desktop/test1/t.py:13: DeprecationWarning: time.clock has beendeprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead

print(‘clock方法的执行结果为:',time.clock())

11. ctime()方法——接收时间戳并返回一个字符串

ctime() 方法用于以时间戳为参数,返回一个字符串。语法格式如下:

time.ctime([secs])

参数说明:

  • secs:要转换为字符串时间的秒数。如果没有参数或参数为None,将默认以time.time() 方法的时间戳作为参数,此时,ctime() 方法的的作用相当于asctime(localtime(secs)) 方法。

  • 返回值:返回一个字符串。

分别使用ctime() 方法和asctime() 方法输出本地时间戳对应的时间字符串,代码如下:

import time           	# 导入time模块

print(time.ctime())    	# 使用ctime()方法输出表示本地时间的字符串

print(time.asctime())   # 使用asctime()方法输出表示本地时间的字符串

程序运行结果如下:

Wed Mar 11 09:03:15 2020

Wed Mar 11 09:03:15 2020

使用ctime() 方法以指定的时间戳为参数返回对应的时间字符串,代码如下:

import time                         		# 导入time模块

print(time.ctime(1589383417.9643884 )) 		# 打印指定时间戳对应的字符串

12. get_clock_info()方法——获取指定时钟以命名空间对象形式的信息

get_clock_info() 方法用于获取指定时钟以命名空间对象形式的信息。语法格式如下:

time.get_clock_info(name)

参数说明:

  • name:该参数为需要获取的指定时钟方法的名称,其类型为字符类型。如获取time() 方法对应的命名空间对象信息时,只需填写字符型名称‘time’ 即可。

  • 返回值:返回指定时钟以命名空间对象形式的信息。

使用get_clock_info() 方法获取time() 方法的时钟信息,代码如下:

import time 									# 导入time模块

time_namespace = time.get_clock_info(‘time’) 	# 获取time()方法的时钟信息

print(time_namespace)

程序运行结果如下:

namespace(adjustable=True, implementation='GetSystemTimeAsFileTime()', monotonic=False,

resolution=0.015625)

说明:在返回的时钟信息中具有以下四个特性:
adjustable :如果时钟可以自动更改(例如通过NTP 守护程序)或由系统管理员手动更改,则为True ;否则为False。
implementation :用于获取时钟值的底层C函数的名称。关于可能的值,请参考时钟ID 常量。
monotonic :如果时钟不能倒退,则为True ;否则为False。
resolution :以秒为单位的时钟分辨率(float)。

将常见的时钟方法名称添加至列表中,然后通过for 循环获取每个时钟方法对应的信息,代码如下:

import time                                       		# 导入time模块

# 常见时钟方法名称

time_list = [‘time’,’thread_time’,’process_time’,’perf_counter’,’monotonic’]

for i in time_list:                                		# 循环遍历每个时钟方法对应的名称

print(i,’方法的时钟信息为:\n’,time.get_clock_info(i))   	# 打印每个时钟方法的信息

13. gmtime()方法——接收时间戳并返回UTC时区的时间元组

gmtime() 方法用于将一个时间戳转换为UTC 时区(0 时区)的时间元组,返回time.struct_time类型的对象。语法格式如下:

time.gmtime([secs])

参数说明:

  • secs:转换为time.struct_time类型的对象的秒数,其默认值为time.time()。

  • 返回值:返回指定时间戳所对应UTC时区的时间元组。

首先使用localtime() 方法输出本地时间的时间元组,然后使用gmtime() 方法输出UTC 时区的时间元组,对比两种时间元组的不同,代码如下:

import time 		# 导入time模块

print(‘本地时间的时间元组为:', time.localtime())

print(‘UTC时区的时间元组为: ‘, time.gmtime())

程序运行结果如下:

本地时间的时间元组为: time.struct_time(tm_year=2020, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=8, tm_sec=4, tm_wday=2, tm_yday=71, tm_isdst=0)

UTC时区的时间元组为: time.struct_time(tm_year=2020, tm_mon=3, tm_mday=11, tm_hour=1,tm_min=8, tm_sec=4, tm_wday=2, tm_yday=71, tm_isdst=0)

说明:UTC(Coordinated Universal Time)是世界协调时间(又称世界标准时间、世界统一时间),世界协调时间以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。gmtime() 方法和localtime() 方法类似,都能返回时间元组。localtime() 方法返回的是当前时区的时间元组,而gmtime() 方法返回的是UTC 时区(0 时区)的时间元组。与UTC 时间对应的就是各个时区的本地时间,东N区的时间比UTC时间早N个小时,因此,UTC时间+ N 小时即为东N区的本地时间;而西N 区时间比UTC 时间晚N 个小时,因此,UTC 时间- N 小时即为西N 区的本地时间。中国在东8 区,因此比UTC 时间早8 小时,可以以UTC+8 表示。

14. localtime()方法——接收时间戳并返回本地时间的时间元组

localtime() 方法用于将时间戳转换为本地时间的时间元组。语法格式如下:

time.localtime([secs])

参数说明:

  • secs:转换为time.struct_time类型的对象的秒数。如果secs参数未提供或为None,则返回当前时间(即默认调用time.time())。

  • 返回值:返回指定时间戳对应的本地时间的时间元组。

使用localtime() 方法获取本地当前时间的时间元组,代码如下:

import time 								# 导入time模块

print(time.localtime()) 					# 打印本地当前时间的时间元组

print(time.localtime(time.time()))			# 以time.time()返回的时间戳为参数获取本地时间的时间元组

程序运行结果如下:

time.struct_time(tm_year=2020, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=9, tm_sec=7, tm_wday=2, tm_yday=71, tm_isdst=0)

time.struct_time(tm_year=2020, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=9, tm_sec=7, tm_wday=2, tm_yday=71, tm_isdst=0)

使用localtime() 方法将给定的时间戳转换为时间元组,代码如下:

import time                            			# 导入time模块

print(time.localtime(1584773763.789422))  		# 将给定的时间戳转换为当地时间的时间元组

程序运行结果如下:

time.struct_time(tm_year=2020, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=56, tm_sec=3,tm_wday=5, tm_yday=81, tm_isdst=0)

在获取时间元组的属性时,可以通过“. 属性名”的方式来获取对应的值,也可以通过下标索引来获取对应的属性值,代码如下:

import time                             			# 导入time模块

t = time.localtime()                     			# localtime()方法获取本地当前时间的时间元组

print(‘本地当前时间的时间元组为:',t)        			# 打印本地当前时间的时间元组

print(‘属性名获取的年份为:',t.tm_year, “年")  		# 通过“.属性名”的方式获取年份

print(‘下标索引获取的月份为:',t[1], “月")     		# 通过下标索引获取月份

15. mktime()方法——接收时间元组并返回时间戳

mktime() 方法用于以时间元组作为参数并返回时间戳。语法格式如下:

time.mktime(t)

参数说明:

  • t:结构化的时间或者完整的9 位元素元组。

  • 返回值:返回用秒数来表示时间的浮点数。

使用mktime() 方法获取指定的时间元组为参数返回的时间戳,代码如下:

import time                      	# 导入time模块

t=(2018,12,13,21,36,54,3,347,0)    	# 创建一个名称为t的时间元组

print(time.mktime(t))            	# 以时间元组作为参数并返回时间戳

程序运行结果如下:

1544708214.0

说明:如果传入的值不是一个合法的时间元组,将触发OverflowError 或ValueError 错误异常。

首先使用localtime() 方法获取本地当前时间的时间元组,然后将获取的时间元组作为mktime()方法的参数并输出返回的时间戳,代码如下:

import time                         		# 导入time模块

t=time.localtime()                   		# 获取本地当前时间的时间元组

print(‘本地当前时间的时间元组为:',t)     	# 输出本地当前时间的时间元组

print(‘返回的时间戳为:',time.mktime(t))  	# 以本地当前时间的时间元组为参数返回时间戳

16. monotonic()方法——获取单调时钟的值

monotonic() 方法用于获取一个单调时钟的值(以浮点类型的秒为单位)。该值为不能倒退的时钟值,并且该值不会受到系统时钟更新后的影响。语法格式如下:

time.monotonic()

参数说明:

  • 返回值:返回一个单调时钟的值。

由于单调时钟的值不能倒退,所以计算两次调用之间的差值即可获取代码的休眠时间,代码如下:

import time                      	# 导入time模块

start_time = time.monotonic()      	# 第一次调用

time.sleep(2)                    	# 休眠2秒

end_time = time.monotonic()        	# 第二次调用

print(‘第一次返回的单调时钟值为:',start_time)

print(‘第二次返回的单调时钟值为:',end_time)

print(‘计算的休眠时间为:',end_time-start_time)

17. monotonic_ns()方法——获取单调时钟的(纳秒)值

monotonic_ns() 方法用于获取一个单调时钟的值(以浮点类型的纳秒为单位)。该值为不能倒退的时钟值,并且该值不会受到系统时钟更新的影响。语法格式如下:

time.monotonic_ns()

参数说明:

  • 返回值:返回一个单调时钟的(纳秒)值。

通过计算两次调用之间的差值来获取代码休眠的纳秒时间,代码如下:

import time                      		# 导入time模块

start_time = time.monotonic_ns()   		# 第一次调用

time.sleep(2)                    		# 休眠2秒

end_time = time.monotonic_ns()     		# 第二次调用

print(‘第一次返回的单调时钟纳秒值为:',start_time)

print(‘第二次返回的单调时钟纳秒值为:',end_time)

print(‘计算休眠时间的纳秒为:',end_time-start_time)

18. perf_counter()方法——获取性能计数器的(秒)值

perf_counter() 方法用于获取一个性能计数器的(秒)值,包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以只有连续调用的结果之间的差才是有效的。语法格式如下:

time.perf_counter()

参数说明:

  • 返回值:返回一个性能计数器的(秒)值。

调用循环函数,通过perf_counter() 方法获取循环函数的运行时间(秒)值,代码如下:

import time                                              			# 导入time模块

def procedure():                                          			# 定义函数

a = 0                                                   			# 定义变量

for i in range(1000000):                                  			# 循环

a+=i                                                				# 循环增加变量

print(a)                                             				# 打印当前变量值

start_time = time.perf_counter()                            		# 第一次调用perf_counter()方法

procedure()                                              			# 调用循环增加变量的函数

print(‘函数的运行时间为:',time.perf_counter()-start_time,’秒')   	# 打印函数运行的时间

19. perf_counter_ns()方法——获取性能计数器的(纳秒)值

perf_counter_ns() 方法用于获取一个性能计数器的(纳秒)值,包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以只有连续调用的结果之间的差才是有效的。语法格式如下:

time.perf_counter_ns()

参数说明:

  • 返回值:返回一个性能计数器的(纳秒)值。

调用循环函数,通过perf_counter_ns() 方法获取循环函数运行时间的(纳秒)值,代码如下:

import time                                                  			# 导入time模块

def procedure():                                             			# 定义函数

a = 0                                                      				# 定义变量

for i in range(1000000):                                     			# 循环

a+=i                                                    				# 循环增加变量

print(a)                                                				# 打印当前变量值

start_time = time.perf_counter_ns()                            			# 第一次调用perf_counter_ns()方法

procedure()                                                  			# 调用循环增加变量的函数

print(‘函数的运行时间为:',time.perf_counter_ns()-start_time,’纳秒')  	# 打印函数运行的时间

20. sleep()方法——按指定的秒数使程序休眠若干时间

sleep() 方法的作用是休眠,使程序按指定的秒数休眠若干时间。语法格式如下:

time.sleep(secs)

参数说明:

  • secs:休眠执行的秒数。secs 以秒为单位,如果想定时毫秒,可以使用小数,以便指示更精确地暂停时间。如0.1 秒,则代表暂停100 毫秒。

  • 返回值:无。

使用sleep() 方法实现延迟5 秒,然后通过print() 函数输出文本内容,代码如下:

import time        	# 导入time模块

time.sleep(5)      	# 延迟5秒

print(‘人生苦短,我用Python!')

程序运行结果如下:

人生苦短,我用Python!

使用sleep() 方法与ctime() 方法实现输出休眠前与休眠后的本地时间所对应的字符串,代码如下:

import time           	# 导入time模块

print(time.ctime())    	# 输出表示本地时间的字符串

time.sleep(10)         	# 休眠10秒

print(time.ctime())    	# 休眠10后输出表示本地时间的字符串

21. strftime()方法——把日期格式转为字符串格式

strftime() 方法用于格式化日期,把日期格式转换为字符串格式。该方法可以接收时间元组或者struct_time(如由localtime() 或gmtime() 返回的),按照指定格式转换为字符串格式,格式由参数format 决定。语法格式如下:

time.strftime(format[,t])

参数说明:

  • format :时间字符串所对应的格式,格式符号参考表2。

  • t :可选参数,一个struct_time对象。如果没有提供t,则使用localtime()返回的当前时间。

  • 返回值:返回以可读字符串表示的时间。

使用strftime() 方法输出不同格式的年、月、日,代码如下:

import time                   		# 导入time模块

print(time.strftime(%Y,%m,%d’)) 	# 输出年,月,日

print(time.strftime(%Y/%m/%d’)) 	# 输出年/月/日

print(time.strftime(%Y-%m-%d’)) 	# 输出年-月-日

程序运行结果如下:

2020,03,11

2020/03/11

2020-03-11

使用strftime() 方法格式化输出日期、时间、星期及月份,代码如下:

import time                                			# 导入time模块

print(time.strftime(%Y-%m-%d %H:%M:%S %A %B’)) 	# %A输出英文星期全称,%B输出英文月份全称

print(time.strftime(%Y-%m-%d %H:%M:%S %a %b’)) 	# %a输出英文星期简称,%b输出英文月份简称

程序运行结果如下:

2020-03-11 09:17:09 Wednesday March

2020-03-11 09:17:09 Wed Mar

使用strftime() 方法格式化多种时间对象,代码如下:

import time                   			# 导入time模块

t=(2020,12,13,21,36,54,3,347,0) 		# 创建一个名称为t的时间元组

# 根据提供的时间元组获取年-月-日 时:分:秒

print(time.strftime(%Y-%m-%d %H:%M:%S’,t))

# 根据localtime()返回的时间获取年 月 日 时 分 秒

print(time.strftime(%Y %m %d %H %M %S’,time.localtime()))

# 根据gmtime()返回的时间获取年,月,日 时:分:秒

print(time.strftime(%Y,%m,%d %H:%M:%S’,time.gmtime()))

22. strptime()方法——把时间字符串转为时间元组

strptime() 方法用于根据指定的格式把一个时间字符串转为时间元组,语法格式如下:

time.strptime(string[,format])

参数说明:

  • string:表示时间字符串。

  • format :表示时间字符串所对应的格式,格式符号参考表2。

  • 返回值:返回struct_time对象。

使用strptime() 方法将指定的时间字符串转换为时间元组,代码如下:

import time                                              			# 导入time模块

print(time.strptime(2020-07-29 21:36:54,%Y-%m-%d %H:%M:%S”)) 	# 将时间字符串转为时间元组

23. time()方法——返回当前时间的时间戳

time 模块中的time() 方法用于返回当前时间的时间戳。语法格式如下:

time.time()

参数说明:

  • 返回值:返回当前时间的时间戳。

使用time() 方法获取当前时间戳的显示范围,代码如下:

import time                                    			# 导入time模块

print(‘取整后的时间戳为: ‘,int(time.time()))       		# 对时间戳取整

print(‘小数点后两位的时间戳为:',%.2f’ % time.time())  	# 打印小数点后两位的时间戳

程序运行结果如下:

取整后的时间戳为: 1564127484

小数点后两位的时间戳为: 1564127484.35

首先使用time() 方法获取当前时间戳,由于秒与毫秒之间的换算单位为1000,所以需要用当前的时间戳*1000,才可获取时间戳的毫秒数;再通过int() 与round() 函数对时间戳的毫秒数进行四舍五入并取整,代码如下:

import time                                		# 导入time模块

millis = time.time() * 1000                  	# 获取时间戳毫秒数

millis_int = int(round(time.time() * 1000))    	# 四舍五入并取整

print(‘时间戳的毫秒为:',millis)

print(‘四舍五入取整后:',millis_int)

24. time_ns()方法——返回当前时间的 时间戳(纳秒)

time 模块中的time_ns() 方法与time() 方法类似,用于返回以纳秒为单位的时间戳。语法格式如下:

time.time_ns()

参数说明:

  • 返回值:返回以纳秒为单位的时间戳。

使用time_ns() 方法获取当前时间戳的纳秒值,代码如下:

import time    		# 导入time模块

print(‘当前时间戳的纳秒值为:', time.time_ns())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/664700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日复盘|6月19日

7:00-7:20 起床洗漱到教室 7:30-8:15 乐词 8:15-9:05 听力con*1 lec*1 9:05-10:47 听力真题 11:00-11:50 考研英语阅读真题 12:00-12:30 午饭🥣+桃子🍑 12:30-13:30 不背单词 13:30-14:00 午睡 14:00-…

SpringMVC07:Ajax研究

目录 一、项目启动时报错点 二、简介 三、伪造Ajax 四、jQuery.ajax 五、Springmvc实现一个list集合显示前端 六、注册提示效果 一、项目启动时报错点 6月 16, 2023 10:34:37 上午 org.apache.catalina.core.StandardContext filterStart 严重: 启动过滤器异常 java.lan…

6-JMM

目录 1.主内存与工作内存 2.内存间交互操作 Java内存模型的三大特性: happens-before原则(先行发生原则): 3.volatile型变量的特殊规则 ①保证此变量对所有线程的可见性 ②使用volatile变量的语义是禁止指令重排序 JVM定义…

node.js+vue+express企业客户关系管理系统mysql

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身…

21.模糊神经网络预测水质评价(附matlab程序)

1.简述 学习目标:模糊神经网络预测水质评价——重风水厂、 高升水厂、秦玺水厂 采用模糊神经网络预测这三个水厂的水质,并进行对比 模糊神经网络(Fuzzy Neural Network, FNN) 背景 系统复杂度的增加,人工智能深度化发展 模糊数学创始人L. A…

io.netty学习(四)ChannelHandler

目录 前言 正文 ChannelHandler ChannelInboundHandler ChannelOutboundHandler ChannelDuplexHandler 总结 前言 先简略了解一下ChannelPipeline和ChannelHandler的概念。 想象一个流水线车间。当组件从流水线头部进入,穿越流水线,流水线上的工…

第四章 组合逻辑电路--数电(期末复习笔记)

第四章 组合逻辑电路 本章重点: 1. 组合逻辑电路的分析与设计方法 2. 常用组合逻辑模块的使用 4.1 概述 4.11 组合逻辑电路 任一时刻的输出仅取决于该时刻的输入,与电路原来的状态无关。4.12 时序逻辑电路 任一时刻的输出不仅取决于现时的输入&am…

电容的基本工作原理

目录 电容器的发展历程现象发现第一个存储电荷的元器件:莱顿瓶真正出名的时刻 为什么电容器的容量单位称为法拉?电容器和电容的区别电容的组成电介质与电解质对电容的影响电容是如何工作的通交流阻直流阻直流通交流 电容器的单位电容的容抗电容常见的种类…

Idea Mybatis插件:提高CRUD效率

mybatis-sql-viewer插件主要提供能力:将mybatis xml转成真实SQL语句、参数mock、SQL规范检查、SQL索引检查、SQL运行、SQL压测及Mybatis SQL语句扫描。 1. 简介 虽然写了很久的CRUD,但是依旧觉得写好CRUD是一件非常难且麻烦的事情,以下的情…

chatgpt赋能Python-python找出不同部分

介绍 在SEO(Search Engine Optimization)领域,比较常见的问题之一是如何快速有效地查找出两段文本的不同部分。这对于优化网站内容或对比竞争对手的网站内容都非常有用。Python作为一种强大的编程语言,其特性和库使得这种任务变得…

神经网络入门①多层感知器如何解决异或问题?

文章目录 1. 多层感知器2. BP算法参考文献 1. 多层感知器 感知机(perceptron)早在20世纪50年代就提出来了1,但直到近几年深度学习的崛起,神经网络才再次走入大众的视野,并且成为了当下最热门的研究方向之一。 一个单层…

MybatisPlus的save方法

当我前端传递的是一个整合的数据模型Dto,需要同时插入俩张表,并且其中一张表的属性需要得到另一张表的id,如何实现呢?这个时候MP封装好的插入方法:save就起了很好的作用 public R<String> SaveNewDish(DishDto dishdto) { // 1. 保存菜品基本信息log.info("前…

MySQL优化--覆盖索引,超大分页查询

目录 覆盖索引 MYSQL超大分页处理 面试回答 大纲 回答 覆盖索引 覆盖索引是指查询使用了索引&#xff0c;并且需要返回的列&#xff0c;在该索引中已经全部能够找到 。 MYSQL超大分页处理 在数据量比较大时&#xff0c;如果进行limit分页查询&#xff0c;在查询时&#…

一步一步教你如何使用MMSelfSup框架【1】

介绍 任务介绍 自监督学习(Self-supervised learning, SSL)是一种极具潜力的学习范式&#xff0c;它旨在使用海量的无标注数据来进行表征学习。在SSL中&#xff0c;我们通过构造合理的预训练任务&#xff08;可自动生成标注&#xff0c;即自监督&#xff09;来进行模型的训练…

C#探索之路(8):初探.Net中官方文档OpCode的格式

C#探索之路(8)&#xff1a;初探.Net中官方文档OpCode的格式 文章目录 C#探索之路(8)&#xff1a;初探.Net中官方文档OpCode的格式1 前提2 疑惑1&#xff1a;Opcode格式是什么&#xff1f;3 答疑1&#xff1a;4 验证方式&#xff1a;5 总结 1 前提 最近在尝试了解学习这个OpCod…

使用ChatGPT最新版实现批量写作,打造丰富多彩的聚合文章

随着人工智能的迅猛发展&#xff0c;ChatGPT最新版作为一种自然语言处理模型&#xff0c;可以为我们提供强大的文本生成能力。在这篇文章中&#xff0c;我们将探讨如何利用ChatGPT最新版来实现批量写作&#xff0c;从而打造丰富多彩的聚合文章。 一、ChatGPT最新版简介 Chat…

使用mpi并行技术实现快排Qsort()

快排基本原理&#xff1a; 快速排序可以说是最为常见的排序算法&#xff0c;冒泡排序时间复杂度达到了O&#xff08;N2&#xff09;&#xff0c;而桶排序容易造成浪费空间。快排&#xff08;Quicksort&#xff09;就成为了不错的选择。 1、原理&#xff1a;快排需要找一个数作…

基于 JavaScript 中的 Date 类型实现指定日期和天数的加减运算

文章目录 Intro基本方法构造方法--如何初始化一个Date对象&#xff1f;Date 对象的天数加减法 【工具方法封装】最后 Intro 刚才突然想到&#xff0c;我还有多久就要过27岁的生日了呢。 年近三十&#xff0c;一事无成。 以下基于 JavaScript 中的 Date 对象封装一些方法。 基…

CAS、AtomicInteger和LongAdder原理

目录 一、CAS 1、介绍 2、CAS与volatile 3、为什么无锁效率高 4、总结 二、原子整数 三、原子引用 1、介绍 2、ABA问题 3、AtomicStampedReference 4、AtomicStampedReference 四、原子累加器 1、介绍 2、LongAdder重要关键域 CAS锁 原理之伪共享 3、LongAdde…

Java性能权威指南-总结15

Java性能权威指南-总结15 堆内存最佳实践对象生命周期管理弱引用、软引用与其他引用 小结 堆内存最佳实践 对象生命周期管理 弱引用、软引用与其他引用 在Java中&#xff0c;弱引用和软引用也支持对象重用&#xff0c;不过作为开发者&#xff0c;并不会经常从重用的角度看待…