日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

包及简单模块

發(fā)布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 包及简单模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

包是一種通過使用.模塊名來組織Python模塊名稱空間的方式

包就是一個包含有__init__.py文件的文件夾,所以我們創(chuàng)建包的目的就是為了用文件夾將文件/模塊組織起來

在Python3中,即使包下沒有__init__文件,import包仍然不會報錯,而在Python2中,包下一定要有該文件否則報錯

2.創(chuàng)建包的目的不是為了運(yùn)行而是被導(dǎo)入,包只是模塊的一種形式,包的本質(zhì)就是一種模塊

包的本質(zhì)是一個文件夾,功能越多,模塊越多,我們需要文件夾將模塊組織起來,提高程序的結(jié)構(gòu)性和可維護(hù)性

單獨(dú)導(dǎo)入包名稱時不會導(dǎo)入包中所有包含的所有子模塊

絕對導(dǎo)入,以執(zhí)行文件的路徑為起始點(diǎn)開始導(dǎo)入稱之為絕對導(dǎo)入

  優(yōu)點(diǎn):執(zhí)行文件與被導(dǎo)入的模塊都可以使用

  缺點(diǎn):所有導(dǎo)入都是以sys.path為起始點(diǎn)導(dǎo)入麻煩

相對導(dǎo)入:以.為起始代替路徑只能在一個包中使用不能用于不同目錄中

  優(yōu)點(diǎn):導(dǎo)入更加簡單

  缺點(diǎn):只能在導(dǎo)入包中的模塊才能使用

1.什么是序列化

  序列化就是將內(nèi)存中的數(shù)據(jù)類型轉(zhuǎn)成另外一種格式

  即字典----->序列化------>其他的格式--------------->存到硬盤

  硬盤--------->讀取---------->其他格式-------------->反序列化---------------->字典

2.為什么要序列化?

持久保存程序的運(yùn)行狀態(tài)

數(shù)據(jù)的跨平臺交互

2.如何序列化?

json:

  優(yōu)點(diǎn):這種格式是一種通用的格式,所有的編程語言都能識別

  缺點(diǎn):不能是被所有python類型

  json格式不能識別單引號

piclke:

  優(yōu)點(diǎn):能識別所有Python類型

  缺點(diǎn);只能被Python這門語言識別

json使用dumps()方法將數(shù)據(jù)序列化參數(shù)為序列化對象,

也可以使用dump()方法直接寫入文件并序列化,需要的參數(shù)是序列化對象及文件對象

讀取json序列化的字符,可以使用load()方法與loads()方法

其中l(wèi)oad()方法參數(shù)為文件對象,loads()參數(shù)類型字符串

pickle可以識別python類型

方法與json相同,不同點(diǎn)是讀寫都是bytes類型

時間分為三種模式:

1.時間戳

time.time()方法可以得到

2.格式化的字符串

time.strftime('%Y-%m-%d %H :%M;%s %p')

3.結(jié)構(gòu)化的時間對象:

使用time.localtime()

時間轉(zhuǎn)換

時間戳=====>struct_time=========>格式化的字符串

1 struct_time=time.localtime(time.time()) 2 res=time.strftime('%Y-%m-%d',struct_time)

?

格式化的字符串======>struct_time=======>時間戳

1 struct_time=time.strptime('2017-03-11','%Y-%m-%d') 2 res=mktime(struct_time))

1 localtime() 2 將一個時間戳轉(zhuǎn)換為當(dāng)前時區(qū)的struct_time,參數(shù)未提供時默認(rèn)為當(dāng)前時間 3 gmtime()類似于localtime()將時間戳轉(zhuǎn)換為0時區(qū) 4 mktime()將一個struct_time轉(zhuǎn)化為時間戳 5 time()返回當(dāng)前時間戳 6 strftime('%Y-%m-%d %H-%M%S')格式化時間 7 time.strptime(string[, format]) 8 把一個格式化時間字符串轉(zhuǎn)化為struct_time。實(shí)際上它和strftime()是逆操作。 9 print(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')) 10 time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, 11 tm_wday=3, tm_yday=125, tm_isdst=-1) 12 在這個函數(shù)中,format默認(rèn)為:"%a %b %d %H:%M:%S %Y"13 asctime([t]) : 把一個表示時間的元組或者struct_time表示為這種形式:'Sun Jun 20 23:21:05 1993'14 如果沒有參數(shù),將會將time.localtime()作為參數(shù)傳入。 15 print(time.asctime())#Sun Sep 11 00:43:43 2016 16 ctime([secs]) : 把一個時間戳(按秒計算的浮點(diǎn)數(shù))轉(zhuǎn)化為time.asctime()的形式。如果參數(shù)未給或者為 17 None的時候,將會默認(rèn)time.time()為參數(shù)。它的作用相當(dāng)于time.asctime(time.localtime(secs))。 18 print(time.ctime()) # Sun Sep 11 00:46:38 2016 19 print(time.ctime(time.time())) # Sun Sep 11 00:46:38 2016 20 import datetime 萬惡的十五字 1 import random 2 3 print(random.random())#(0,1)----float 大于0且小于1之間的小數(shù) 4 print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之間的整數(shù) 5 print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之間的整數(shù) 6 print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5] 7 print(random.sample([1,'23',[4,5]],2))#列表元素任意2個組合 8 print(random.uniform(1,3))#大于1小于3的小數(shù),如1.927109612082716 9 item=[1,3,5,7,9] 10 random.shuffle(item) #打亂item的順序,相當(dāng)于"洗牌" 11 print(item) 12 復(fù)制代碼 13 import random 14 def make_code(n): 15 res='' 16 for i in range(n): 17 s1=chr(random.randint(65,90)) 18 s2=str(random.randint(0,9)) 19 res+=random.choice([s1,s2]) 20 return res 21 22 print(make_code(9)) random 1 import random 2 3 print(random.random())#(0,1)----float 大于0且小于1之間的小數(shù) 4 5 print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之間的整數(shù) 6 7 print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之間的整數(shù) 8 9 print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5] 10 print(random.sample([1,'23',[4,5]],2))#列表元素任意2個組合 11 12 print(random.uniform(1,3))#大于1小于3的小數(shù),如1.927109612082716 13 14 item=[1,3,5,7,9] 15 random.shuffle(item) #打亂item的順序,相當(dāng)于"洗牌" 16 print(item) 17 復(fù)制代碼 18 import random 19 def make_code(n): 20 res='' 21 for i in range(n): 22 s1=chr(random.randint(65,90)) 23 s2=str(random.randint(0,9)) 24 res+=random.choice([s1,s2]) 25 return res 26 27 print(make_code(9)) 這里什么都沒有

?

轉(zhuǎn)載于:https://www.cnblogs.com/suncunxu/p/10071248.html

總結(jié)

以上是生活随笔為你收集整理的包及简单模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。