day15-python常用內置模塊的使用
在日常的開發工作中,我們要寫很多的python代碼,如果都寫在一個文件中,會導致代碼特別難維護,為了拓展代碼的可維護性,我們把函寫在不同的文件裏,這樣每個文件包含的文件就比較少,邏輯更加清楚。在python中,我們創建的文件基本都是以.py結尾,那一個.py的文件就稱之為模塊。
為了方便管理方便管理模塊,python中又引了包(Package)這個概念。每個包下面都有一個__init__.py文件,這個文件是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空文件,也可以有Python代碼,因為__init__.py本身就是一個模塊,舉個例子:test目錄下面有__init__.py, aaa.py,bbb.py三個文件,如下圖所示:
[root@localhost ~]# tree test
test
├── aaa.py
├── bbb.py
└── __init__.py
0 directories, 3 files
import導入
使用import語句導入模塊,import語句語法如下:
import module
關鍵字 模塊名
使用方法例如:
import math #入導math模塊
math.floor() #調用math模塊中的floor()函數
如果要同時導入多個模塊,只需要在模塊名之前用逗號進行分隔:
import module1,module2,module3.......
同時導入多個模塊的方法,對於初學者來說可讀性和可理解性不如第一種好。所以想要導入多個模塊時,還是比較推薦用第一種方式,把每一個模塊都單獨進行一次導入,可能會感覺操作起來麻煩一些,但便於理解。
import語句導入模塊順序
在編寫代碼過程中,我們可能需要多種多樣的模塊,需要註意的是最好把導入模塊放在代碼的開頭。
為什麽要把import導入模塊放在程序開頭使用呢?
解釋器在執行語句時,遵循作用域原則。因為這和作用域有關系,如果在頂層導入模塊,此時它的作用域是全局的;如果在函數內部導入了模塊,那它的作用域只是局部的,不能被其它函數使用。如果其它函數也要用到這個模塊,還需要再次導入比較麻煩。
在用import語句導入模塊時最好按照這樣的順序:
1、python 標準庫模塊
2、python 第三方模塊
3、自定義模塊
這只是一些高級程序員習慣用的操作方法,在www.iplaypy.com玩蛇網python學習過程中我們盡量去學習那些大家推薦的好用的方法。
from-import語句作用
python from import語句也是導入模塊的一種方法,更確切的說是導入指定的模塊內的指定函數方法。
from-import語句語法
from module import name
關鍵字 模塊名 關鍵字 方法名
例如入導函數math模塊中的floor函數方法:
from math import floor
python from使用方法例如:
from math import floor #導入math模塊中的floor函數方法
floor() #調用floor()函數方法
datetime的使用
如下
# -*- coding: utf-8 -*- #datetime類 #datetime是date與time的結合體,包括date與time的所有信息。 #它的構造函數如下: #datetime. datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ) #各參數的含義與date、time的構造函數中的一樣,要註意參數值的範圍。 # 1. datetime類定義的類屬性與方法: #datetime.min、datetime.max:datetime所能表示的最小值與最大值; #print: datetime.max: 9999-12-31 23:59:59.999999 #print: datetime.min: 0001-01-01 00:00:00 from datetime import * import time print ‘datetime.max:‘ , datetime.max print ‘datetime.min:‘ , datetime.min #datetime.resolution:datetime最小單位; #print: datetime.resolution: 0:00:00.000001 print ‘datetime.resolution:‘ , datetime.resolution #datetime.today():返回一個表示當前本地時間的datetime對象; #print: today(): 2012-09-12 19:37:50.721000 print ‘today():‘ , datetime.today() #datetime.now([tz]):返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間; #print: now(): 2012-09-12 19:37:50.738000 print ‘now():‘ , datetime.now() #datetime.utcnow():返回一個當前utc時間的datetime對象; #print: 2012-09-12 11:37:50.739000 print ‘utcnow():‘ , datetime.utcnow() #datetime.fromtimestamp(timestamp[, tz]):根據時間戮創建一個datetime對象,參數tz指定時區信息; #print: fromtimestamp(tmstmp): 2012-09-12 19:37:50.741000 print ‘fromtimestamp(tmstmp):‘ , datetime.fromtimestamp(time.time()) #datetime.utcfromtimestamp(timestamp):根據時間戮創建一個datetime對象; #print: utcfromtimestamp(tmstmp): 2012-09-12 11:37:50.742000 print ‘utcfromtimestamp(tmstmp):‘ , datetime.utcfromtimestamp(time.time()) #datetime.combine(date, time):根據date和time,創建一個datetime對象; #print: datetime.combine(date,time): 2012-09-12 19:46:05 d = date(2012,9,12) from datetime import * t = time(19,46,5) print ‘datetime.combine(date,time): ‘,datetime.combine(d,t) #datetime.strptime(date_string, format):將格式字符串轉換為datetime對象; #print: 2007-03-04 21:08:12 print datetime.strptime("2007-03-04 21:08:12", "%Y-%m-%d %H:%M:%S") #2. datetime類提供的實例方法與屬性 dt = datetime.strptime("2012-09-12 21:08:12", "%Y-%m-%d %H:%M:%S") #print: 2012 9 12 21 8 12 0 None print dt.year,dt.month,dt.day,dt.hour,dt.minute,dt.second,dt.microsecond,dt.tzinfo print dt.date() print dt.time() print dt.replace(year = 2013) print dt.timetuple() print dt.utctimetuple() print dt.toordinal() print dt.weekday() print dt.isocalendar() #print dt.isoformat([sep]) #datetime. ctime ():返回一個日期時間的C格式字符串,等效於time.ctime(time.mktime(dt.timetuple())); #3. 格式字符串 # datetime. strftime (format) # %a 星期的簡寫。如 星期三為Web # %A 星期的全寫。如 星期三為Wednesday # %b 月份的簡寫。如4月份為Apr # %B月份的全寫。如4月份為April # %c: 日期時間的字符串表示。(如: 04/07/10 10:43:39) # %d: 日在這個月中的天數(是這個月的第幾天) # %f: 微秒(範圍[0,999999]) # %H: 小時(24小時制,[0, 23]) # %I: 小時(12小時制,[0, 11]) # %j: 日在年中的天數 [001,366](是當年的第幾天) # %m: 月份([01,12]) # %M: 分鐘([00,59]) # %p: AM或者PM # %S: 秒(範圍為[00,61],為什麽不是[00, 59],參考python手冊~_~) # %U: 周在當年的周數當年的第幾周),星期天作為周的第一天 # %w: 今天在這周的天數,範圍為[0, 6],6表示星期天 # %W: 周在當年的周數(是當年的第幾周),星期一作為周的第一天 # %x: 日期字符串(如:04/07/10) # %X: 時間字符串(如:10:43:39) # %y: 2個數字表示的年份 # %Y: 4個數字表示的年份 # %z: 與utc時間的間隔 (如果是本地時間,返回空字符串) # %Z: 時區名稱(如果是本地時間,返回空字符串) # %%: %% => % dt = datetime.now() #print: (%Y-%m-%d %H:%M:%S %f): 2012-09-12 23:04:27 145000 print ‘(%Y-%m-%d %H:%M:%S %f): ‘, dt.strftime(‘%Y-%m-%d %H:%M:%S %f‘) #print: (%Y-%m-%d %H:%M:%S %p): 12-09-12 11:04:27 PM print ‘(%Y-%m-%d %H:%M:%S %p): ‘, dt.strftime(‘%y-%m-%d %I:%M:%S %p‘) #print: %a: Wed print ‘%%a: %s ‘ % dt.strftime(‘%a‘) #print: %A: Wednesday print ‘%%A: %s ‘ % dt.strftime(‘%A‘) #print: %b: Sep print ‘%%b: %s ‘ % dt.strftime(‘%b‘) #print: %B: September print ‘%%B: %s ‘ % dt.strftime(‘%B‘) #print: 日期時間%c: 09/12/12 23:04:27 print ‘日期時間%%c: %s ‘ % dt.strftime(‘%c‘) #print: 日期%x:09/12/12 print ‘日期%%x:%s ‘ % dt.strftime(‘%x‘) #print: 時間%X:23:04:27 print ‘時間%%X:%s ‘ % dt.strftime(‘%X‘) #print: 今天是這周的第3天 print ‘今天是這周的第%s天 ‘ % dt.strftime(‘%w‘) #print: 今天是今年的第256天 print ‘今天是今年的第%s天 ‘ % dt.strftime(‘%j‘) #print: 今周是今年的第37周 print ‘今周是今年的第%s周 ‘ % dt.strftime(‘%U‘)
day15-python常用內置模塊的使用