爲了更加系統的學習和了解Python,瞭解應用Python到完整項目的基本流程,自己又再一次學習了Python。
一、基礎數據結構
1.字符串
字符串是由數字、字母、下劃線組成的一串字符,並使用”“或‘’將其包裹。
可以使用方括號來截取字符串,格式爲:[起始位置:結束位置:步長]。
常用字符串函數:join(),len(),replace(),strip()等。
- Join()函數:連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串。
- replace()函數:用於把字符串中指定的舊子字符串替換成指定的新子字符串,如果指定 count
可選參數則替換指定的次數,默認全部替換。
用法:S.replace(old,new[,count=S.count(old)]) - strip()方法:用於移除字符串頭尾指定的字符(默認爲空格或換行符)或字符序列。
2.列表
把逗號分隔的不同的數據項使用方括號括起來就創建了一個列表。
可以使用下標索引來對列表中的值進行訪問和修改,同樣你也可以使用方括號的形式進行元素的截取。
常用的列表函數:append(),extend(),pop(),remove(),reverse(),sort()等。
- extend() 函數用於在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)。
- append()函數只追加一個 pop() 函數用於移除列表中的一個元素(默認最後一個元素),並且返回該元素的值
- remove() 方法通過指定元素的值來移除列表中某個元素的第一個匹配項,如果這個元素不在列表中會報一個異常
3.元組
元組使用小括號,列表使用方括號。
元組與列表類似,不同之處在於元組的元素不能修改。
常用的元組函數:len(),min(),max(),tuple()。
4.字典
字典的每個鍵值對用*:*分割,每個對之間用逗號,分割,整個字典包括在{}中。
不允許同一個鍵出現兩次。鍵必須不可變,所以可以用數字、字符串、元組充當。
常用的**字典函數:get(),items(),keys()**等。
二、函數
1、函數定義
函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。
函數內容以冒號起始,並且縮進。
任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。
return[表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。
2、函數調用
使用函數名直接調用函數。
如果定義的函數存在參數,調用的時候一定要給出,否則會報錯。
三、面向對象
Python是一門面向對象的語言
類、類變量、數據成員、方法重寫、局部變量 、實例變量、繼承、實例化、方法 、對象
-
定義一個類格式:
class 類名:
方法列表 -
創建對象,格式:
對象名 = 類名()
對象和類都可以有自己的屬性
-
繼承
class 子類名(父類):
方法列表(如果想要重寫函數,直接寫一個一模一樣的函數即可,當然函數的實現不同) -
類的專有方法
(1) init()構造函數,在生成對象時調用
如:def __init__(self,val1,val2)
(2)del()析構函數。釋放對象時用
四、判斷循環條件
1、python條件語句
if語句
格式:
if xxx1:
事件1
elif xxx2:
事件2
else:
事件3
PS :Python裏“elif”會用得比較多,因爲Python沒有switch…case語句
2、python循環語句
for循環和while循環。
循環控制語句可以更改語句執行的順序。
支持break、continue語句控制循環。
五、生成器
由於設備內存的限制,列表容量有限,且如果僅僅只是訪問列表前面幾個元素,列表後面的元素則拜拜浪費空間。
所以,不必創建完整列表,列表元素可以按照某種算法推算出來,可以一邊循環一邊計算的機制,即生成器generator。
1、迭代器
迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。
迭代器有兩個基本的方法:iter()和next()。
2、生成器
在python中,使用了yield的函數被稱爲生成器(generator)。
在調用生成器運行的過程中,每次遇到yield時函數會暫停並保存當前所有的運行信息,返回yield的值, 並在下一次執行next()方法時從當前位置繼續運行。
生成器的定義
#列表
L= [x*2 for x in range(5)]
#生成器最簡單的寫法
G= (x*2 for x in range(5))
#生成器調用(調用幾次生成幾次)——但一般不用這樣的寫法
print(next(G))
#常用生成器
#通過生成器生成斐波那契數列(後一個數等於前兩個數相加)
def fib(number):
n,a,b = 0, 0, 1
while n < number:
yield b #在循環體裏用yield進行返回就是一個生成器
a, b = b, a + b
n = n + 1
#調用生成器(用循環體調用)
for i in fib(10):
print(i)
生成器例子——batch生成器
#條件
dataset= [x for x in range(100)]
batch_size = 6(就是每次取出6個數)
#實現
def get_batch(dataset,batch_size ):
參考:天學網人工智能學院學習視頻