耗時(shí)600小時(shí)整理《Python教程全套》完全入門版,分享一起學(xué)習(xí)_高清附...

輸出函數(shù)
print函數(shù)中單雙三引號(hào)無需理解直接輸出內(nèi)容
print函數(shù)當(dāng)中如果是表達(dá)式的話會(huì)進(jìn)行運(yùn)算
open函數(shù)中'a+'含義:a是以讀寫的方式打開文件,如果文件不存在的話就創(chuàng)建文件,如果存在的話在原有內(nèi)容上進(jìn)行追加,open函數(shù)會(huì)輸入到文件上
1.所指定的盤符要存在。2.使用file=fp
注意:如果寫a就寫不了數(shù)據(jù)
轉(zhuǎn)義字符與原字符
1.轉(zhuǎn)義字符就是反斜杠+想要實(shí)現(xiàn)的轉(zhuǎn)移功能首字母
2.字符串中包含反斜杠,單引號(hào)和雙引號(hào)等有特殊用途的字符是,必須使用反斜杠對(duì)這些字符進(jìn)行轉(zhuǎn)義
3.可以使用轉(zhuǎn)義字符顯示,字符串中包含換行,回車,水平制表符或退格等無法直接顯示的特殊字符
反斜杠:\\ 單引號(hào):\' 雙引號(hào):\“ 換行:\n 回的:\r 水平制表符:\t 退格:\b
注意:\t在使用時(shí),一個(gè)\t占據(jù)四個(gè)字符的位置。重開一個(gè)制表位取決于\t之前是否占滿制表位,占滿就重新開一個(gè),不占滿不重新開
print(hello\rworld) #world將hello進(jìn)行覆蓋
print(hello\bworld) #\b就是退一個(gè)格,把o退沒了
1.使轉(zhuǎn)義字符不起作用的字符就叫原字符
2.不希望字符串中的轉(zhuǎn)義字符起作用,就使用原字符,就是在字符串之前加上r或R
3.原字符串的最后一個(gè)字符不能是反斜線,但可以是\\
二進(jìn)制與字符編碼
byte KB MB GB TB(進(jìn)制為1024,8bit等于1byte)
print(chr(0b100111001011000)) #0b表示二進(jìn)制=乘
print(ord('乘')) =20056
標(biāo)識(shí)符和保留字
·不允許命名任何對(duì)象且具有特定意義的單詞叫做保留字
import keyword #查找保留字
print(keyword.kwlist)
·規(guī)則:
·字母,數(shù)字,下劃線
·不能以數(shù)字開頭
·不能是我的保留字
·我是嚴(yán)格區(qū)分大小寫的
變量的定義和使用
·變量是內(nèi)存中一個(gè)帶標(biāo)簽的盒子
標(biāo)識(shí):表示對(duì)象所存儲(chǔ)的內(nèi)存地址,使用內(nèi)置函數(shù)id(obj)獲取
類型:表示對(duì)象的數(shù)據(jù)類型,可使用內(nèi)置函數(shù)tybe(obj)來獲取
值:表示對(duì)象所儲(chǔ)存的具體數(shù)據(jù),使用print(obj)進(jìn)行輸出
·當(dāng)多次賦值之后,變量名會(huì)指向心的空間
常見的數(shù)據(jù)類型
整數(shù)類型(int)浮點(diǎn)型(float) 布爾型(bool) 字符串型(str)
整數(shù)型的不同進(jìn)制表示方式
·十進(jìn)制>>默認(rèn)的進(jìn)制
·二進(jìn)制>>以0b開頭
·八進(jìn)制>>以0o開頭
·十六進(jìn)制>>0x開頭
浮點(diǎn)型 浮點(diǎn)數(shù)存儲(chǔ)不確定性,進(jìn)行計(jì)算時(shí)可能會(huì)出現(xiàn)小數(shù)位數(shù)不確定的情況,可導(dǎo)入模塊decimal
布爾型 可以轉(zhuǎn)換為整數(shù):True>>1 False>>0
字符串型 單雙引號(hào)定義的字符串必須在一行,三引號(hào)定義的字符串可以分布在連續(xù)的多行
字符串
·在python中字符串是基本數(shù)據(jù)類型,是不可變的字符序列
字符串駐留機(jī)制
·僅保存一份相同且不可變字符串的方法,不同的值被存放在字符串的駐留池中,python的駐留機(jī)制對(duì)相同的字符串只保留一份拷貝,后續(xù)創(chuàng)建相同字符串時(shí),不會(huì)開辟新空間,而是把該字符串的地址賦給新創(chuàng)建的變量
·駐留機(jī)制的幾種情況:
1·字符串的長度為0或1時(shí)
2·符合標(biāo)識(shí)符的字符串
3·字符串只在編譯時(shí)進(jìn)行駐留,而非運(yùn)行時(shí)
4·[-5,256]之間的整數(shù)數(shù)字
·sys中的intern方法強(qiáng)制2個(gè)字符串指向同一個(gè)對(duì)象
·pycharm對(duì)字符串進(jìn)行了優(yōu)化處理
·優(yōu)缺點(diǎn):
1·當(dāng)需要值相同的字符串時(shí),可以直接從字符串池里拿來使用,避免頻繁的創(chuàng)建和銷毀,提高效率和節(jié)約內(nèi)存,因此拼接字符串和修改字符串會(huì)比較影響性能的
2·在需要進(jìn)行字符串拼接時(shí)建議使用str類型的join方法,而非+方法是先計(jì)算出所有字符中的長度,然后再拷貝,只new一次對(duì)象,效率要比‘+’效率高
字符串的常用操作
index()查找子串substr第一次出現(xiàn)的位置,如果查找的子串不存在時(shí),則拋出ValueError
rindex()查找子串substr最后一次出現(xiàn)的位置,如果查找的子串不存在時(shí),則拋出ValueError
find()查找子串substr第一次出現(xiàn)的位置,如果查找的子串不存在時(shí),則返回-1
rfind()查找子串substr最后一次出現(xiàn)的位置,如果查找的子串不存在時(shí),則返回-1
大小寫轉(zhuǎn)換
upper()字符都轉(zhuǎn)成大寫字母
lower()字符都轉(zhuǎn)成小寫字母
swapcase()大寫字母都轉(zhuǎn)成小寫字母,小寫字母都轉(zhuǎn)成大寫字母
capitalize()第一個(gè)字符轉(zhuǎn)成大寫,其余字符轉(zhuǎn)成小寫
title() 每個(gè)單詞的每一個(gè)字符轉(zhuǎn)成大寫,每個(gè)單詞的剩余字符轉(zhuǎn)成小寫
內(nèi)容對(duì)齊
center() 居中對(duì)齊 ljust()左對(duì)齊 rjust()右對(duì)齊
第一個(gè)參數(shù)指定寬度,第二個(gè)參數(shù)指定填充符,第二個(gè)參數(shù)是可選的,默認(rèn)是空格,如果設(shè)置寬度小于實(shí)際寬度則返回原字符串。
zfill()右對(duì)齊,左邊用0填充,該方法只接受一個(gè)參數(shù),用于指定字符串的寬度,如果指定的寬度小等于字符串的長度,返回字符串本身
劈分
split()從左劈分 rsplit()從右劈分
·默認(rèn)的劈分字符是空格字符串,返回的值都是一個(gè)列表
·參數(shù)sep指定劈分字符串的是劈分符
·參數(shù)maxsplit指定劈分字符串的最大劈分次數(shù),經(jīng)過最大次劈分之后,剩余的子串會(huì)單獨(dú)做為一部分
判斷
isidentifier()是否為合法標(biāo)識(shí)符
isspace()是否全部由空白字符組成(回車,換行,水平制表符)
isalpha()是否全部由字母組成
isdecimal()是否全部由十進(jìn)制的數(shù)字組成
isnumric()是否全部由數(shù)字組成
isalnum()是否全部由字母和數(shù)字組成
替換和合并
replace() 第一個(gè)參數(shù)指定被替換的子串,第二個(gè)參數(shù)指定字符串,替換前后不發(fā)生變化。第三個(gè)參數(shù)指定最大替換次數(shù)
join()將列表或元組中的字符串合并成一個(gè)字符串
切片
字符串是不可變類型,不具有增,刪,改等操作,切片操作將產(chǎn)生新對(duì)象
格式化
%,{}做占位符。 %s為字符串,%i或%d為整數(shù),%f為浮點(diǎn)數(shù)
編碼與轉(zhuǎn)換
編碼:將字符串轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)
解碼:將bytes類型的數(shù)據(jù)轉(zhuǎn)換為字符串類型
函數(shù)
創(chuàng)建和調(diào)用
函數(shù)就是執(zhí)行特定任務(wù)和以完成特定功能的一段代碼
優(yōu)點(diǎn):復(fù)用代碼,隱藏實(shí)現(xiàn)細(xì)節(jié),提高可維護(hù)性,提高可讀性便于調(diào)試。
創(chuàng)建 def 函數(shù)名 ([輸入?yún)?shù)]):
函數(shù)體
[return xxx]
參數(shù)傳遞
位置實(shí)參:根據(jù)形參對(duì)應(yīng)的位置進(jìn)行實(shí)參傳遞
關(guān)鍵字實(shí)參:根據(jù)形參名稱進(jìn)行實(shí)參傳遞
返回值
1.如果函數(shù)沒有返回值【函數(shù)執(zhí)行完畢之后,不需要給調(diào)用提供數(shù)據(jù)】
2.函數(shù)的返回值,如果是一個(gè),直接返回原值。如果是多個(gè),返回值為元組
默認(rèn)值
函數(shù)定義時(shí),給形參設(shè)置默認(rèn)值,只有與默認(rèn)值不符的時(shí)候才需要傳遞
參數(shù)定義
·個(gè)數(shù)可變的位置參數(shù)
定義函數(shù)時(shí),可能無法事先確定傳遞的位置實(shí)參的個(gè)數(shù)時(shí),使用可變的位置參數(shù)
使用*定義個(gè)數(shù)可變的位置形參
結(jié)果為一個(gè)元組
·個(gè)數(shù)可變的關(guān)鍵字形參
定義函數(shù)時(shí),無法事先確定傳遞的關(guān)鍵字實(shí)參的個(gè)數(shù)時(shí),使用可變的關(guān)鍵字形參
使用**定義個(gè)數(shù)可變的關(guān)鍵字形參
結(jié)果為一個(gè)字典
變量
變量的作用域
·程序代碼能訪問該變量的區(qū)域
·局部變量,在函數(shù)內(nèi)定義并使用的變量,只在函數(shù)內(nèi)部有效。局部變量使用global聲明可以成為全局變量
·全局變量,函數(shù)體外定義的變量,可用于函數(shù)內(nèi)外
遞歸函數(shù)
·如果在一個(gè)函數(shù)的函數(shù)體內(nèi)調(diào)用該函數(shù)本身,這個(gè)函數(shù)就被稱為遞歸函數(shù)
遞歸的組成部分·遞歸調(diào)用與遞歸終止條件
遞歸的調(diào)用過程·每遞歸調(diào)用一次函數(shù),都在棧內(nèi)存分配一個(gè)棧幀·每執(zhí)行完一次函數(shù),都會(huì)釋放相應(yīng)的空間
優(yōu)缺點(diǎn)·優(yōu)點(diǎn):思路和代碼簡單·缺點(diǎn):占用內(nèi)存多,效率低下

Bug
常見類型
·粗心導(dǎo)致的自查寶典
1·漏了末尾的冒號(hào),如if語句,循環(huán)語句,else語句等
2·縮進(jìn)錯(cuò)誤,該縮進(jìn)的沒縮進(jìn),不該縮進(jìn)的瞎縮進(jìn)
3·把英文符號(hào)寫成中文符號(hào),比如引號(hào),冒號(hào),括號(hào)
4·字符串拼接的時(shí)候,把字符串和數(shù)字拼接在一起
5·沒有定義變量,比如while的循環(huán)條件的變量
6·“==”比較運(yùn)算符和“=”賦值運(yùn)算符的混用
·知識(shí)不熟練導(dǎo)致的錯(cuò)誤
1·索引越界問題IndexError
2·append()方法的使用掌握不熟練
·被動(dòng)掉坑
1·解決方案:python提供了異常處理進(jìn)制,可以在異常出現(xiàn)是即時(shí)捕獲,然后內(nèi)部消化,讓程序繼續(xù)運(yùn)行
2·多個(gè)except結(jié)構(gòu):捕獲異常的順序按照先子類后父類的順序,為了避免遺漏可能出現(xiàn)的異常,可以在最后增加BaseException
3·try...except...else結(jié)構(gòu):如果try塊中沒有拋出異常,則執(zhí)行else塊,如果try塊中拋出異常,則執(zhí)行except塊


對(duì)象的創(chuàng)建又稱為類的實(shí)例化
語法:實(shí)例名=類名()
意義:有了實(shí)例,就可以調(diào)用類中的內(nèi)容
類屬性:類中方法外的變量稱為類屬性,被該類的所有對(duì)象所共享
類方法:使用@classmethod修飾的方法,使用類名直接訪問的方法
靜態(tài)方法:使用@staticmethod修飾的方法,使用類名直接訪問的方法
動(dòng)態(tài)綁定屬性和方法
面對(duì)對(duì)象的特征
·封裝:提高程序的安全性

*將數(shù)據(jù)(屬性)和行為(方法)包裝到類對(duì)象中。在方法內(nèi)部對(duì)屬性進(jìn)行操作,在類對(duì)象的外部調(diào)用方法。這樣,無需關(guān)心方法內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié),從而隔離復(fù)雜度。
*在python中沒有專門的修飾符用于屬性的私有,如果該屬不希望在類對(duì)象外被訪問,前邊使用‘--’
·繼承:提高代碼的復(fù)用性

*如果一個(gè)類沒有繼承任何類,則默認(rèn)繼承object
*python支持多繼承
*定義子類時(shí),必須在其構(gòu)造函數(shù)中調(diào)用父類的構(gòu)造函數(shù)
·多態(tài):提高程序的可擴(kuò)展性和可維護(hù)性


方法重寫

object類

特殊方法和特殊屬性








