一宣谈、python基礎(chǔ)語法愈犹、基本數(shù)據(jù)類型、運算符、變量
1.python基礎(chǔ)語法:
注釋:
語句: 結(jié)束沒有分號漩怎,一行有多條語句勋颖,語句換行(\)
標(biāo)識符:由字母數(shù)字、下劃線組成勋锤,不能以數(shù)字開頭饭玲,不能是關(guān)鍵字
關(guān)鍵字: try False True if else 等
行與縮進(jìn):
2.基本數(shù)據(jù)類型:數(shù)字num(整型(int)、浮點型(float)叁执、布爾(bool)茄厘、復(fù)數(shù)(complex)、字符串(Str)谈宛、列表(List)次哈、元祖(Tuples)、字典(Dict)吆录、集合(Sets)
int() ---> 轉(zhuǎn)換成整型:整數(shù)窑滞、布爾、浮點數(shù)恢筝、字符串(+-加純數(shù)字字符串 -->r'[+-]?\d+')
純數(shù)字字符串可以直接轉(zhuǎn)換成整型
浮點數(shù)(float):12.8哀卫、12e-2(科學(xué)計數(shù)法)
float() ---> 轉(zhuǎn)換成浮點型:整數(shù)、布爾撬槽、浮點數(shù)聊训、字符串r'[+-]?\d+.?\d+'
布爾布爾(bool):True(1)、False(0)
bool() ---> 所有的數(shù)據(jù)都可以轉(zhuǎn)換成布爾
轉(zhuǎn)換成Flase有:0恢氯、0.00、''鼓寺、[]勋拟、{}、None
復(fù)數(shù)(complex): 19+2j
3.字符串
字符:Unicode編碼字符
r'\n' R'\' -->阻止轉(zhuǎn)義
chr(code):將編碼轉(zhuǎn)換成單個字符串
ord(字符):將字符轉(zhuǎn)換成10進(jìn)制的Unicode碼
獲取字符串中的一個或者部分字符:str1[index], str1[:]-->左閉右開區(qū)間
遍歷字符串:
for 字符 in 字符串:
pass
for 下標(biāo) in range(len(字符串)):
pass
4.運算符(算術(shù)妈候、賦值敢靡、比較、邏輯(and,or,not))
/+ - * / % // ---> 數(shù)字
/+ 苦银、* ---> 字符串連接啸胧、字符串重復(fù)
/+ 、*幔虏、---> 列表合并纺念、列表元素重復(fù)、
- ----> 集合
二想括、分之陷谱、循環(huán)、序列數(shù)據(jù)類型、函數(shù)
分之:if--elif--else if--if--else---elif--else
循環(huán):for--in-- while--- break,continue
分之:if--elif--else if--if--else---elif--else
循環(huán):for--in-- while--- break,continue
列表:[1,2,'23',True] list[index] list[::] 增烟逊、刪渣窜、改、查宪躯;for item in list; while index<len(list)....
字典:{'a':23, 'b':'wer'} 增(dict[key]=新值)乔宿、刪(del dict[key], dict.pop(key))、改访雪、查(dict[key],dict.get(key))
values,keys,items
元祖:(1, 2)详瑞,不可變的列表
集合:{2, 3},無序的、值唯一的冬阳;包含蛤虐、交集、并集肝陪、差集驳庭、^(除了公共部分以外的)
def 函數(shù)名(參數(shù)列表):
函數(shù)體
參數(shù)可以有默認(rèn)值、參數(shù)不定(*變量)
返回值:沒有return,返回None;有的話就是return后的值氯窍。
作用域:定義在函數(shù)中的變量的作用域在函數(shù)里 (global,nonlocal)
匿名函數(shù):func1 = lambda 參數(shù)列表:返回值
遞歸函數(shù):函數(shù)中調(diào)用自己----> 確定臨界值饲常、找出f(n)和f(n-1)的關(guān)系,根據(jù)關(guān)系用f(n-1)去實現(xiàn)f(n)的功能
三狼讨、文件操作和類
open(地址,打開方法)
打開方式: w贝淤,r, a read() write()
文件.close()
with open() as f:
pass
json文件:json模塊 --> load(),dump(
r+可讀可寫
w+:打開一個文件用于讀寫。如果該文件已存在則將其覆蓋政供。如果該文件不存在播聪,創(chuàng)建新文件。
a+:打開一個文件用于讀寫布隔。如果該文件已存在离陶,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式衅檀。如果該文件不存在招刨,創(chuàng)建新文件用于讀寫
類:
class name(父類):
屬性
方法
屬性:對象、類字段哀军;對象屬性的增刪改查沉眶,_ slots_ , ,
方法:對象杉适、類
繼承:除了私有的所有的屬性和方法谎倔,slots不能繼承
重寫: init方法的重寫需要保留父類功能
多態(tài):繼承的時候,父類的一個方法可以在不同的子類中有不同的實現(xiàn)
運算符重載:_ gt _ _ lt _ _ add _ _ sub _
正則表達(dá)
\d \w . \s \S
//* + [] ? {N} {M,N}, {M,}
re模塊中的方法
match(fullmatch)猿推、search ---> 結(jié)果都是匹配器
findall ---> 結(jié)果是列表传藏,列表中是符合要求的子串sub ---> 返回替換后的字符串
split --> 列表
迭代器和生成器
1.創(chuàng)建迭代器(就可以看成一個特殊的容器)
可以將序列轉(zhuǎn)換成迭代器
iter1 = iter('abcn') # a、b、c毯侦、n就是迭代器中的元素
2.通過next去獲取迭代器中的元素,每次只能取一個哭靖,而且已經(jīng)取過的元素就不能再獲取到了
def func1():
print('aaa')
func1()
a = 100
print(iter1.__next__())
二、生成器和生成式:生成器就是創(chuàng)建迭代器的函數(shù)侈离;生成式就是創(chuàng)建迭代器的表達(dá)式
生成式: (value for value in 序列)
iter2 = ((i*2,i) for i in 'ahnckdhs')
print(iter2.next())
print(iter2.next())
生成器:在函數(shù)中有關(guān)鍵字yield的函數(shù)就是生成器试幽,函數(shù)的返回值就是一個迭代器(不管函數(shù)有沒有返回值)
格式:yield 表達(dá)式 迭代器中的元素就是yield后面的值的集合
def func():
for i in range(10, 20):
yield i # 在函數(shù)執(zhí)行的過程中,每遇到一次yield卦碾,就會將yield后面的值存到迭代器中