數(shù)據(jù)轉(zhuǎn)換 :str、int倚舀、float叹哭、tuple、list痕貌,dict
1. List 列表??
支持字符风罩、數(shù)字、字符串包含在列表中舵稠,用[ ]標(biāo)識超升,是有序?qū)ο?,索引從0開始,有append(),extend()柱查、insert()等方法廓俭,可以切片
2.?Tuple 元組?
用()標(biāo)識,不能二次賦值唉工,可認(rèn)為是不可變的列表研乒,有序?qū)ο螅梢郧衅?/span>
3. dict 字典?
由鍵和值組成淋硝,用{}標(biāo)識雹熬,可以利用鍵對值進(jìn)行索引
① 字典的索引使用相關(guān)的鍵
② 字典和列表結(jié)合(在pandas中經(jīng)常使用)
③ key是不可變的宽菜,但values是可變的(可以以列表的形式存在),即可以為列表竿报,參考pandas
④ 字典的常用操作? update铅乡、in not in(只針對key)
⑤ 字典的其他知識點
字典的元素訪問只能使用鍵,而不是使用索引烈菌,因為字典是無序的
對于嵌套字典阵幸,輸出嵌套內(nèi)容,通過重復(fù)指向來輸出
.get(key)方法:直接查看key的value芽世,如果沒有相應(yīng)key則返回None挚赊,添加print參數(shù)可以多返回一個值
.keys()方法:輸出字典所有key,注意這里的輸出內(nèi)容格式是視圖济瓢,可以用list()得到key的列表荠割,類似range()
.values()方法:輸出字典所有values,原理同.keys()方法
.items()方法:輸出字典所有items(元素)旺矾,原理同.keys()方法
⑥??字典的遍歷(使用keys蔑鹦、values、items)
4. 字符串
① 字符串引號
''? ?""? ? ''' ''' 三種引號靈活使用箕宙,前兩種用在字符串中嚎朽,三引號用來直接換行
② 轉(zhuǎn)義字符? ?\
注:"/"左傾斜是正斜杠,"\"右傾斜是反斜杠,可以記為:除號是正斜杠一般來說對于目錄分隔符,Windows用反斜杠
③?字符串常用功能:replace 扒吁、split火鼻、join、stipestartswith雕崩、endswith等
st = 'aBDEAjc kLM'
print(st.upper()) # 全部大寫
print(st.lower()) # 全部小寫
print(st.swapcase()) # 大小寫互換
print(st.capitalize()) # 首字母大寫
st = '1234567'
print(st.isnumeric()) # 如果 string 只包含數(shù)字則返回 True,否則返回 False.
st = 'DNVAK'
print(st.isalpha()) # 如果 string 至少有一個字符并且所有字符都是字母則返回 True,否則返回 False
st = 'avd '
print(st.strip()) # 刪除字符末尾的空格
④?格式化字符串? ?
%i為整型魁索,%s為字符串型,%f為浮點型
最強大的格式化盼铁,也是使用最多的就是format
二.?變量粗蔚、運算符與序列
1. 變量
用 = 連接 ,=左邊為變量名饶火,=代表賦值鹏控,=右邊代表對給變量賦的值? ?
變量首字符必須是字母或者下劃線_ ,不能是數(shù)字? ??
可以進(jìn)行多變量賦值和動態(tài)賦值
2.?運算符
算術(shù)運算符 + - * /? %? **?//???>=? <=? ==?
3.?序列
可變序列:列表List ???
不可變序列:元組tuple,字符串str ??
*生成器 range
① 判斷元素是否在序列中? in 肤寝、not in
② 序列相加與相乘
③ 下標(biāo)索引当辐,從0開始,從最右邊開始索引的話鲤看,是從-1開始
④ 切片 通過索引范圍取得缘揪,左閉右開,最右端索引無法取得,使用[:]可以全部取得
⑤ 步長?
⑥ 序列的內(nèi)置全局函數(shù)? len()、 max()找筝、 min()蹈垢、 sum()、 index()袖裕、count()
⑦ 生成器 range()? 依然是左閉右開曹抬,不包含右邊元素,可以使用步長
三. 語句
最基本的語句:賦值語句? ??
同樣比較基本的語句:運行函數(shù)/方法? ??
條件語句:if ???
循環(huán)語句:for/while循環(huán)急鳄,循環(huán)遍歷序列/字典等
函數(shù)語句:def
模塊語句: import
1.?條件語句 if
① 基本條件判斷
② 多重條件判斷
2. 循環(huán)語句 for? while
① for?語句
②?while語句
③?循環(huán)控制語句
break:在語句塊執(zhí)行過程中終止循環(huán)谤民,并且跳出整個循環(huán)
continue:在語句塊執(zhí)行過程中跳出該次循環(huán),執(zhí)行下一次循環(huán)
pass:pass是空語句攒岛,是為了保持程序結(jié)構(gòu)的完整性
函數(shù)組成
函數(shù)名稱?
函數(shù)參數(shù)
函數(shù)內(nèi)的算法赖临,內(nèi)置函數(shù)可以通過help()查看,自定義函數(shù)自己定義算法
1. 常用內(nèi)置函數(shù)
- abs
- sorted? ?
- max
- min
- sum
- len
- divmod(a,b) →獲取商和余數(shù) divmod(5,2) >>(2,1)
- pow(a,b)? 獲取乘方數(shù)灾锯。pow(2,3)>>>8
- round(a,b) 獲取指定位數(shù)的小數(shù)? round(3.1415,2)→3.14
- range()
?2. 常用類型轉(zhuǎn)換函數(shù)
- int()
- float()
- str()
- bool()
- list()
- iter()
- dict()
- enumerate() 返回枚舉對象
- tuple()?
- set() 集合{}
- hex() 轉(zhuǎn)換為16進(jìn)制的
- oct() 轉(zhuǎn)換為8進(jìn)制的
- bin() 轉(zhuǎn)換為2進(jìn)制的
- chr() 轉(zhuǎn)換為相應(yīng)ASCI碼
- ord() 轉(zhuǎn)換ASCI字符為相應(yīng)的數(shù)字
3.?相關(guān)操作函數(shù)
- eval():執(zhí)行一個表達(dá)式,或字符串作為運算嗅榕。eval('1'+'1')>>>2
- exec():執(zhí)行python語句
- type():返回一個對象的類型
- id():返回一個對象的唯一標(biāo)識符
- help():調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)
- global():返回當(dāng)前全局變量的字典
- reversed(sequence):返回一個反轉(zhuǎn)序列的迭代器顺饮。reversed('a','c','b')>>>['b','c','a']
4.?自定義函數(shù)
def 定義函數(shù)? ??
return 賦予該函數(shù)的返回值? ??
在調(diào)用時常常對其進(jìn)賦值
①?局部變量與全局變量
定義在函數(shù)內(nèi)部的變量擁有一個局部作用域,定義在函數(shù)外的擁有全局作用域凌那。
局部變量只能在其被聲明的函數(shù)內(nèi)部訪問兼雄,而全局變量可以在整個程序范圍內(nèi)訪問。調(diào)用函數(shù)時帽蝶,所有在函數(shù)內(nèi)聲明的變量名稱都將被加入到作用域中? ? ??
global語句 → 把局部變量變?yōu)槿肿兞?/span>
②?定義一個函數(shù)赦肋,可統(tǒng)計出輸入任意的字符中英文字母、空格励稳、數(shù)字和其它字符的個數(shù)
st.isalpha()? ?判斷字母
st.isspace()? 判斷空格
st.isdigit()? ? 判斷數(shù)字
5. 匿名函數(shù)
格式:f = lambda a,b,c:a+b+c ?? ??
? ? ? ? ? f(1,2,3)>>>6
五.?模塊與包
模塊類似于通過不同的代碼功能佃乘,組合成一個腳本文件,變成一個可重復(fù)利用的獨立功能模塊驹尼,可以封裝調(diào)用
1. 模塊路徑問題
import pandas
print(pandas.__file__)
# 查看現(xiàn)有包所在路徑趣避,將自己創(chuàng)建的包存入該路徑
import sys
sys.path.append('C:/Users/Hjx/Desktop/')
# 加載sys包,把自己創(chuàng)建的包的所在路徑添加上
2. 模塊調(diào)用方式
- import pandas
- From pandas import DataFrame
- import pandas as pd
3.?常用模塊? random新翎、time
①?import random? ? ?
常用:random()程帕、randit()、choice()地啰、sample()愁拭、shuffle()
② import time? ? ?
常用:sleep()、ctime()
注:
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時制小時數(shù)(0-23)
%I 12小時制小時數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6)亏吝,星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時間表示
%Z 當(dāng)前時區(qū)的名稱
包都可以通過pip進(jìn)行下載安裝? ? ??
- pip list查看當(dāng)前安裝好的包
六. 文件
1.?文件路徑
使用/? 或者 \\ \或者r'',不是可以直接從電腦文件路徑中粘貼過來的
2. 打開文件 open()
f = open(r'C:\Users\Desktop\hello.txt',encoding='utf-8')
f.read()
print('讀取完畢')
# open('路徑', '模式', enconding = '編碼' )
# 模式:r:讀取文件岭埠,默認(rèn);w:寫入;rw:讀取+寫入枫攀;a:追加
# 簡答的讀取方法:.read() → 讀取后括饶,光標(biāo)將會留在讀取末尾
# 另外一種打開文件的方式,就不需要f.close()
with open(r'C:\Users\Desktop\hello.txt',encoding='utf-8') as f:
print(f.read())
print('讀取為空')
# 運行第一次.read()之后,光標(biāo)位于末尾来涨,再次讀取輸出為空
f.seek(0) # 將光標(biāo)重新移到開始
print(f.read())
print('第二次讀取')
# 所以現(xiàn)在用 f.seek(0) 來移動光標(biāo)
f.close()
# print(f.read()) # 關(guān)閉后無法讀取
# 關(guān)閉文件鏈接 f.close()图焰,養(yǎng)成一個好習(xí)慣
3. 系統(tǒng)模塊下的路徑操作? os
import os
① os.name??# 可以顯示正在使用的平臺,如果是windows蹦掐,則用‘nt’表示技羔,對Linux/Unix用戶,則是'posix'
② os.getcwd()? # 顯示當(dāng)前腳本的文件路徑
③ os.listdir()? ?# 顯示當(dāng)前文件夾下的所有文件
④ os.chdir('C:/Users/Desktop')? # 更改文件路徑卧抗,常用在爬蟲保存文件中
⑤?os.remove(***) # 刪除某某文件
⑥ os.path.split()? # 將文件的路徑以及相應(yīng)文件名分開? ? ?
⑦ os.path.exists() #判斷文件是否存在
⑧絕對路徑與相對路徑
#相對路徑與絕對路徑? ??
f1 = open('C:/Users/Desktop/hello.txt',encoding='utf-8')? ??
os.chdir('C:/Users/Desktop/')? ?
f2 = open('hello.txt',encoding='utf-8') #這種方式打開文件都會在該文件夾下 (在爬蟲的保存文件中非常常用)
4.? 讀取文件 read()藤滥、readline()、readlines()
5.?寫入文件 write()
6. pickle模塊的使用
pickle提供了一個簡單的持久化功能社裆∽景恚可以將對象以文件的形式存放在磁盤上。
python的pickle模塊實現(xiàn)了基本的數(shù)據(jù)序列和反序列化
通過pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\行的對象信息保存到文件中去泳秀,永久存儲
通過pickle模塊的反序列化操作标沪,我們能夠從文件中創(chuàng)建上一次程序保存的對象。
pickle.dump() / pickle.load()? ? ? ??文件后綴為pkl
-?END?-
讀書嗜傅、觀影
分享生活的碎片
? ? ? ?? ? 有理想的人不會傷心