亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python--模塊一

silencezwm / 3235人閱讀

摘要:常用模塊模塊在內(nèi)置數(shù)據(jù)類型的基礎(chǔ)上,模塊還提供了幾個(gè)額外的數(shù)據(jù)類型和等。有如下值集合,將所有大于的值保存至字典的第一個(gè)中,將小于的值保存至第二個(gè)的值中。如果希望不存在時(shí),返回一個(gè)默認(rèn)值,就可以用模塊常用方法線程推遲指定的時(shí)間運(yùn)行。

常用模塊 collections模塊

在內(nèi)置數(shù)據(jù)類型(dict、list、set、tuple)的基礎(chǔ)上,collections模塊還提供了幾個(gè)額外的數(shù)據(jù)類型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

1.namedtuple: 生成可以使用名字來訪問元素內(nèi)容的tuple
2.deque: 雙端隊(duì)列,可以快速的從另外一側(cè)追加和推出對(duì)象
3.Counter: 計(jì)數(shù)器,主要用來計(jì)數(shù)
4.OrderedDict: 有序字典
5.defaultdict: 帶有默認(rèn)值的字典

1.namedtuple

- tuple可以表示不變集合,例如,一個(gè)點(diǎn)的二維坐標(biāo)就可以表示成:
p = (1,2)
- 看不出來1,2用來表示坐標(biāo),用namedtuple實(shí)現(xiàn)方法
from collections import namedtuple
Point = namedtuple("Point",["x","y"])
p = Point(1,2)
print(p.x)
print(p.y)
- 定義方式:namedtuple("名稱", [屬性list])

2.deque

使用list存儲(chǔ)數(shù)據(jù)時(shí),按索引訪問元素很快,但是插入和刪除元素就很慢了,因?yàn)閘ist是線性存儲(chǔ),數(shù)據(jù)量大的時(shí)候,插入和刪除效率很低。deque是為了高效實(shí)現(xiàn)插入和刪除操作的雙向列表,適合用于隊(duì)列和棧:
from collections import deque
q = deque(["a","b","c"])
q.append("x")
q.appendleft("y")
print(q)
#deque(["y", "a", "b", "c", "x"])
deque除了實(shí)現(xiàn)list的append()和pop()外,還支持appendleft()和popleft(),這樣就可以非常高效地往頭部添加或刪除元素。

3.defaultdict

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],將所有大于 66 的值保存至字典的第一個(gè)key中,將小于 66 的值保存至第二個(gè)key的值中。即: {"k1": 大于66 , "k2": 小于66}
dic = {"k1":[],"k2":[]}
l1 = [11,22,33,44,55,66,77,88,99,90]
for number in l1:
    if number > 66:
        dic["k1"].append(number)
    elif number < 66:
        dic["k2"].append(number)
print(dic)
#普通字典需要先定義好一個(gè)字典,字典必須有k1,k2的key值
使用dict時(shí),如果引用的Key不存在,就會(huì)拋出KeyError。如果希望key不存在時(shí),返回一個(gè)默認(rèn)值,就可以用defaultdict:
from collections import defaultdict
l1 = [11,22,33,44,55,66,77,88,99,90]
dic = defaultdict(list)
for number in l1:
    if number > 66:
        dic["k1"].append(number)
    elif number < 66:
        dic["k2"].append(number)
    elif number == 66:
        dic["k3"].append(number)
print(dic)
time模塊

1.常用方法:

1.time.sleep(secs)
(線程)推遲指定的時(shí)間運(yùn)行。單位為秒
2.time.time()
獲取當(dāng)前時(shí)間戳

2.表示時(shí)間的三種方式:

1.時(shí)間戳(timestamp) :通常來說,時(shí)間戳表示的是從1970年1月1日00:00:00開始按秒計(jì)算的偏移量。我們運(yùn)行“type(time.time())”,返回的是float類型。
2.格式化的時(shí)間字符串(Format String): ‘1999-12-06’
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡(jiǎn)化星期名稱
%A 本地完整星期名稱
%b 本地簡(jiǎn)化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身

3.struct_time) :struct_time元組共有9個(gè)元素共九個(gè)元素:(年,月,日,時(shí),分,秒,一年中第幾周,一年中第幾天等)

import time
#時(shí)間戳
print(time.time())
#字符串時(shí)間
print(time.strftime("%Y-%m-%d %H:%M:%S"))
#時(shí)間元組:localtime將一個(gè)時(shí)間戳轉(zhuǎn)換為當(dāng)前時(shí)區(qū)的struct_time
print(time.localtime())
#打印結(jié)果:
1530693574.325
2018-07-04 16:39:34
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=4, tm_hour=16, tm_min=39, tm_sec=34, tm_wday=2, tm_yday=185, tm_isdst=0)

總結(jié):時(shí)間戳是計(jì)算機(jī)能夠識(shí)別的時(shí)間;時(shí)間字符串是人能夠看懂的時(shí)間;元組則是用來操作時(shí)間的
時(shí)間格式的轉(zhuǎn)化:

#1.時(shí)間戳轉(zhuǎn)結(jié)構(gòu)化時(shí)間
import time
print(time.gmtime()) #UTC時(shí)間,與英國(guó)倫敦當(dāng)?shù)貢r(shí)間一致
print(time.localtime()) #當(dāng)?shù)貢r(shí)間。例如我們現(xiàn)在在北京執(zhí)行這個(gè)方法:與UTC時(shí)間相差8小時(shí),UTC時(shí)間+8小時(shí) = 北京時(shí)間

#2.結(jié)構(gòu)化時(shí)間轉(zhuǎn)時(shí)間戳
#獲取本地時(shí)間的結(jié)構(gòu)化時(shí)間
time_tuple = time.localtime()
print(time_tuple)
#將結(jié)構(gòu)化時(shí)間轉(zhuǎn)化為時(shí)間戳
print(time.mktime(time_tuple))

#3.結(jié)構(gòu)化時(shí)間轉(zhuǎn)字符串時(shí)間
#time.strftime("格式定義","結(jié)構(gòu)化時(shí)間")  結(jié)構(gòu)化時(shí)間參數(shù)若不傳,則現(xiàn)實(shí)當(dāng)前時(shí)間
print(time.strftime("%y-%m-%d %H:%M:%S"))
print(time.strftime("%Y-%m-%d",time.localtime()))

#4.字符串時(shí)間轉(zhuǎn)結(jié)構(gòu)化時(shí)間
#time.strptime(時(shí)間字符串,字符串對(duì)應(yīng)格式)
print(time.strptime("2018-07-04","%Y-%m-%d"))
#time.struct_time(tm_year=2018, tm_mon=7, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=185, tm_isdst=-1)

計(jì)算時(shí)間差:

import time
true_time=time.mktime(time.strptime("2017-09-11 08:30:00","%Y-%m-%d %H:%M:%S"))
time_now=time.mktime(time.strptime("2017-09-12 11:00:00","%Y-%m-%d %H:%M:%S"))
dif_time=time_now-true_time
struct_time=time.gmtime(dif_time)
print("過去了%d年%d月%d天%d小時(shí)%d分鐘%d秒"%(struct_time.tm_year-1970,struct_time.tm_mon-1,
                                       struct_time.tm_mday-1,struct_time.tm_hour,
                                       struct_time.tm_min,struct_time.tm_sec))
random模塊

1.隨機(jī)小數(shù)

import random
print(random.random()) #大于0且小于一的小數(shù)
print(random.uniform(1,3))  #大于1且小于3的小數(shù)

2.隨機(jī)整數(shù)

import random
print(random.randint(1,3)) #>=1且<=3的隨機(jī)整數(shù)
print(random.randrange(1,10,2)) #大于等于1且小于10之間的奇數(shù)

3.隨機(jī)返回

import random
print(random.choice([1,2,3,4,5,[6,7]])) #在列表中隨機(jī)選擇一個(gè)元素返回
print(random.sample([1,2,3,4,5,6],3)) #列表內(nèi)任意3個(gè)組合

4.打亂列表順序

import random
l1 = [1,2,3,4,5]
print(random.shuffle(l1))
print(l1)

生成隨機(jī)驗(yàn)證碼:

def random_number(numer,alpath=True):
    """
    :param numer: 生成幾位
    :param alpath: 默認(rèn)包括數(shù)字
    :return:
    """
    code = ""
    for i in range(numer):
        choice = random.randint(0,9)
        if alpath:
            number2 = chr(random.randint(65,90)) #大寫
            number3 = chr(random.randint(97,122)) #小寫
            choice = random.choice([choice,number2,number3])
            print(choice)
        code += str(choice)
    return code
os模塊

os模塊是一個(gè)于操作系統(tǒng)交互的一個(gè)接口

import os
os.getcwd()           #獲取當(dāng)前的工作目錄當(dāng)前的工作目錄
os.chdir("E:pythonday08") #改變腳本工作目錄,相當(dāng)于shell下的cd
os.curdir             #返回當(dāng)前目錄  .
os.pardir             #返回到父集目錄 ..
os.makedirs("linuxgo") #遞歸創(chuàng)建目錄,相當(dāng)于shell的mkdir -p
os.removedirs("linuxgo") #若目錄為空則刪除,并遞歸到上一層目錄,如果上一次目錄也為空,也刪除。依次類推
os.mkdir("python")  #生成單級(jí)目錄,相當(dāng)于shell中的mkdir path
os.rmdir("python")   #刪除單級(jí)空目錄,不為空則無(wú)法刪除
print(os.listdir("E:pythonday08")) #列出指定目錄下的所有文件和目錄,包括隱藏文件,以列表的方式打印
os.remove("1.py") #刪除某個(gè)文件
os.rename("day08.zip","day8.zip")  #重命名目錄/文件
os.stat("README") #獲取文件/目錄信息,以一個(gè)元組的方式返回,可以按照索引取值
os.sep #在pycharm中打印的結(jié)果是:/,在windows解釋器是://,linux下為:/
print(os.name) #輸出當(dāng)前使用平臺(tái),win=“nt”,linux=“posix”
os.system("bash commond") #運(yùn)行shell命令
os.popen("bash commond").read() #運(yùn)行shell命令,獲取執(zhí)行結(jié)果
print(os.environ) #獲取系統(tǒng)變量
os.path.abspath(path) #返回path規(guī)范化的絕對(duì)路徑 os.path.split(path) 將path分割成目錄和文件名二元組返回
os.path.dirname(path) #返回path的目錄。其實(shí)就是os.path.split(path)的第一個(gè)元素 os.path.basename(path) 返回path最后的文件名。如何path以/或結(jié)尾,那么就會(huì)返回空值。即os.path.split(path)的第二個(gè)元素
print(os.path.exists("E:python")) #判斷目錄/文件是否存在,存在返回True,反之false
print(os.path.isabs("E:python")) #如果path是絕對(duì)路徑返回true,反之false
print(os.path.isfile("Calculator.py")) #判斷文件是否存在,存在true,反之false
print(os.path.isdir("python"))  #判斷目錄是否存在,存在true,反之false
os.path.getatime("E:pythonday08")  #返回path所指向的文件或者目錄的最后訪問時(shí)間戳
os.path.getmtime("E:pythonday08")  #返回path所指向的文件或者目錄的最后修改時(shí)間戳
os.path.getsize("E:pythonday08") #返回path的大小
sys模塊

sys模塊是一個(gè)與python解釋器交互的模塊

import sys
print(sys.argv) #命令行參數(shù)list,返回的是程序本身的路徑
sys.exit(n)   #退出程序,正常退出是exit(0),錯(cuò)誤退出是exit(1)
print(sys.version) #返回python解釋器的版本信息
print(sys.path) #返回模塊的搜索路徑
print(sys.platform) #返回操作平臺(tái)名稱
re模塊

正則:
1.字符組 : [字符組]

- 在同一個(gè)位置可能出現(xiàn)的各種字符組成了一個(gè)字符組,在正則表達(dá)式中用[]表示
- 字符分為很多類,比如數(shù)字、字母、標(biāo)點(diǎn)等等。
- 假如你現(xiàn)在要求一個(gè)位置"只能出現(xiàn)一個(gè)數(shù)字",那么這個(gè)位置上的字符只能是0、1、2...9這10個(gè)數(shù)之一。

2.字符:

3.量詞:

注意:前面的*,+,?等都是貪婪匹配,也就是盡可能匹配,后面加?號(hào)使其變成惰性匹配

4.字符集:

5.分組 ()與 或 |[^]
身份證號(hào)碼是一個(gè)長(zhǎng)度為15或18個(gè)字符的字符串,如果是15位則全部

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41932.html

相關(guān)文章

  • python基礎(chǔ)教程:Python模塊(module)

    摘要:如果你這個(gè)腳本想要使用其它腳本里面的變量函數(shù)和類也是可以的,在你這個(gè)腳本里面用來導(dǎo)入要引用的腳本,而那個(gè)被引用的腳本就稱作模塊。 在此之前,我們運(yùn)行一些簡(jiǎn)短的Python代碼,都是通過Python解釋器(python或ipython)進(jìn)行的,如果我們退出解釋器再重新運(yùn)行解釋器后,上次敲進(jìn)去的變量、函數(shù)等都不見了,沒有保存下來。為了保存我們?cè)?jīng)寫過的代碼,就是要寫成.py文件,稱為腳本。...

    whinc 評(píng)論0 收藏0
  • Python的高級(jí)特性,模塊和IO操作

    摘要:所以如果像上述這樣引入模塊的時(shí)候,調(diào)用函數(shù)必須加上模塊名通常情況下鼓勵(lì)每個(gè)語(yǔ)句只導(dǎo)入一個(gè)包方便理解和閱讀代碼。 今天我們學(xué)習(xí)Python的高級(jí)特性、模塊和IO操作,通過學(xué)習(xí)這些,我們可以更快的了解Python,使用Python。 高級(jí)特性中會(huì)講述列表生成式、生成器、和一些高級(jí)函數(shù),學(xué)習(xí)這些方便我們快速的生成列表,節(jié)省我們使用Python的時(shí)間,更快的使用Python達(dá)成我們的目的。 模...

    WelliJhon 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫(kù)---0、簡(jiǎn)介

    摘要:下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)標(biāo)準(zhǔn)庫(kù)語(yǔ)言參考描述了語(yǔ)言的具體語(yǔ)法和語(yǔ)義,這份庫(kù)參考則介紹了與一同發(fā)行的標(biāo)準(zhǔn)庫(kù)。這個(gè)庫(kù)也包含了內(nèi)置函數(shù)和異常不需要語(yǔ)句就可以在所有代碼中使用的對(duì)象。下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù) 下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---1、內(nèi)置函數(shù) Python 標(biāo)準(zhǔn)庫(kù) Python 語(yǔ)言參考 描述了 Python 語(yǔ)言的具體語(yǔ)法和語(yǔ)義,這份庫(kù)參考則介紹了與 Python 一同發(fā)行的標(biāo)...

    mo0n1andin 評(píng)論0 收藏0
  • Python 程序構(gòu)架淺析

    摘要:一概念通常的程序的構(gòu)架是指將一個(gè)程序分割為源代碼文件的集合以及將這些部分連接在一起的方法。的程序構(gòu)架可表示為一個(gè)程序就是一個(gè)模塊的系統(tǒng)。它有一個(gè)頂層文件啟動(dòng)后可運(yùn)行程序以及多個(gè)模塊文件用來導(dǎo)入工具庫(kù)。導(dǎo)入是中程序結(jié)構(gòu)的重點(diǎn)所在。 一、概念 通常的Python程序的構(gòu)架是指:將一個(gè)程序分割為源代碼文件的集合以及將這些部分連接在一起的方法。 Python的程序構(gòu)架可表示為: showImg...

    hss01248 評(píng)論0 收藏0
  • Python3】Python模塊與包的導(dǎo)入

    摘要:模塊與包的導(dǎo)入一模塊導(dǎo)入定義模塊,是一個(gè)文件,以結(jié)尾,包含了對(duì)象定義和語(yǔ)句。使用模塊還可以避免函數(shù)名和變量名沖突。特別注意的是自定義的模塊名不應(yīng)該與系統(tǒng)內(nèi)置模塊重名。包是由一系列模塊組成的集合。模塊的導(dǎo)入使用語(yǔ)句。 【Python3】Python模塊與包的導(dǎo)入 一、模塊導(dǎo)入 1. 定義 Python 模塊(Module),是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Pytho...

    CoyPan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<