1、模块
'''
概述:
目前代码比较少,写在一个文件中还提现不出什么缺点,但是随着代码量越来越多,代码就越来越难以维护,
为了解决难以维护的问题,我们把很多相似功能的函数分组,分别放到不同的文件中取,这样每个文件所包含的内容相对较少,
而且对于每一个文件的大致功能可用文件名来提现,很多编程语言都是这么来组织代码结构,一个。py文件就是一个模块。
优点:
1、提高代码的可维护性
2、提高了代码的复用度,当一个模块完毕,可以被多个地方引用;
3、可以应用其他的模块(内置模块、第三方模块和自定义模块
4、避免函数名和变量名的冲突;
5、
'''
#引入模块
import sys
import time
import datetime
print(sys.argv)
#获取命令行参数的裂变
for i in sys.argv:
print(i)
#name = sys.argv[1]
#age = sys.argv[2]
#hoby = sys.argv[3]
#print(name,age, hoby)
#自动查找所需模块的路径列表
print(sys.path)
#一个.py就是一个模块
#引入模块
#import 语句
#格式:import module1[,module2][,module[n]]
#引入自定义模块,不用加.py后缀
import test
#注意:一个模块只会被引入一次,不管你执行了多少次import,防止模块被多次引入
#使用模块中的内容
#格式:模块名.函数名/变量名
test.sayGood()
#test.sayNice()
#
------------------------------------------
2、time模块
import time
import _datetime
'''
UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中国来说是utc-8
DST,夏令时
时间的表示形式
1、时间戳:以整型或浮点型表示时间的一个以秒为单位的时间间隔,这个时间间隔的基础值是从1970年1月1日零点开始算起
2、元组,一种Python的数据结构表示,这个元组有9个整型内容,year month day hours minutes seconds weekdany Julia dan flag (1或 -1 或0)
3、格式化字符串
2017-07-28 14:49:40
'''
#返回当前时间的时间戳,浮点数形式,不需要参数
c = time.time()
print(c)
#将时间戳作为UTC时间元组
t = time.gmtime(c)
print(t)
#将时间戳作为本地时间元组
b = time.localtime(c)
print(b)
#将本地时间元组转成时间戳
m = time.mktime(b)
print(m)
#将时间元组转成字符串
s = time.asctime(b)
print(s)
#将时间戳转为字符串,time.localtime(time,time())
p = time.ctime(c)
print(p)
#将时间元组转化成给定格式的字符串,参数2为时间元组,如果没有参数2,默认转成当前时间
q = time.strftime("%Y-%m-%d %H:%M:%S",b)
print(q)
print(type(q))
w = time.strptime(q,"%Y-%m-%d %H:%M:%S")
print(w)
#延迟一个时间,整型或者浮点型
#time.sleep(4)
#返回当前程序的cup执行时间
#Unix系统始终返回全部的运行时间
#windows从第二次开始,都是以第一个调用此函数的开始时间戳作为基数
'''
datetime:
比time高级了不少,可以理解为datetime基于time进行了封装,提供了更为实用的函数,datetime模块的接口更直观,更容易调用
模块中的类:
datetime :同时有时间和日期
timedelta:主要用于计算时间的跨度
tzinfo :时区相关
time :只关注时间
date :只关注日期
'''
print("*************")
import _datetime
#获取当前时间
d1 = _datetime.datetime.now()
print(d1)
print(type(d1))
#获取指定时间
d2 = _datetime.datetime(1999,10,1,10,28,25,123456)
print(d2)
#将时间转换为字符串
d3 = d1.strftime("%Y-%m-%d %X")
print(d3)
print(type(d3))
#将格式化字符串转为datetime对象
#注意,转换的格式要与字符串一致
d4 = _datetime.datetime.strptime(d3,"%Y-%m-%d %X")
print(d4)
print("******")
d5 = _datetime.datetime(1999,10,1,10,28,25,123456)
d6 = _datetime.datetime.now()
d7 = d6 - d5
print(d7)
print(type(d7))
#间隔的天数
print(d7.days)
#间隔天数除外的秒数
print(d7.seconds)
'''
日历模块
'''
import calendar
#使用
#返回指定某年某月的日历
print(calendar.month(2020, 2))
#返回指定年的日历
print(calendar.calendar(2020))
#闰年返回True,否则返回False
print(calendar.isleap(2019))
#返回某个月的weekday的第一天和这个月所有的天数
print(calendar.monthrange(2020, 2))
#返回某个月以每一周为元素的列表
print(calendar.monthcalendar(2017,7))
----------------------------------------------
3、自定义模块(test)
def sayGood():
print("aa")
def sayNice():
print("bb")
def sayHandsome():
print("cc")
#每一个模块都有一个__name__属性,当其值等于"__main__"时,表明该模块自身在执行,否则被引入其他文件
#当前文件如果为程序的入口文件,则__name__属性的值为__main__
if __name__ == "__main__":
print("******")
sayNice()
sayGood()
sayHandsome()
------------------------------
4、模块引入
'''
#一个.py就是一个模块
#引入模块
#import 语句
#格式:import module1[,module2][,module[n]]
#引入自定义模块,不用加.py后缀
import test
#注意:一个模块只会被引入一次,不管你执行了多少次import,防止模块被多次引入
#使用模块中的内容
#格式:模块名.函数名/变量名
test.sayGood()
#test.sayNice()
#
'''
#from ... import语句
#作用:从模块中导入一个指定的部分到当前命名空间
#格式:from module import name1[,name2][. ...namen]
'''
from test import sayGood, sayNice
sayGood()
sayNice()
'''
#from ... import * 语句
#作用:把一个模块中所有的内容全部导入当前命名空间
from test import *
sayGood()
----------------------------------
5、__name__属性
'''
__name__属性:
模块就是一个可执行.py文件,一个模块被另一个程序引入,我们不想让模块中的某些代码执行,可以用__name__属性来使程序仅调用模块中的一部分
'''