# Python中的内部模块 # 函数学习的意义:抽取重复代码 # 模块:不用重复写,模块及py文件,提高了代码的可维护性,其次,编写代码不必从零开始,当一个模块编写完毕,不必再重复编写 # import time#向外部引用一个文件 #模块包含三种:1.python标准库;2.第三方模块;3.应用程序自定义模块 #另外,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中, # 因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。 #新文件创建时,package和file的区别在于,package多一个init空文件 #import 1.执行对应文件;2.引入变量名 # from cal import * # '*'在python中代表一切的意思 # 这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。大多数情况, ##################################################################################################################### # Python程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义。 # print(add(3,5)) # 8 #import引入后是先全部调用文件,在引入变量名 # import sys #import会去找python内置的看模块函数 # print(sys.path) # ['F:\\Python\\PythonLeaning\\每日学习打卡', # 'F:\\Python\\PythonLeaning', # 'F:\\Python\\PythonLeaning\\venv\\Scripts\\python36.zip', # 'F:\\Python\\PythonLeaning\\venv\\DLLs', # 'F:\\Python\\PythonLeaning\\venv\\lib', # 'F:\\Python\\PythonLeaning\\venv\\Scripts', # 'C:\\Users\\g\\AppData\\Local\\Programs\\Python\\Python36\\Lib', # 'C:\\Users\\g\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', # 'F:\\Python\\PythonLeaning\\venv', # 'F:\\Python\\PythonLeaning\\venv\\lib\\site-packages', # 'C:\\Program Files\\JetBrains\\PyCharm 2017.3.3\\helpers\\pycharm_matplotlib_backend'] # from 测试专用文件夹 import cal # print(cal.add(1,5)) ##################################################################################################################### #bin文件是程序的入口 #包的概念:Package用于组织模块 # 如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。 # 举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。 # 现在,假设我们的abc和xyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名: # 引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,view.py模块的名字就变成了hello_django.app01.views, # 类似的,manage.py的模块名则是hello_django.manage。 # 请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹), # 而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。 #_name_输出的为调用路径,在执行文件打印为main,在调用文件打印为当前文件的文件路径 #_name_的作用 if _name_=="_main_":1.可以用来调试调用函数;2.可以用来屏蔽其他调用文件 ################################################################################################################## # Python标准库模块 # 1.时间模块 # 2.OS模块:和操作系统有关的模块 # 3.Sys模块:和解释器有关 # 4.json和pickle模块(json类似于eval()方法的升级版) # 5.logging模块:日志模块,简化操作 # 6.正则模块(re模块)正则表达式,针对字符串做匹配 #################################################################################################################### # 1.Time模块 #时间戳:做计算用 import time # print(time.time()) #从1970年00:00开始至今算一共经历了多少秒 # 1519449703.6721468 #结构化时间和字符化时间 # print(time.localtime()) #时间对象.struct_time结构化时间吗,可以操作具体某一个值 # t = time.localtime() # print(t.tm_year) # print('今天是周%s'%(t.tm_wday+1)) #————————————————————————————————————————————————————————# # 2018 # 今天是周6 #————————————————————————————————————————————————————————# #将时间戳转换为结构化时间 # print(time.localtime(1204876151)) # time.struct_time(tm_year=2008, tm_mon=3, tm_mday=7, tm_hour=15, tm_min=49, tm_sec=11, tm_wday=4, tm_yday=67, tm_isdst=0) #————————————————————————————————————————————————————————# #将结构化时间转换为时间戳 # print(time.mktime(time.localtime())) # 1519458709.0 #————————————————————————————————————————————————————————# #将结构化时间转换为字符串时间 # print(time.strftime("%Y-%m-%d %X",time.localtime())) 自定义时间 #将字符串时间转换为结构化时间 # print(time.strptime('2018-02-24 15:57:12',"%Y-%m-%d %X")) #————————————————————————————————————————————————————————# # print(time.asctime()) # Sat Feb 24 16:08:15 2018 # print(time.ctime()) # Sat Feb 24 16:08:59 2018 #格式固定 # 5 asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。 # 如果没有参数,将会将time.localtime()作为参数传入。 # print(time.asctime()) # Sun Sep 11 00:43:43 2016 # ----------------------------------------------------------# # 6 ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为 # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。 # print(time.ctime()) # Sun Sep 11 00:46:38 2016 # print(time.ctime(time.time())) # Sun Sep 11 00:46:38 2016 # import datetime # print(datetime.datetime.now()) # 2018-02-24 16:13:23.275146 #___________________________________________________________________________________________________________________# #随机模块 random(类似于验证码) # import random # ret = random.random() # print(ret) #打印0-1的随机浮点数 # 0.2510528152532443