一、python基礎語法、基本數(shù)據(jù)類型、運算符、變量
1.python基礎語法:
注釋:
語句: 結束沒有分號,一行有多條語句,語句換行(\)
標識符:由字母數(shù)字、下劃線組成,不能以數(shù)字開頭,不能是關鍵字
關鍵字: try False True if else 等
行與縮進:
2.基本數(shù)據(jù)類型:數(shù)字num(整型(int)、浮點型(float)、布爾(bool)、復數(shù)(complex)、字符串(Str)、列表(List)、元祖(Tuples)、字典(Dict)、集合(Sets)
int() ---> 轉換成整型:整數(shù)、布爾、浮點數(shù)、字符串(+-加純數(shù)字字符串 -->r'[+-]?\d+')
純數(shù)字字符串可以直接轉換成整型
浮點數(shù)(float):12.8、12e-2(科學計數(shù)法)
float() ---> 轉換成浮點型:整數(shù)、布爾、浮點數(shù)、字符串r'[+-]?\d+.?\d+'
布爾布爾(bool):True(1)、False(0)
bool() ---> 所有的數(shù)據(jù)都可以轉換成布爾
轉換成Flase有:0、0.00、''、[]、{}、None
復數(shù)(complex): 19+2j
3.字符串
字符:Unicode編碼字符
r'\n' R'\' -->阻止轉義
chr(code):將編碼轉換成單個字符串
ord(字符):將字符轉換成10進制的Unicode碼
獲取字符串中的一個或者部分字符:str1[index], str1[:]-->左閉右開區(qū)間
遍歷字符串:
for 字符 in 字符串:
pass
for 下標 in range(len(字符串)):
pass
4.運算符(算術、賦值、比較、邏輯(and,or,not))
/+ - * / % // ---> 數(shù)字
/+ 、* ---> 字符串連接、字符串重復
/+ 、*、---> 列表合并、列表元素重復、
- ----> 集合
二、分之、循環(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ù)可以有默認值、參數(shù)不定(*變量)
返回值:沒有return,返回None;有的話就是return后的值。
作用域:定義在函數(shù)中的變量的作用域在函數(shù)里 (global,nonlocal)
匿名函數(shù):func1 = lambda 參數(shù)列表:返回值
遞歸函數(shù):函數(shù)中調用自己----> 確定臨界值、找出f(n)和f(n-1)的關系,根據(jù)關系用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+:打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫
類:
class name(父類):
屬性
方法
屬性:對象、類字段;對象屬性的增刪改查,_ slots_ , ,
方法:對象、類
繼承:除了私有的所有的屬性和方法,slots不能繼承
重寫: init方法的重寫需要保留父類功能
多態(tài):繼承的時候,父類的一個方法可以在不同的子類中有不同的實現(xiàn)
運算符重載:_ gt _ _ lt _ _ add _ _ sub _
正則表達
\d \w . \s \S
//* + [] ? {N} {M,N}, {M,}
re模塊中的方法
match(fullmatch)、search ---> 結果都是匹配器
findall ---> 結果是列表,列表中是符合要求的子串sub ---> 返回替換后的字符串
split --> 列表
迭代器和生成器
1.創(chuàng)建迭代器(就可以看成一個特殊的容器)
可以將序列轉換成迭代器
iter1 = iter('abcn') # a、b、c、n就是迭代器中的元素
2.通過next去獲取迭代器中的元素,每次只能取一個,而且已經取過的元素就不能再獲取到了
def func1():
print('aaa')
func1()
a = 100
print(iter1.__next__())
二、生成器和生成式:生成器就是創(chuàng)建迭代器的函數(shù);生成式就是創(chuàng)建迭代器的表達式
生成式: (value for value in 序列)
iter2 = ((i*2,i) for i in 'ahnckdhs')
print(iter2.next())
print(iter2.next())
生成器:在函數(shù)中有關鍵字yield的函數(shù)就是生成器,函數(shù)的返回值就是一個迭代器(不管函數(shù)有沒有返回值)
格式:yield 表達式 迭代器中的元素就是yield后面的值的集合
def func():
for i in range(10, 20):
yield i # 在函數(shù)執(zhí)行的過程中,每遇到一次yield,就會將yield后面的值存到迭代器中