python基礎(chǔ)

一、python簡(jiǎn)介

1、Python是一門(mén)動(dòng)態(tài)、解釋型、強(qiáng)類(lèi)型語(yǔ)言

動(dòng)態(tài):運(yùn)行期間進(jìn)行數(shù)據(jù)檢查,不用提前聲明變量

靜態(tài):編譯時(shí)進(jìn)行數(shù)據(jù)檢查,需要提前聲明變量

解釋型:執(zhí)行程序時(shí),解釋成機(jī)器語(yǔ)言給計(jì)算機(jī)執(zhí)行

編譯型:先將代碼編譯成二進(jìn)制可執(zhí)行文件,再執(zhí)行

強(qiáng)類(lèi)型:變量類(lèi)型設(shè)置成功,如果不強(qiáng)制轉(zhuǎn)化,一直是這種類(lèi)型

弱類(lèi)型:在執(zhí)行過(guò)程中會(huì)根據(jù)需要自動(dòng)轉(zhuǎn)化類(lèi)型

2、基本數(shù)據(jù)類(lèi)型

數(shù)字:整型,浮點(diǎn)型,復(fù)數(shù)型,布爾類(lèi)型

字符串:

len('abc')? ?字符串長(zhǎng)度

print('abd'.find('f'))? 查找字符,找不到會(huì)報(bào)錯(cuò)

print('abd'.index('f'))???查找字符,找不到返回-1

'abc'.count('a')? 統(tǒng)計(jì)字符的數(shù)量

"".join(["a","b","c"])??列表轉(zhuǎn)化成字符串

"a,b,c,d".split(",")? ? 將多個(gè)字符串分割成列表

"hello,java".replace("java", "python")? ? 將java 替換為 python

"Name: %s, Age: %d" % ("Lily", 12)? ? 字符串格式化

"Name: {}, Age: {}".format("Lily", 12)

列表:可以改變,有序

s.append('s')? 只能增加一個(gè)元素

s.extend(['a','b'])? 可以增加多個(gè)元素

s.pop() 默認(rèn)刪除最后一個(gè)元素

s.remove('a')? 刪除固定元素

s.sort()? 排序

s.reverse() 反轉(zhuǎn)

字典:無(wú)序,可變,字典的key不能相同

d = {'a':'b'}?

d['a']? ?或? d.get('a')? ?獲取鍵值

d.pop('a')? 刪除元素

d.clear()? 清除所有元素

元組:不可改變,有序

集合:可變,無(wú)序,通常用作去重,性能比列表好,一次搜索

3、哈希元素

通過(guò)計(jì)算得到元素的存儲(chǔ)地址(映射), 要求不同長(zhǎng)度的元素都能計(jì)算出地址,相同元素每次計(jì)算出的地址都一樣, 不同元素計(jì)算的地址必須唯一, 基于哈希的查找永遠(yuǎn)只需要一步操作, 計(jì)算一下得到元素相應(yīng)的地址, 不需要向序列那樣遍歷, 所以性能較好

可哈希元素: 為了保證每次計(jì)算出的地址相同, 要求元素長(zhǎng)度是固定的, 如數(shù)字/字符串/只包含數(shù)字,字符串的元組, 這些都是可哈希元素

4、例子:判斷一個(gè)字符串是不是ip地址

5、文件操作

文件打開(kāi)? f=open('t.text')? f.close() ////? ?f = with open('t.text') as f? ?

文件讀取? read()? ///? ? readline()??

文件保存? f.save()

文件寫(xiě)入? f.write()

文件指針移動(dòng)? f.seek()

二、python函數(shù)

1、必選與可選參數(shù)

可選參數(shù)必須放在后面,已有默認(rèn)值定義

2、位置參數(shù)和關(guān)鍵字參數(shù)

位置參數(shù):按照位置傳參

關(guān)鍵字參數(shù):直接指定參數(shù)值,不按順序

3、可變參數(shù)

*args 定義多個(gè)元素,里面存儲(chǔ)元組

**kwargs? 存儲(chǔ)多個(gè)元素,格式是字典

4、匿名函數(shù)lambda(主要為了定義簡(jiǎn)單函數(shù))

add = lamda x,y: x+y

5、高階函數(shù)

以函數(shù)為參數(shù)的函數(shù)稱(chēng)為高階函數(shù)

常用高階函數(shù)

map,使用一個(gè)函數(shù)面對(duì)序列進(jìn)行批量操作

filter,使用一個(gè)函數(shù)來(lái)過(guò)濾數(shù)據(jù)

reduce,使用一個(gè)函數(shù)對(duì)序列累計(jì)操作;這個(gè)函數(shù)的2個(gè)參數(shù)操作完作為下一輪的入?yún)?/p>

6、裝飾器

以函數(shù)為參數(shù)的函數(shù)稱(chēng)為高階函數(shù),以@為引用

7、函數(shù)嵌套

函數(shù)內(nèi)部定義函數(shù)

三、模塊和包

1、模塊

一個(gè)py文件為一個(gè)模塊

一個(gè)文件夾為一個(gè)包(有__init__文件)

2、常用系統(tǒng)模塊

os: 與操作系統(tǒng)交互

os.name/os.sep/os.linesep: 系統(tǒng)名稱(chēng)/系統(tǒng)路徑分隔符/系統(tǒng)換行符

os.makedir()/os.makedirs(): 建立目錄/建立多級(jí)目錄

os.getenv("PATH"): 獲取系統(tǒng)PATH環(huán)境變量的設(shè)置

os.curdir/os.prdir: 獲取當(dāng)前路徑/上級(jí)路徑

os.walk(): 遍歷文件夾及子文件

os.path.basename()/os.path.abspath()/os.path.dirname(): 文件名/文件絕對(duì)路徑/文件上級(jí)文件夾名

os.path.join()/os.path.split(): 按當(dāng)前系統(tǒng)分隔符(os.sep)組裝路徑/分割路徑

os.path.exists()/os.path.isfile()/os.path.isdir(): 判斷文件(文件夾)是否存在/是否文件/是否文件夾

sys: 與Python系統(tǒng)交互

sys.path: 系統(tǒng)路徑(搜索路徑)

sys.platform: 系統(tǒng)平臺(tái),可以用來(lái)判斷是python2還是3

sys.argv: py腳本接受的命令行參數(shù)

sys.stdin/sys.stdout/sys.stderr: 標(biāo)準(zhǔn)輸入/輸出/錯(cuò)誤

例子:冒泡排序,快速排序,二分查找,迭代

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容