模块
python的模块类似Java的jar包,将部分功能打包放在一个整体里面,方便降低程序的耦合性,增加程序的可复用性。具体使用import和from来实现。
e.g.
# hello.py
def print_func( par ):
print ("Hello : ", par)
return
# test.py 引入 support 模块:
import hello
support.print_func("Runoob")
# Hello : Runoob
if __name__ = '__main__'
python不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。
e.g.
但是我们是不希望const.py里面的main函数运行的,因为const.py提供的main函数只是为了测试常量定义。在const.py中添加# const.py PI = 3.14 def main(): print("PI: ", PI) main() # PI: 3.14 # area.py 计算圆的面积 from const import PI def calc_round_area(radius): return PI * (radius ** 2) def main(): print("area: ", calc_round_area(2)) main() # output # PI:3.14 # area: 12.56
if __name__ = "__main__"
:
运行area.py,输出:# const.py PI = 3.14 def main(): print("PI: ", PI) if __name__ == "__main__": main() # PI: 3.14
area: 12.56
因为__name__
是内置变量,可以表示当前模块的名字。
由此我们可知:如果一个 .py 文件(模块)被直接运行时,其__name__值为__main__,即模块名为__main__。import const print(__name__) # __main__ print(const.__name__) # const
所以,if __name__ == '__main__'
的意思是:当 .py 文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;当 .py 文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。
datetime模块
datetime 是 Python 中处理日期的标准模块,它提供了 4 种对日期和时间进行处理的类:datetime、date、time 和 timedelta。
- datetime类
- datetime.now(tz=None) 获取当前的日期时间,输出顺序为:年、月、日、时、分、秒、微秒。
- datetime.timestamp() 获取以 1970年1月1日为起点记录的秒数。
- datetime.fromtimestamp(tz=None) 使用 unixtimestamp 创建一个 datetime。
import datetime dt = datetime.datetime(year=2020, month=6, day=24, hour=11, minute=22, second=59) print(dt) # 2020-06-24 11:22:59 print(dt.timestamp()) # 1592968979.0 dt = datetime.datetime.fromtimestamp(1592968979.0) print(dt) # 2020-06-24 11:22:59 print(type(dt)) # <class 'datetime.datetime'> dt = datetime.datetime.now() print(dt) # 2020-08-07 23:00:30.570155 print(type(dt)) # <class 'datetime.datetime'>
- datetime.strftime(fmt) 格式化 datetime 对象。
e.g.
练习:import datetime dt = datetime.datetime(year=2020, month=6, day=25, hour=11, minute=51, second=49) s = dt.strftime("'%Y/%m/%d %H:%M:%S") print(s) # '2020/06/25 11:51:49 s = dt.strftime('%d %B, %Y, %A') print(s) # 25 June, 2020, Thursday
# 输入 d1 = datetime.date('2010-09-28') # 输出 'Sep-28,2010'
import datetime d1 = datetime.date(2010,9,28) s = d1.strftime("'%b-%d,%Y'") print(s)
- datetime.date() Return the date part.
- datetime.time() Return the time part, with tzinfo None.
- datetime.year 年
- datetime.month 月
- datetime.day 日
- datetime.hour 小时
- datetime.minute 分钟
- datetime.second 秒
- datetime.isoweekday 星期几
- parser.parse(timestr, parserinfo=None, **kwargs)
在处理含有字符串日期的数据集或表格时,我们需要一种自动解析字符串的方法,无论它是什么格式的,都可以将其转化为 datetime 对象。这时,就要使用到 dateutil 中的 parser 模块。
e.g.from dateutil import parser s = '2020-06-25' dt = parser.parse(s) print(dt) # 2020-06-25 00:00:00 print(type(dt)) # <class 'datetime.datetime'> s = 'March 31, 2010, 10:51pm' dt = parser.parse(s) print(dt) # 2010-03-31 22:51:00 print(type(dt)) # <class 'datetime.datetime'>