1. 程式人生 > >day15-python常用內置模塊的使用

day15-python常用內置模塊的使用

combine 創建 如果 clas 類屬性 最大 實例 個數 -i

在日常的開發工作中,我們要寫很多的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常用內置模塊的使用