time函数

常用模块

天大地大妈咪最大 提交于 2020-02-18 23:37:52
阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 configparse模块 logging模块 认识模块    返回顶部 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 返回顶部 模块的导入和使用 模块的导入应该在程序开始的地方 更多相关内容 https://www.cnblogs

Linux下时间格式的转换

大兔子大兔子 提交于 2020-02-18 08:27:35
一、linux下时间表示方式 linux下存储时间常见的有两种存储方式: 1.从1970年到现在经过了多少秒 (time_t类型) 2.用一个结构来分别存储年月日时分秒 (tm结构体) tm结构体如下: struct tm { int tm_sec; /*秒,正常范围0-59, 但允许至61*/ int tm_min; /*分钟,0-59*/ int tm_hour; /*小时, 0-23*/ int tm_mday; /*日,即一个月中的第几天,1-31*/ int tm_mon; /*月, 从一月算起,0-11*/ 1+p->tm_mon; int tm_year; /*年, 从1900至今已经多少年*/ 1900+ p->tm_year; int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6*/ int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/ int tm_isdst; }; PS:年份是从1900年起至今多少年,而不是直接存储如2013年,月份从0开始的,0表示一月,星期也是从0开始的, 0表示星期日,1表示星期一。 二、linux下时间类型的相互转换 由上述可知,linux下常用的两种类型就是time_t和tm。下面根据程序来对两者完成一个相互转换。 1.time_t格式转换成tm格式 int main() { time

Python 中的装饰器

情到浓时终转凉″ 提交于 2020-02-17 07:37:12
说到装饰器是我们每个学Python人中的心痛。 1.闭包 学习装饰器首先我们先学习闭包: 闭包条件    1 在一个外函数中定义了一个内函数。 2 内函数里使用了外函数的临时变量。 3 并且外函数的返回值是内函数的引用(即函数名)。 闭包的定义 闭包的概念就是当我们在函数内定义一个函数时,这个内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用时,我们称之为闭包。 出现的背景 一般情况下,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。 闭包的基本结构: def func1(msg): #外函数 name="xiao" def inner(): #内函数 na = name # 使用外函数的变量 nb = msg print(inner.__closure__) print(inner.__closure__[0].cell_contents) print(inner.__closure__[1].cell_contents) return inner #返回内函数的引用 f=func1(123) f() #判断函数是不是闭包函数用__closure__方法 如果是闭包函数就是返回一个元组包含

装饰器

夙愿已清 提交于 2020-02-17 07:35:22
一、装饰器的作用 装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足: 不能修改被装饰的函数的源代码 不能修改被装饰的函数的调用方式 满足1、2的情况下给程序增添功能 概括的讲,装饰器的作用就是 在不修改原代码的条件下为已经存在的函数或对象添加功能 。 二、装饰器实现 写一个装饰器记录函数执行的时间 1、最简单的装饰器,不带参数的 两层函数,外层函数包裹内层函数,内层函数调用了外层函数的变量,外层函数返回内层函数的函数名;被装饰函数作为参数传入装饰器。 import time def deco(func): def wrapper(): startTime = time.time() func() endTime = time.time() msecs = (endTime - startTime)*1000 print("time is %d ms" %msecs) return wrapper @deco def func(): print("hello") time.sleep(1) print("world") if __name__ == '__main__': f = func f() 这里的deco函数就是最原始的装饰器,它的参数是一个函数,然后返回值也是一个函数

struct timeval 计时问题

烈酒焚心 提交于 2020-02-16 08:02:56
linux编程中,如果用到计时,可以用struct timeval获取系统时间。struct timeval的函数原型如下: struct timeval { __kernel_time_t tv_sec; /* seconds */ __kernel_suseconds_t tv_usec; /* microseconds */ }; 比如,如果要计算某代码运行的时间,可以使用如下代码: int main() { struct timeval tv; long long start_time, stop_time, delta_time; gettimeofday(&tv, NULL); start_time= tv.tv_usec; // your code here gettimeofday(&tv, NULL); stop_time = tv.tv_usec; delta_time = (stop_time - start_time + 1000000)%1000000; } delta_time就是运行你的代码运行的时间,单位为毫秒。 值得注意的是,tv_usec的最大值是1000000,即1秒,记到1000000后,又会从0开始,所以这里加上1000000再对1000000取余,解决delta_time为负数的问题。 来源: https://www.cnblogs

Python—常用模块

荒凉一梦 提交于 2020-02-16 01:23:40
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用。 常用模块 collections模块 在内置数据类型(dict、list、set、tuple)的基础上, collections模块 还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列

并发编程基础

主宰稳场 提交于 2020-02-15 13:01:32
并发编程基础 1.多线程 threading: import time import threading def worker ( n ) : print ( '{}函数执行于:{}' . format ( threading . current_thread ( ) . name , time . ctime ( ) ) ) time . sleep ( n ) print ( '{}函数结束于:{}' . format ( threading . current_thread ( ) . name , time . ctime ( ) ) ) def main ( ) : print ( '【主函数执行于:{}】' . format ( time . ctime ( ) ) ) threads = [ ] # 列表目的:同时启动 t1 = threading . Thread ( target = worker , args = ( 4 , ) ) threads . append ( t1 ) t2 = threading . Thread ( target = worker , args = ( 2 , ) ) threads . append ( t2 ) for i in threads : i . start ( ) # 启动线程 for i in threads :

装饰器

梦想与她 提交于 2020-02-13 19:56:21
装饰器 在Python这个国家里,装饰器以及后面讲到的迭代器,生成器都是十二分重要的高级函数。 如果将装饰器比作取经路上的一个大boss,那么想干掉它必须拿到三件法宝 法宝一(作用域): 法宝二(函数即对象): 在python的世界里,函数和我们之前的[1,2,3],'abc',8等一样都是对象,而且函数是最高级的对象(对象是类的实例化,可以调用相应的方法,函数是包含变量对象的对象,牛逼!)。 1 def foo(): 2 print('i am the foo') 3 bar() 4 5 def bar(): 6 print('i am the bar') 7 8 foo() 9 # def bar(): #报错 10 # print('i am the bar') 带着这个问题,我们聊一聊函数在内存的存储情况: 图1 函数对象的调用仅仅比其它对象多了一个()而已!foo,bar与a,b一样都是个变量名。 那上面的问题也就解决了,只有函数加载到内存才可以被调用。 既然函数是对象,那么自然满足下面两个条件: 1. 其可以被赋给其他变量 1 def foo(): 2 print('foo') 3 bar=foo 4 bar() 5 foo() 6 print(id(foo),id(bar)) #4321123592 4321123592 2. 其可以被定义在另外一个函数内(作为参数

day20 模块-sys,time,collection

醉酒当歌 提交于 2020-02-13 06:42:44
所有常用模块的用法: http://www.cnblogs.com/Eva-J/articles/7228075.html 前情回顾: # 常用模块 # 常用模块 —— 东西多 # 异常处理 # 什么是模块 # 面向对象 #面向对象编程 : #面向函数编程 :多用面向函数的思路写代码 View Code 正则复习: import re # ret = re.findall(r'www\.baidu\.com|www\.oldboy\.com',r'www.baidu.com') # ret = re.findall(r'www\.(baidu|oldboy)\.com',r'www.baidu.com') #findall取组内 # ret = re.findall(r'www\.(?:baidu|oldboy)\.com',r'www.baidu.com') #findall取组所有匹配的 # print(ret) #分组优先:优先显示括号内部的内容 #取消分组优先 # ret = re.search(r'www\.(?P<web_name>baidu|oldboy)\.com',r'www.baidu.com').group('web_name') #search取组内 # ret = re.search(r'www\.(?P<web_name>baidu|oldboy)\