国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python入門到高手進(jìn)階|這一篇就夠了(3萬字|超詳細(xì))

這篇具有很好參考價(jià)值的文章主要介紹了Python入門到高手進(jìn)階|這一篇就夠了(3萬字|超詳細(xì))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??作者簡(jiǎn)介:練習(xí)時(shí)長(zhǎng)兩年半的Java up主
??個(gè)人主頁:程序員老茶
?? ps:點(diǎn)贊??是免費(fèi)的,卻可以讓寫博客的作者開興好久好久??
??系列專欄:Java全棧,計(jì)算機(jī)系列(火速更新中)
?? 格言:種一棵樹最好的時(shí)間是十年前,其次是現(xiàn)在
??動(dòng)動(dòng)小手,點(diǎn)個(gè)關(guān)注不迷路,感謝寶子們一鍵三連

課程名:Python

內(nèi)容/作用:知識(shí)點(diǎn)/設(shè)計(jì)/實(shí)驗(yàn)/作業(yè)/練習(xí)

學(xué)習(xí):Python入門知識(shí)

課程:python

一、python介紹

1、基本介紹

? 吉多范羅蘇姆----荷蘭科學(xué)家
ABC語言:
? 優(yōu)點(diǎn):
? 語言簡(jiǎn)潔、代碼量少(C語言的1/4)、專為程序員設(shè)計(jì)等
? 缺點(diǎn):
? 不開放
?
1989年 圣誕節(jié) python(由來)
Python語言:
? 優(yōu)點(diǎn):
? 語言簡(jiǎn)潔、代碼量少(C語言的1/4),開放等

2、python的執(zhí)行方式

(1)非交互式解釋器(python2.x python3.x)
在python的終端運(yùn)行Python文件
$ python python文件
$ python3 python文件
(2)交互式解釋器—ipython
用戶編寫一行代碼,機(jī)器識(shí)別一行代碼
(3)集成開發(fā)環(huán)境—IDE
繼承了用戶所需要的環(huán)境與軟件

二、環(huán)境的安裝

1、解釋器

? 將用戶編寫的代碼解釋成二進(jìn)制語言,便于機(jī)器識(shí)別(機(jī)器能讀懂的語言)
流程:
? 用戶編寫python代碼-------解釋器解釋Python代碼-------操作系統(tǒng)------cpu執(zhí)行

2、環(huán)境的安裝

? 集成開發(fā)環(huán)境—Pycharm

三、版本的介紹

1、python2.x版本:

08年以前是python2.x版本,08年以后python3.x版本,python2.7和python2.8版本(向上兼容)
python2.x版本:

(1)保留了cmp函數(shù)

? 用于兩個(gè)對(duì)象進(jìn)行比較
cmp(a,b) #如果a>b,返回為1,a<b,返回-1,a=b,返回為0

(2)True、False是全局變量

True=10
False=“hello”

(3)python2版本默認(rèn)是ASCII編碼

a=50
b=“hello”
中國(guó)=“hello” #不支持

(4)print是作為一條語句,進(jìn)行輸出(打印)

print “hello” #控制臺(tái)輸出字符串hello
print(“hello”) #不支持
(5)保留了不等于符號(hào):!=、<>
2!=3
3<>3

2、python3.x版本:

(1)增加了operator模塊

lt(a,b)函數(shù): less than,小于,如果a<b,返回為真,否則返回假
le(a,b)函數(shù): less equal ,小于等于,如果a<=b,返回為真,否則返回為假
eq(a,b)函數(shù):equal,等于,如果a=b,返回為真,否則返回為假
gt(a,b)函數(shù):greater than ,大于,如果a>b,返回為真,否則返回為假
ge(a,b)函數(shù):greater equal ,大于等于,如果a>=b,返回真,否則返回為假

(2)True、False是關(guān)鍵字

True=“world” #報(bào)錯(cuò)
False=50 #報(bào)錯(cuò)

(3)python3解釋器是UTF-8編碼

a=“hello”
中國(guó)=“hello”

(4)print作為一個(gè)函數(shù),進(jìn)行輸出(打?。?/h4>

print(“hello world”) #輸出hello world
print “hello " #不支持

(5)保留了不等于符號(hào):!=,舍棄了<>

2!=3
2<>3 #不支持

#win+r------cmd-----python(進(jìn)入到Python的解釋器)

四、python的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

1、python作為一種面向?qū)ο蟮囊婚T語言
2、python社區(qū)集成了很多模塊,數(shù)據(jù)庫、tcp/ip、UDP、圖像處理、文本處理等等
3、語言簡(jiǎn)潔優(yōu)美
4、易擴(kuò)展性
5、易學(xué)習(xí)

缺點(diǎn)(特點(diǎn)):

1、單行語句(沒有分號(hào)“;”)
2、執(zhí)行速度慢
3、強(qiáng)制縮進(jìn)(沒有大括號(hào)“{}”)

五、第一個(gè)python程序

? print(“hello world”) #this is first python code

1、print()

? 將print函數(shù)里的帶的實(shí)參輸出到控制臺(tái),輸出

2、print函數(shù)帶的參數(shù)

? 參數(shù)是Python支持的數(shù)據(jù)類型(int、str、list、tuple、float等等)
例如:
? print(50)#輸出50
? print(“hello world”)
? print(12.356)
? print(num) #報(bào)錯(cuò)

3、注釋

(1)行注釋

? 意思就是注釋單行代碼,其他行代碼沒有注釋(將#后面的內(nèi)容全部注釋,其他行沒有注釋)
符號(hào):#
例如:

	#  hello world

(2)塊注釋

? 塊注釋是注釋多行代碼
符號(hào):三個(gè)雙引號(hào)"""或者是三個(gè)單引號(hào)
例如:

"""
print("hello world") #this is first python code
print("你好世界")
"""
'''
print("hello world") #this is first python code
print("你好世界")
'''

六、標(biāo)識(shí)符

? 標(biāo)識(shí)符一般是作為變量來使用
1、標(biāo)識(shí)符由字母、數(shù)字、下劃線組成
2、標(biāo)識(shí)符不能是關(guān)鍵字(避免使用關(guān)鍵字)
3、標(biāo)識(shí)符不能是以數(shù)字開頭
例如:
? _hello、5hjl(錯(cuò)誤)、@hj5(錯(cuò)誤)、shfiosfho、dgd5awe、¥sfsg(錯(cuò)誤)、ssg#949(錯(cuò)誤)

七、關(guān)鍵字

? 關(guān)鍵字是python內(nèi)部保留的一些字符,特定場(chǎng)景使用的字符
關(guān)鍵字如下:
? 查詢關(guān)鍵字的方式:win+r----cmd----python—help()----keywords
? 查詢關(guān)鍵字詳細(xì)介紹的方式:win+r----cmd----python—help()----keywords------break
離開幫助:
? help>quit

八、變量

? 變量的實(shí)質(zhì)就是標(biāo)識(shí)符,變量的內(nèi)容是可變的
例如:
? num、sum、shifhi、ncsfweg等等
注意:
? 變量不能獨(dú)立存在

1、整型:int

例如:
50、15、45、-15、-40等等
整型數(shù)據(jù)的存儲(chǔ):

格式:
	標(biāo)識(shí)符 =  整型值
例如:
	num=50
	num=40

2、字符串類型:str

? 用雙引號(hào)或者是單引號(hào)括起來的字符,稱之為字符串,嚴(yán)格來說稱之為字符序列
例如:
? “hello” ‘hello’ “1245” ‘你好,世界’ ‘a(chǎn)’ 等等
字符串的存儲(chǔ):

格式:
?	標(biāo)識(shí)符=字符串值
例如:
?	num="hello"
?	num='a'

后面會(huì)講:字符串的復(fù)制、拼接、截取或切片等等

3、浮點(diǎn)型:float

? 浮點(diǎn)型在數(shù)學(xué)中就是小數(shù)
例如:
? 1.2 1.355 1.4646 5.15
浮點(diǎn)型的存儲(chǔ):

格式:
?	標(biāo)識(shí)符=浮點(diǎn)型值
例如:
?	num=1.56
?	num=4.564

4、bool類型

關(guān)鍵字:True(真)、False(假)
一般用于條件判斷或者是循環(huán)條件判斷

5、列表、元組、詞典(字典)

6、全局變量與局部變量

(1)全局變量

? 存在于函數(shù)體外部的變量,稱之為全局變量,那么對(duì)于整個(gè)py文件都是可見的,沒有任何的作用域的限制;注意,在函數(shù)體內(nèi)部更新全局變量的值需要有關(guān)鍵字global來聲明
global:針對(duì)局部去修改全局變量的值

(2)局部變量

? 存在于函數(shù)體內(nèi)部的變量,稱之為局部變量,局部變量只對(duì)函數(shù)體內(nèi)有效(它的生命周期只存在于函數(shù)體內(nèi));注意,在函數(shù)體內(nèi)部的函數(shù)體內(nèi)部更新第一個(gè)函數(shù)體變量的值需要有關(guān)鍵字nonlocal來聲明
nonlocal:針對(duì)局部的局部去修改局部變量的值

7、工廠函數(shù)

? 工廠函數(shù)實(shí)質(zhì)就是:類型轉(zhuǎn)換(相當(dāng)于c語言中強(qiáng)制類型轉(zhuǎn)換)類似于與工廠生產(chǎn)產(chǎn)品一樣

(1)int(對(duì)象,基數(shù))

? 參數(shù):一定要是數(shù)字類型或者數(shù)字字符串類型,如20,“20”,
? 基數(shù):可有可無,如果沒有該基數(shù),默認(rèn)是十進(jìn)制,如
? 例如:
?

	int("20") #將字符串“20”轉(zhuǎn)換為整型的20
	int("20",8)#20是八進(jìn)制形式的,通過int轉(zhuǎn)換整形(十進(jìn)制)

(2)type(對(duì)象)

? 該函數(shù)時(shí)查看參數(shù)的數(shù)據(jù)類型
? 例如:?

	num=int("20")
	print(type(num))

(3)str(對(duì)象)

? 該函數(shù)就是將對(duì)象轉(zhuǎn)換為字符類型進(jìn)行輸出
? 例如:?

	num=20
	str(num) #將整形的num轉(zhuǎn)換為字符類型進(jìn)行輸出
	num=15.6
	str(num) #將浮點(diǎn)型的num轉(zhuǎn)換為字符類型進(jìn)行輸出

(4)float(對(duì)象)

? 該函數(shù)就是將對(duì)象轉(zhuǎn)換為浮點(diǎn)型進(jìn)輸出
? 例如:
?

	num=50
	print(float(num))

(5)list(對(duì)象)

? 該函數(shù)就是將對(duì)象轉(zhuǎn)換為列表類型進(jìn)行輸出,注意,對(duì)象是序列

(6)tuple(對(duì)象)

? 該函數(shù)將對(duì)象轉(zhuǎn)換為元組類型進(jìn)行輸出,注意,對(duì)象是序列

(7)dict(對(duì)象)

? 該函數(shù)將對(duì)象轉(zhuǎn)換為字典類型進(jìn)行輸出

(8)set(對(duì)象)

? 該函數(shù)將對(duì)象轉(zhuǎn)換為無序不重復(fù)的元素集,注意,對(duì)象是序列
? 例如:
?

	num="hello"
	counter="world"
	x=set(num) #將"hello"生存無序不重復(fù)的集合存入到x中
	y=set(counter) #將"world"生存無序不重復(fù)的集合存入到y(tǒng)中

符號(hào):&
該符號(hào)是求兩個(gè)集合的交集
格式:

集合1 & 集合2

? 例如:
?

	num="hello"
	counter="world"
	x=set(num) 
	y=set(counter)
	z=x & y
	print(z)

符號(hào):|
該符號(hào)是求兩個(gè)集合的并集
格式:

集合1 | 集合2

? 例如:
?

	num="hello"
	counter="world"
	x=set(num) 
	y=set(counter)
	z=x | y
	print(z)

符號(hào):-(減號(hào))
該符號(hào)是求兩個(gè)集合的差集
包含集合x中的元素,但不包含集合y中的元素
格式:

集合1 - 集合2

? 例如:

	num="hello"
	counter="world"
	x=set(num) 
	y=set(counter)
	z=x - y
	print(z)

符號(hào):^
該符號(hào)是求兩個(gè)集合的補(bǔ)集
包含集合x和集合y中的非共同元素
格式:

集合1 ^ 集合2

例如:

	num="hello"
	counter="world"
	x=set(num) 
	y=set(counter)
	z=x ^ y
	print(z)

九、print函數(shù)與input函數(shù)

1、print函數(shù)

? 該函數(shù)的作用將print所帶的參數(shù)輸出到控制臺(tái)
? print帶的參數(shù);
? 參數(shù)是python所支持的數(shù)據(jù)類型(int,str,float,list,tuple,ste,dict等)

(1)使用print函數(shù)直接進(jìn)行輸出

? 例如:

    num=50
    print(num)
    print50)
    num=“hello”
    print(num) #直接進(jìn)行輸出
    print"hello"

? 注意:
? 使用直接進(jìn)行輸出的方式可以連續(xù)輸出多個(gè)數(shù)據(jù)
? 格式:

print(數(shù)據(jù)1,數(shù)據(jù)2,...........#數(shù)據(jù)可以是具體的數(shù)據(jù),也可以是變量(注:變量一定要提前賦初始值)

? 例如:

	print50,“hello”)
    num=45
    counter="hello world"
    print(num , counter)

(2)使用%格式化進(jìn)行輸出

? 格式:

	print(“%格式控制符”%標(biāo)識(shí)符) #注:標(biāo)識(shí)符就是變量
	print(“%格式控制符1   ,%格式控制符2........%(標(biāo)識(shí)符1 , 標(biāo)識(shí)符2............)

? 格式控制符:
? d(整形)、o(八進(jìn)制)、x(十六進(jìn)制)、f(浮點(diǎn)型)、s(字符串型)等等
? 注意:
? a、print函數(shù)里一個(gè)格式控制符前必須要有一個(gè)%
? b、%格式控制符與后面的標(biāo)識(shí)符是一一對(duì)應(yīng)
? c、print函數(shù)里的雙引號(hào)后面沒有逗號(hào)
? d、格式控制符要與%結(jié)合使用
? e、標(biāo)識(shí)符與標(biāo)識(shí)符之間使用逗號(hào)隔開,并且逗號(hào)是英文格式
? 例如:

	num=52
    num2=20
    counter="hello world"
    print(“%d , %d”%(num,num2)print(“num=%d,counter=%s”%(num,counter)>>d(整形,十進(jìn)制)

? 例如:

	num=34
	print(“num=%d”%num) #輸出num=34

格式:

print(“{0}  ,  {1}  ,............format(標(biāo)識(shí)符1,標(biāo)識(shí)符2............))

例如:

	num=10
	counter=20
	print(“num={0} , counter={1}.format(num,counter))

(6)format高級(jí)用法

左對(duì)齊輸出x位
格式:

{<  x}   #如果沒有x,那么輸出就直接是左對(duì)齊,如果有x,控制輸出左對(duì)齊為x位,不足的補(bǔ)空格
print(“{< x}.format(標(biāo)識(shí)符))

例如:

num="hello"
print(“{< 10}.format(num)) #輸出左對(duì)齊為10位,不足的補(bǔ)空格

右對(duì)齊輸出x位
格式:

{>  x}   #如果沒有x,那么輸出就直接是右對(duì)齊,如果有x,控制輸出右對(duì)齊為x位,不足的補(bǔ)空格
print(“{> x}.format(標(biāo)識(shí)符))

例如:

num="hello"
print(“{> 10}.format(num)) #輸出右對(duì)齊為10位,不足的補(bǔ)空格	

中央對(duì)齊輸出x位
格式:

{^ x}   #中央對(duì)齊輸出x位
print(“{^ x}.format(標(biāo)識(shí)符))

例如:

num="hello"
print(“{^ 10}.format(num)) #輸出中央對(duì)齊為10位,不足的補(bǔ)空格

輸出十進(jìn)制
格式:

{:d}   
print(“{:d}.format(標(biāo)識(shí)符))  #將標(biāo)識(shí)符以10進(jìn)制形式輸出

例如:

num=50
print(“{:d}.format(num))

輸出八進(jìn)制
格式:

{:o}   
print(“{:o}.format(標(biāo)識(shí)符))  #將標(biāo)識(shí)符以八進(jìn)制形式輸出

例如:

num=50
print(“{:o}.format(num))

輸出十六進(jìn)制
格式:

{:x}   
print(“{:x}.format(標(biāo)識(shí)符))  #將標(biāo)識(shí)符以十六進(jìn)制形式輸出

例如:

num=50
print(“{:x}.format(num))
輸出浮點(diǎn)型數(shù)據(jù)

格式1:

{. x f}  #控制數(shù)據(jù)輸出小數(shù)點(diǎn)后x位	
print(“{.x f}.format(標(biāo)識(shí)符))

例如:

num=3.1415926
print(“{.2 f}.format(num))

格式2:

{:x.yf}  #控制數(shù)據(jù)輸出x位,并且保留小數(shù)點(diǎn)后y位 ,不足的補(bǔ)空格,默認(rèn)右對(duì)齊
	print(“{:x.y f}.format(標(biāo)識(shí)符))

例如:

	num=3.1415926
	print(“{10.2 f}.format(num))
	print(“{<10.2 f}.format(num))

(7)帶關(guān)鍵字format格式進(jìn)行輸出

格式:

print(“{a} ,  {b} ,............format(a=初始值 , b=初始值,............)) #a和b就是關(guān)鍵字

例如:

print(“num={num}  , counter={counter}.format(num=50 , counter="hello world"))

2、input函數(shù)

? 該函數(shù)用于從控制臺(tái)獲取用戶輸入的內(nèi)容,并存入到內(nèi)存中
格式:
?

input(字符串) 
或
input()

注意:
a、input函數(shù)帶的參數(shù)字符串可有可無,該字符串的作用僅僅只是提示,并且會(huì)在控制臺(tái)輸出該字符串
b、使用input函數(shù)獲取的用戶的輸入的內(nèi)容,就自動(dòng)轉(zhuǎn)換為字符串類型

十、運(yùn)算符

1、基本運(yùn)算符

(1)賦值運(yùn)算符:=

格式:

標(biāo)識(shí)符(變量)=初始值

使用:
將初始值存入到標(biāo)識(shí)符(變量)里
例如:

	num=50
	counter="hello"
	.............

(2)乘法運(yùn)算符:*

格式:
對(duì)象1 * 對(duì)象2
使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“”就表示對(duì)象1乘以對(duì)象2;如果對(duì)象1是字符串序列,對(duì)象2是整形的數(shù)字,那么符號(hào)“”就表示將對(duì)象1復(fù)制對(duì)象2次(參考字符串)
例如:

	num=50
	counter=15
	num * counter  #計(jì)算num和counter的乘積

(3)除法運(yùn)算符:/

格式:

對(duì)象1 / 對(duì)象2

使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“/”就表示對(duì)象1除以對(duì)象2,注,與C語言的符號(hào)“/”要區(qū)分開
例如:

	num=50
	counter=15
	num / counter  #計(jì)算num和counter的除法

(4)取整符號(hào)://

格式:
對(duì)象1 // 對(duì)象2
使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“//”就表示取對(duì)象1除以對(duì)象2的整數(shù)部分
例如:

	num=50
	counter=15
	num // counter  #計(jì)算num和counter相除的整數(shù)部分

(5)取余符號(hào):%

格式:

對(duì)象1  %  對(duì)象2

使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“%”就表示取對(duì)象1除以對(duì)象2的余數(shù)部分
例如:

	num=50
	counter=15
	num % counter  #計(jì)算num和counter相除的余數(shù)部分

(6)加法運(yùn)算符:+

格式:
對(duì)象1 + 對(duì)象2

使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“+”就表示計(jì)算對(duì)象1和對(duì)象2的和;如果對(duì)象1和對(duì)象2都是序列,那么符號(hào)“+”就表示對(duì)象1和對(duì)象2的拼接
例如:

	num=50
	counter=15
	num + counter  #計(jì)算num和counter的和

(7)減法運(yùn)算符:-

格式:

對(duì)象1 -  對(duì)象2

使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“-”就表示計(jì)算對(duì)象1和對(duì)象2的差;如果對(duì)象1和對(duì)象2都是集合,那么符號(hào)“-”就表示求對(duì)象1和對(duì)象2的差集
例如:

	num=50
	counter=15
	num - counter  #計(jì)算num和counter的差

(8)冪運(yùn)算符:**

格式:

對(duì)象1  **  對(duì)象2

使用:
如果對(duì)象1和對(duì)象2都是數(shù)字,那么符號(hào)“**”就表示求對(duì)象1的對(duì)象2次方
例如:

	num=50
	counter=15
	num ** counter  #計(jì)算num的counter次方

2、增強(qiáng)型運(yùn)算符

? 增強(qiáng)型運(yùn)算符就是結(jié)合了賦值運(yùn)算符和基本運(yùn)算符,稱之為增強(qiáng)型運(yùn)算符

(1)+=

格式:

對(duì)象1 +=對(duì)象2    #  對(duì)象1=對(duì)象1+對(duì)象2

使用:
將對(duì)象1加上對(duì)象2之后的結(jié)果再存入到對(duì)象1里
例如:

	num=50
	counter=40
	num+=counter  #num=num+counter

(2)-=

格式:

對(duì)象1 -=對(duì)象2   #對(duì)象1 = 對(duì)象1-對(duì)象2

使用:
將對(duì)象1減去對(duì)象2之后的結(jié)果再存入到對(duì)象1里
例如:

	num=50
	counter=40
	num-=counter  #num=num-counter	

(3)*=

(4)/=

(5)//=

(6)%=

(7)**=

參考加等于“+=”

(8)同步賦值運(yùn)算符

格式:

標(biāo)識(shí)符1  ,  標(biāo)識(shí)符2  =   初始值1  ,  初始值2

例如:

num ,  counter  =  10  ,  20   #將10賦值給num的同時(shí)將20賦值給counter

3、比較運(yùn)算符

(1)>:大于運(yùn)算符

格式:

對(duì)象1 > 對(duì)象2

使用:
如果對(duì)象1大于對(duì)象2,那么該表達(dá)式返回為真,否則,返回為假
例如:

10>20   #假----False

(2)<:小于運(yùn)算符

格式:

對(duì)象1 < 對(duì)象2

使用:
如果對(duì)象1小于對(duì)象2,那么該表達(dá)式返回為真,否則,返回為假
例如:

10<20   #真---True

(3)>=:大于等于運(yùn)算符

格式:

對(duì)象1  >= 對(duì)象2

使用:
如果對(duì)象1大于等于對(duì)象2,那么該表達(dá)式返回為真,否則,返回為假

(4)<=:小于等于運(yùn)算符

格式:

對(duì)象1  <= 對(duì)象2

使用:
如果對(duì)象1小于等于對(duì)象2,那么該表達(dá)式返回為真,否則,返回為假
例如:

10<=20   #True

(5)==:等于運(yùn)算符

格式:

對(duì)象1  == 對(duì)象2

使用:
如果對(duì)象1等于對(duì)象2,那么該表達(dá)式返回為真,否則,返回為假
例如:

10==20  #False

(6)注意的點(diǎn)

? python里的比較運(yùn)算符可以相互的結(jié)合使用,跟C語言區(qū)分開
例如:?

2>4>5   #python
2>4  && 4>5   #C 

4、同一性運(yùn)算符

? 是指兩個(gè)對(duì)象是否是指向同一塊內(nèi)存空間,如果是,那么就是同一性,否則就不是同一性

(1)is運(yùn)算符

格式:

標(biāo)識(shí)符1   is  標(biāo)識(shí)符2 

使用:
如果標(biāo)識(shí)符1和標(biāo)識(shí)符2都是指向同一塊內(nèi)存空間,那么該表達(dá)式就輸出為真(True),否則,輸出為假(False)
例如:

num=50
counter=50
num is counter   #True
num=500
counter=500
num is counter  #False

注:
解釋器里預(yù)留了-5-256數(shù)據(jù)

(2)is not

格式:

標(biāo)識(shí)符1  is not  標(biāo)識(shí)符2

使用:
如果標(biāo)識(shí)符1和標(biāo)識(shí)符2不是指向同一塊內(nèi)存空間,那么該表達(dá)式就輸出為真(True),否則,輸出為假(False)

例如:

	num=50
	counter=50
	num is not counter   #False
	num=50
	counter=60
	num is not counter   #True

5、邏輯運(yùn)算符

(1)and:邏輯與運(yùn)算符

格式:

對(duì)象1  and 對(duì)象2  #對(duì)象1和對(duì)象2可以是表達(dá)式

使用:
如果對(duì)象1和對(duì)象2同時(shí)成立(同時(shí)為真),那么該表達(dá)式才成立(返回為真);只要對(duì)象1和對(duì)象2任意一個(gè)不成立(為假),那么整個(gè)表達(dá)式不成立(為假)
例如:

3>2  and  5>4   #一般該表達(dá)式存在于if或則while中

注意:
如果對(duì)象1 and 對(duì)象2獨(dú)立存在,該表達(dá)式從左往右執(zhí)行,如果遇到對(duì)象不成立,那么就輸出對(duì)象不成立的結(jié)果;只要對(duì)象1和對(duì)象2同時(shí)成立,那么就輸出對(duì)象2的結(jié)果(一般認(rèn)為0就表示假,大于0就表示真)

(2)or:邏輯或運(yùn)算符

格式:

對(duì)象1  or  對(duì)象2   #對(duì)象1和對(duì)象2可以是表達(dá)式

使用:
如果對(duì)象1和對(duì)象2任意一個(gè)成立(為真),那么該表達(dá)式就成立(返回為真);只要對(duì)象1和對(duì)象2同時(shí)不成立(為假),那么整個(gè)表達(dá)式不成立(為假)
例如:

5>4  or  4<3  #True

注意:
如果對(duì)象1 and 對(duì)象2獨(dú)立存在,該表達(dá)式從左往右執(zhí)行,如果遇到對(duì)象成立,那么就輸出對(duì)象成立的結(jié)果;只要對(duì)象2和對(duì)象2同時(shí)不成立,那么就輸出對(duì)象2的結(jié)果(一般認(rèn)為0就表示假,大于0就表示真)

(3)not:邏輯非運(yùn)算符

格式:

not 對(duì)象

使用:
如果對(duì)象成立,那么整個(gè)表達(dá)式不成立(為假),反之,整個(gè)表達(dá)式成立(為真)
例如:

not 3>4  #True

(4)邏輯運(yùn)算符的優(yōu)先級(jí)

not>and>or

6、位運(yùn)算

? 位運(yùn)算是針對(duì)二進(jìn)制的每一位對(duì)應(yīng)進(jìn)行運(yùn)算

(1)按位與運(yùn)算:&

? 格式:

對(duì)象1   &  對(duì)象2

? 使用:
? 將對(duì)象1和對(duì)象2轉(zhuǎn)換為二進(jìn)制,然后讓對(duì)象1和對(duì)象2的二進(jìn)制的每一位對(duì)應(yīng)進(jìn)行相與
例如:
?

50二進(jìn)制:   0  1  1  0  0  1  0
85二進(jìn)制:   1  0  1  0  1  0  1  
50 & 85=   0  0  1  0  0  0  0  = 16

(2)按位或運(yùn)算:|

格式:

對(duì)象1  |   對(duì)象2

使用:
將對(duì)象1和對(duì)象2轉(zhuǎn)換為二進(jìn)制,然后讓對(duì)象1和對(duì)象2的二進(jìn)制的每一位對(duì)應(yīng)進(jìn)行相或

例如:

50二進(jìn)制:   0  1  1  0  0  1  0
85二進(jìn)制:   1  0  1  0  1  0  1 
50 | 85=    1  1  1   0  1  1  1  = 119

(3)按位異或運(yùn)算:^

格式:

對(duì)象1  ^  對(duì)象2

使用:
將對(duì)象1和對(duì)象2轉(zhuǎn)換為二進(jìn)制,然后讓對(duì)象1和對(duì)象2的二進(jìn)制的每一位對(duì)應(yīng)進(jìn)行異或
異或:
相同為0,不同為1
例如:

50二進(jìn)制:   0  1  1  0  0  1  0
85二進(jìn)制:   1  0  1  0  1  0  1 
50 ^ 85 = 1  1  0  0  1  1  1  = 103
50 ^ 85 = 1  1  0  0  1  1  1  ^ 50  
		=1  1  0  0  1  1  1  ^
		 0  1  1  0  0  1  0
		 0  1  1  0  0  1  0

練習(xí):實(shí)現(xiàn)兩個(gè)數(shù)的交換

(4)按位取反:~

格式:

~ 對(duì)象

使用:
將對(duì)象轉(zhuǎn)為二進(jìn)制,然后讓對(duì)象的二進(jìn)制的每一位進(jìn)行取反(0-1,1-0)

例如:

50二進(jìn)制:1  1  0  0  1  0
	~500   0  1  1  0  1

(5)左移位運(yùn)算:<<

格式:

對(duì)象  << n

使用:
將對(duì)象轉(zhuǎn)為二進(jìn)制,然后讓對(duì)象的二進(jìn)制的每一位左移n位,右補(bǔ)n個(gè)0
例如:

10的二進(jìn)制:1010
	10  << 2   #將10的二進(jìn)制左移2位,右補(bǔ)2個(gè)0

(6)右移位運(yùn)算:>>

格式:

對(duì)象  >>  n

使用:
將對(duì)象轉(zhuǎn)為二進(jìn)制,然后讓對(duì)象的二進(jìn)制的每一位右移n位,左補(bǔ)n個(gè)0,同時(shí)去掉n個(gè)位置的數(shù)據(jù)
例如:

10的二進(jìn)制:1010
	10  >> 20010    =2

十一、常用基礎(chǔ)語句

1、if條件語句

? 該語句是用于判斷條件是否成立,如果條件成立,則執(zhí)行相應(yīng)的語句塊,否則就不執(zhí)行
關(guān)鍵字:if
格式:

if  判斷條件  :
        語句1
        語句2
        .............

注意:
(1)if語句中的關(guān)鍵字if不能省略
(2)判斷條件的結(jié)果是真(條件成立)假(條件不成立)類型(比較運(yùn)算等),判斷條件可以用括號(hào)括起來,但一般省略
(3)判斷條件后的冒號(hào)“:”不能省略
(4)if條件語句里的內(nèi)容一定要縮進(jìn)
(5)關(guān)鍵字if后面的判斷條件如果沒有用括號(hào)括起來那么if和判斷條件之間需要加上空格,反之不用加上空格
例如:

if 2>1:   #2>1條件成立
    print("2大于1")   #執(zhí)行
    print("hello world")  #執(zhí)行
print("你好,世界")

(1)if語句的嵌套

格式:

if   條件1  :
	      語句1
	      語句2
          ......
         if   條件2   :
                語句3
                語句4
                ......
                if       條件3  :
                         語句5
                          .............

使用:
當(dāng)條件1滿足的前提下,執(zhí)行語句1、2,再判斷條件2,當(dāng)條件2滿足的條件下,執(zhí)行語句3、4,再判斷條件3,當(dāng)條件3滿足的情況下,執(zhí)行語句5…;如果當(dāng)條件1不滿足的情況下,之后的內(nèi)容都不執(zhí)行

例如:

num=int(input("請(qǐng)輸入一個(gè)數(shù)字:"))
if num>10:
    print("%d數(shù)字是大于10的"%num)
    if num>40:
        print("%d數(shù)字是大于40的" % num)
        if num>80:
            print("%d數(shù)字是大于80的" % num)

2、if…else語句

? 判斷if后面的條件是否成立,如果成立,則執(zhí)行if語句塊里的內(nèi)容,不執(zhí)行else語句塊里的內(nèi)容;如果不成立,則執(zhí)行else語句塊里的內(nèi)容
關(guān)鍵字:if、else
格式:

if   條件  :
	      語句1
	      語句2
	      ...........
else  :
       語句3
                  語句4
                  ............

例如:

num=int(input("請(qǐng)輸入一個(gè)年齡:"))
if num>50:
    print("你太老了,快去享受退休生活")
else:
    print("你還太年輕,抓緊學(xué)習(xí)")

注意事項(xiàng):
(1)else是和if語句成對(duì)出現(xiàn)(只要有else,必定會(huì)有if)
(2)if判斷條件后面的冒號(hào)“:”不能省略
(3)else語句后面沒有判斷條件
(4)else語句后面的冒號(hào)“:”不能省略

(1)if…else語句的嵌套

格式:

if    條件1  :
		語句1
		if  條件2   :
			語句5
		else :
			語句6
else:
    語句2
    if   條件3  :
           語句3
    else:
           語句4

例如:

num=int(input("請(qǐng)輸入一個(gè)年齡:"))
if num>50:
    print("你太老了,快去享受退休生活")
    if num>60:
        print("年齡也老")
        if num>75:
            print("你75歲")
    else:
        print("你還好")
else:
    print("你還太年輕,抓緊學(xué)習(xí)")
    if num>20:
        print("你才20歲")
    else:
        print("你太小了")

?

3、if …elif…elif…

格式:

if  條件1  :
		語句1
	elif  條件2:
		語句2
	elif 條件3 :
		語句3
	.......

解釋:
如果條件1滿足,那么就執(zhí)行語句1,如果條件2滿足,則執(zhí)行語句2,如果條件3滿足,則執(zhí)行語句3,…;在任意時(shí)刻只滿足一個(gè)條件或則是所有條件都不滿足
例如:

num=9
if 0<num<10:
    print("num是屬于0-10之間的數(shù)")
elif 10<num<20:
    print("num是屬于10-20之間的數(shù)")
elif 20<=num<30:
    print("num是屬于20-30之間的數(shù)")

4、if …elif…elif…else

格式:

if  條件1  :
		語句1
	elif  條件2:
		語句2
	elif 條件3 :
		語句3
	.......
	else:
		語句n

解釋:
如果條件1滿足,那么就執(zhí)行語句1,如果條件2滿足,則執(zhí)行語句2,如果條件3滿足,則執(zhí)行語句3,…;在任意時(shí)刻只滿足一個(gè)條件

注意:(1)if和elif的條件避免交叉

5、for循環(huán)

該循環(huán)一直去判斷用戶給定的條件,如果條件一直成立,那么就一直執(zhí)行for循環(huán)里的內(nèi)容,否則跳出該循環(huán)
關(guān)鍵字:for、in
格式:

	for  標(biāo)識(shí)符(變量)   in   序列  :
		語句1
		語句2
		...............

解釋:
該循環(huán)每循環(huán)一次就從序列里面取一個(gè)值出來存入到標(biāo)識(shí)符里,如果序列是無限的,那么該for循環(huán)就是死循環(huán)
注意:
(1)關(guān)鍵字for和in不能省略
(2)序列可以是字符串、列表、元組、集合等等
(3)for語句塊里的語句注意縮進(jìn)

例如:

num="hello world"
for i in num:
    print("取的值:",i,"類型:",type(i))

(1) range函數(shù)

》》range函數(shù)
該函數(shù)的作用是生成一個(gè)有序不重復(fù)的整型數(shù)據(jù)序列
原型:

range(start,end,step)

參數(shù):
(1)start:生成從start開始的整型數(shù)據(jù)序列,如果start參數(shù)不寫,那么默認(rèn)是從0開始生成整型數(shù)據(jù)序列
(2)end:生成一個(gè)整型的數(shù)據(jù)序列直到end-1結(jié)束
(3)step:生成的整型數(shù)據(jù)序列的步進(jìn)值(步長(zhǎng)),如果step參數(shù)不寫,默認(rèn)step的值為1

例如:

for i in range(2,8,1):
    print("取得值:",i,"類型:",type(i)) #生成2-7的序列
for i in range(8):
    print("取得值:",i,"類型:",type(i))  #生成0-7的序列

練習(xí):#計(jì)算任意兩個(gè)數(shù)之間的數(shù)字和,100 250 :100+101+…+250
#1、計(jì)算500-1000的和
#2、計(jì)算1-100的偶數(shù)和(奇數(shù)和)

(2)for循環(huán)的嵌套

格式:

for  標(biāo)識(shí)符1  in   序列1#序列1里面有4個(gè)數(shù)
		for 標(biāo)識(shí)符2  in 序列2#序列2里面有5個(gè)數(shù)
			for 標(biāo)識(shí)符3  in  序列3#序列3里面有6個(gè)數(shù)
				語句3
				................. 

解釋:
第一個(gè)for循環(huán)循環(huán)1次,第二個(gè)for循環(huán)就循環(huán)5次,第三個(gè)for循環(huán)循環(huán)56次;對(duì)于上面的格式來說,總共循環(huán)45*6=120次
例如:

for i in "he":  #2次
    for j in "hel":   #3次
        for k in "hell":  #4次
            print("hello") #hello打印多少次?答案:24次	

6、while循環(huán)

? 該循環(huán)是指只要循環(huán)條件一直成立,那么就一直執(zhí)行while循環(huán)體里的內(nèi)容,稱之為死循環(huán),只要循環(huán)條件不成立,那么就跳出該while循環(huán)
格式:

	while  條件  :  #條件一般是由比較運(yùn)算符組成(具體根據(jù)實(shí)際情況而定)
		語句1
		......

例如:

	while  2>1  :
		print("hello world")

注意:
如果需要控制while循環(huán)的次數(shù),就通過修改while循環(huán)后的條件(僅限此處)

7、break語句

? 該語句用于打破循環(huán)(跳出循環(huán)),只要程序一旦執(zhí)行到break語句,那么整個(gè)循環(huán)就結(jié)束,break后面的代碼也不會(huì)執(zhí)行(break語句放在循環(huán)內(nèi))
格式:

	break   #終止循環(huán)

例如:

while  Trueprint("hello world")
		break
		print(“你好,世界!”)
	print(“世界,你好”)

8、continue語句

? 該語句用于循環(huán)中,作用是終止本次循環(huán),只要程序一旦執(zhí)行到continue語句,那么當(dāng)次循環(huán)就結(jié)束,continue語句后面的代碼也不會(huì)執(zhí)行(continue放在循環(huán)內(nèi))
格式:
?

continue  #終止本次循環(huán)

例如:

i=0
while i<10:
    i+=1
    if i==5:
        continue
    print("i=",i)

9、pass語句

? 該語句是一個(gè)空語句,為了增加程序的可讀性
格式:

pass   #放在程序的任意位置

十二、字符串

? Python里的字符串是基本的數(shù)據(jù)類型,是由單引號(hào)或者是雙引號(hào)括起來的數(shù)據(jù),稱之為字符串,或者是字符序列
例如:
? “hello ” “中國(guó)” ‘world’ “hello ‘world’” "hello “hello"world”
注意:
(1)字符串里可以是中文、英文、數(shù)字等等
(2)字符串里可以包含子字符串,外層字符串的符號(hào)和內(nèi)層字符串的符號(hào)不能相同(如果外層用雙引號(hào),那么內(nèi)層不能用雙引號(hào),或則外層用單引號(hào),內(nèi)層不能用單引號(hào))

1、字符串的賦值

? 相當(dāng)于是給變量賦值一個(gè)字符串
格式:

標(biāo)識(shí)符  =  字符串

例如:

	num ="hello "
	numm="world"

注意:
(1)如果想要?jiǎng)?chuàng)建多行字符串并且將字符串賦值給標(biāo)識(shí)符,那么就將多行字符串用三個(gè)單引號(hào)或者是三個(gè)雙引號(hào)括起來
例如:

	num="""
	hello
	world
	hello world
	......
	"""

(2)python里的字符串支持空字符串或者空格字符串
例如:

	str=''
	str=" "

2、與字符串相關(guān)的函數(shù)

(1)len函數(shù)

? 該函數(shù)求字符串的長(zhǎng)度
格式:

len(“字符串”) #求字符串的長(zhǎng)度

例如:

len(“hello”)  #5

(2)replace函數(shù)

? 該函數(shù)是替換字符串中的數(shù)據(jù)
格式:

字符串 . replace(舊的字符串,新的字符串)

例如:

	str="hello"   #將“hello”中的"h"替換為“w”
	str.replace(“h”,“w”)

3、字符串的復(fù)制

? 是指將字符串復(fù)制n份
符號(hào):*
格式:
? 字符串 * n
解釋:
? 將字符串復(fù)制n份
例如:
? str=“hello”
? str*3 #將“hello”復(fù)制3份

4、字符串的訪問

? 是指用戶一般需要去訪問或者是獲取字符串里的字符
字符串的編碼:系統(tǒng)會(huì)自動(dòng)給字符串編一個(gè)下標(biāo)碼(類似于數(shù)組)

(1)正向編碼

? 字符串的下標(biāo)是從左往右依次開始從0遞增進(jìn)行編碼
? “ h e l l o w o r l d”
----> 0 1 2 3 4 5 6 7 8 9

(2)反向編碼

? 字符串的下標(biāo)是從右往左依次開始從-1遞減進(jìn)行編碼
? “ h e l l o w o r l d”
? -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 <-------

字符串的訪問:
(1)正向訪問
正向訪問是指通過字符串的正向下標(biāo)對(duì)字符串里的內(nèi)容進(jìn)行訪問
符號(hào):[]
格式:
字符串 [ 正向下標(biāo) ] #訪問字符串中正向下標(biāo)對(duì)應(yīng)的字符
例如:
str=“hello world”
str [5] #訪問str中下標(biāo)為5對(duì)應(yīng)的元素
str [3] #訪問str中下標(biāo)為3對(duì)應(yīng)的元素

(2)反向訪問
反向訪問是指通過字符串的反向下標(biāo)對(duì)字符串里的內(nèi)容進(jìn)行訪問
符號(hào):[]
格式:
字符串 [ 反向下標(biāo) ] #訪問字符串中反向下標(biāo)對(duì)應(yīng)的字符
例如:
str=“hello world”
str [-6] #訪問str中下標(biāo)為-6對(duì)應(yīng)的元素:’ ’
str [-3] #訪問str中下標(biāo)為-3對(duì)應(yīng)的元素:“r”

5、字符串的截取或切片

? 是指從字符串里截取一段子字符串出來

(1)正向截取

(包頭(start)不包尾(end))
前提是字符串的下標(biāo)編碼是正向編碼
符號(hào):[]
格式:
[start : end : step]
參數(shù):
a、start:字符串的截取從start位置開始從左往右截取,如果start參數(shù)不寫,那么默認(rèn)是從下表為0開始進(jìn)行截取
b、end:字符串的截取直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)數(shù)據(jù)(包含最后一個(gè)數(shù)據(jù))
c、step:字符串截取的步長(zhǎng),注意,step的絕對(duì)值表示截取的步長(zhǎng),step的正負(fù)值表示截取的方向,如果step不寫,默認(rèn)截取的步長(zhǎng)為1,截取的方向從左往右
例如:
str=“hello world”
str[2:4] #ll
str[0:5] #hello
str[:5] #hello
str[1:8:3] #eoo
str[2:0:-1] #截取le #多去練一練
str[::-1] #特殊情況,字符串的反轉(zhuǎn)
str[::1]
str[::]

(2)反向截取

(包頭(start)不包尾(end))
前提是字符串的下標(biāo)編碼是反向編碼
符號(hào):[]
格式:
[start : end : step]
參數(shù):
a、start:字符串的截取從start位置開始從左往右截取,如果start參數(shù)不寫,那么默認(rèn)是從左邊第一個(gè)數(shù)據(jù)開始進(jìn)行截取
b、end:字符串的截取直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)數(shù)據(jù)(包含最后一個(gè)數(shù)據(jù))
c、step:字符串截取的步長(zhǎng),注意,step的絕對(duì)值表示截取的步長(zhǎng),step的正負(fù)值表示截取的方向,如果step不寫,默認(rèn)截取的步長(zhǎng)為1,截取的方向從左往右
例如:
str=“hello world”
str[-11:-9] #he
str[:-9] #he
str[-9:] #“l(fā)lo world”
str[::] #“hello world”
str[-3:-8:-1] # “row o” 特殊情況

6、字符串的拼接

(1)使用加號(hào)“+”來實(shí)現(xiàn)兩個(gè)字符串的拼接
格式:
字符串1 + 字符串2
例如:
str1=“hello”
str2=“world”
str=str1+str2 #“helloworld”
(2)兩個(gè)字符串直接進(jìn)行拼接
格式:
字符串1字符串2
例如:
str1=“hello”
str2=“world”
str=str1str2 #報(bào)錯(cuò),str1str2標(biāo)識(shí)符沒有被定義
str=“hello”“world” #“helloworld”

十三、列表:list

? 列表也是Python里內(nèi)置的一種基本數(shù)據(jù)類型(列表也是一種序列),它是用于存儲(chǔ)數(shù)據(jù)(與數(shù)組類似),并且數(shù)據(jù)的類型可以不相同(與數(shù)組的區(qū)別)
符號(hào):[]
格式:
? [數(shù)據(jù)1,數(shù)據(jù)2,[數(shù)據(jù)3,數(shù)據(jù)4,…]]
例如:
? [1,2,3,4] [1,1.2,1.2344] [1,1,566,“hello”] [3,“hello”,“你好”,[1,2,4]]

總結(jié):
(1)列表中的數(shù)據(jù)元素的類型可以是相同的,也可以是不同的
(2)列表中的元素之間是用逗號(hào)隔開“,”,注意逗號(hào)是英文格式的
(3)列表支持空列表:list=[]

1、列表的初始化

格式:
標(biāo)識(shí)符 = 列表
例如:
list=[1,2,3,4]

2、列表與數(shù)組的區(qū)別

相同點(diǎn):
(1)數(shù)組和列表都是用于存儲(chǔ)數(shù)據(jù)
(2)數(shù)組和列表中的元素都是以逗號(hào)隔開
(3)數(shù)組和列表都有下標(biāo),并且下標(biāo)是正向編碼

不同點(diǎn):
(1)數(shù)組要求存的數(shù)據(jù)的類型必須一致
(2)數(shù)組只能正向編碼,而列表可以反向編碼
(3)數(shù)組一旦聲明大小就固定,而列表聲明了之后,大小不固定

3、列表的訪問

? 與字符串一樣,可以訪問(獲取)列表中的元素
正向編碼:
? 列表中的元素從左往右從0依次開始遞增編碼
反向編碼:
? 列表中的元素從右往左從-1依次開始遞減編碼
列表的訪問:
(1)正向訪問
符號(hào):[]
格式:
? 列表 [ 下標(biāo) ]
例如:
? list=[ 1 , 2 , 3 , 4 , 5 , 6]
----> 0 1 2 3 4 5
? list[3] #4
? …
(2)反向訪問
符號(hào):[]
格式:
? 列表 [ 下標(biāo) ]
例如:
? list=[“hello” , “world” , “hello world”]
? -3 -2 -1 <--------------
? list[-1] #“hello world”

4、列表的截取或切片

(1)正向截取(包頭不包尾)
注意:正向截取的下標(biāo)編碼是正向編碼
格式:
[start : end : step]
參數(shù):
a、start:列表的截取從start開始進(jìn)行截取,如果start不寫,默認(rèn)是從下標(biāo)為0的元素開始進(jìn)行截取
b、end:列表的截取一直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)元素
c、step:截取的步長(zhǎng),絕對(duì)值表示步長(zhǎng),正負(fù)值代表方向,如果step不寫,默認(rèn)截取的步長(zhǎng)是1,并且截取的方向是從左往右
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list[0:3:1] #[“hello” , “world” , “你好”]
list[:3:1] #[“hello” , “world” , “你好”]
list[0::1] #[“hello” , “world” , “你好” , “世界” , “1234”]
list[0:3] #[“hello” , “world” , “你好”]
list[::] #[“hello” , “world” , “你好” , “世界” , “1234”]

(2)反向截?。ò^不包尾)
注意:反向截取的下標(biāo)編碼是反向編碼
格式:
[start : end : step]
參數(shù):
a、start:列表的截取從start開始進(jìn)行截取,如果start不寫,默認(rèn)是從左邊的的第一個(gè)元素開始進(jìn)行截取
b、end:列表的截取一直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)元素
c、step:截取的步長(zhǎng),絕對(duì)值表示步長(zhǎng),正負(fù)值代表方向,如果step不寫,默認(rèn)截取的步長(zhǎng)是1,并且截取的方向是從左往右
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list[-4??1] #[“world” , “你好” , “世界”]
list[??1] #[“hello” , “world” , “你好” , “世界” ]
list[-4::1] #[ “world” , “你好” , “世界” , “1234”]

5、列表的增、刪、改、查

(1)列表的增加

a、append函數(shù)
向指定列表中添加指定的數(shù)據(jù)元素,并且數(shù)據(jù)元素是單個(gè)進(jìn)行添加,并且是以追加的形式添加
格式:
列表 . append(數(shù)據(jù)元素) #將數(shù)據(jù)元素添加到列表的尾部
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.append(“今天是星期一”)#將今天是星期一”添加到list的尾部
list.append(15) #將15添加到list的尾部

b、extend函數(shù)
向指定列表中添加指定的數(shù)據(jù)元素,數(shù)據(jù)元素是多個(gè)進(jìn)行添加,并且是以追加的形式添加
格式:
列表 . extend(列表類型) #將列表類型的數(shù)據(jù)添加到列表的尾部
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.extend([“123456”,“654321”])
c、insert函數(shù)
向指定列表中指定的位置插入指定的數(shù)據(jù)元素,原來該位置的元素自動(dòng)往后挪一位
格式:
列表 . insert(下標(biāo) , 數(shù)據(jù)) #向列表中的下標(biāo)位置插入數(shù)據(jù)
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.insert(0,“boss”) #將boss插入到list的第0個(gè)位置

(2)列表的刪除

a、pop函數(shù)
pop函數(shù)刪除列表中頂部的元素
格式:
列表 . pop() #刪除列表中的頂部元素
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.pop() #刪除“1234”
b、pop(下標(biāo))函數(shù)
pop(下標(biāo))函數(shù)刪除列表中指定下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
格式:
列表 . pop(下標(biāo)) #刪除列表中下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.pop(1) #刪除下標(biāo)為1對(duì)應(yīng)的數(shù)據(jù)元素
c、remove函數(shù)
該函數(shù)刪除列表中指定的數(shù)據(jù)元素
格式:
列表 . remove(列表中的數(shù)據(jù)元素) #刪除列表中指定的數(shù)據(jù)元素
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.remove(“world”) #將“world”從list中移除掉
d、del關(guān)鍵字
該關(guān)鍵字刪除列表及列表中的所有元素
格式:
del 列表 #刪除列表及列表中的數(shù)據(jù)元素
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
del list

e、clear函數(shù)

清空列表中的數(shù)據(jù)元素

(3)列表的修改

? 可以修改列表中指定下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
符號(hào):[]
格式:
? 列表 [ 下標(biāo) ] = 新的數(shù)據(jù)
例如:
? list=[“hello” , “world” , “你好” , “世界” , “1234”]
? list [1]=“boss” #將list中下標(biāo)為1的數(shù)據(jù)元素更改為“boss”

(4)列表的查詢

? 可以查詢列表中數(shù)據(jù)元素的個(gè)數(shù)、相同數(shù)據(jù)元素出現(xiàn)的個(gè)數(shù)、查詢下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素、查詢數(shù)據(jù)元素對(duì)應(yīng)的下標(biāo)等等
a、len函數(shù)
? len函數(shù)可以查詢列表中元素的個(gè)數(shù)
格式:
? len(列表)
例如:
? list=[“hello” , “world” , “你好” , “世界” , “1234”]
? len(list) #5
b、count()函數(shù)
? 該函數(shù)可以查詢列表中相同元素出現(xiàn)的個(gè)數(shù)
格式:
? 列表 . count(數(shù)據(jù))
例如:
? list=[“hello” , “world” , “你好” , “世界” , “1234”]
? list.count(“hello”) #查詢“hello”在list中出現(xiàn)的次數(shù)
c、查詢下表對(duì)應(yīng)的數(shù)據(jù)元素
格式:
? 列表 [下標(biāo)] #查詢到下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
例如:
? list=[“hello” , “world” , “你好” , “世界” , “1234”]
? print(list[0]) #查詢到下標(biāo)為0對(duì)應(yīng)的數(shù)據(jù)元素:“hello”

d、index函數(shù)
該函數(shù)可以查詢列表中數(shù)據(jù)元素對(duì)應(yīng)的下標(biāo)
格式:
列表 . index(數(shù)據(jù))
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list.index(“world”) #查詢list中“world對(duì)應(yīng)的下標(biāo)”

6、列表的拼接

符號(hào):+
格式:
列表1 + 列表2
例如:
list1=[10,20]
list2=[30,40]
list=list1+list2

7、列表的賦值

符號(hào):*
格式:
列表 * n
解釋:
將列表復(fù)制n份
例如:
list=[10]
list * 3 #將list復(fù)制3份

十四、元組:tuple

? 元組也是Python里提供的一種基本數(shù)據(jù)類型,類似于列表,可以存儲(chǔ)數(shù)據(jù),數(shù)據(jù)的類型也可以不一致

1、元組的初始化

符號(hào): ( )
格式:
標(biāo)識(shí)符 = (數(shù)據(jù)1 , 數(shù)據(jù)2 ,…,)
例如:
tuple = (10 , 20 , “hello”,“world”,)

注意:
(1)元組的聲明是用括號(hào)“()”進(jìn)行聲明
(2)元組中的數(shù)據(jù)元素之間是用逗號(hào)“,”
(3)元組中的數(shù)據(jù)元素的類型可以不一致
(4)元組一旦聲明,那么就不能隨意更改元組中的內(nèi)容,可以看成是一個(gè)常量
(5)元組里的數(shù)據(jù)后面以逗號(hào)結(jié)尾(注,如果是單個(gè)數(shù)據(jù)必須加逗號(hào)才表示是元組,如果是多個(gè)數(shù)據(jù),逗號(hào)可以省略)

2、元組的訪問

(1)正向編碼:元組的下標(biāo)從左往右依次從0開始遞增進(jìn)行編碼
例如:
(10 , 20 , “hello”,“world”)
0 1 2 3
(2)反向編碼:元組的下標(biāo)從右往左依次從-1開始遞減進(jìn)行編碼
例如:
(10 , 20 , “hello”,“world”)

 -4       -3            -2                -1

元組的訪問:
(3)正向訪問
符號(hào):[]
格式:
元組 [ 下標(biāo) ] #訪問到下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
例如:
tuple= (10 , 20 , “hello”,“world”)
tuple [ 2 ]

(4)反向訪問
符號(hào):[]
格式:
元組 [ 下標(biāo) ] #訪問到下標(biāo)對(duì)應(yīng)的數(shù)據(jù)元素
例如:
tuple= (10 , 20 , “hello”,“world”)
tuple [ -2 ]

3、元組的截取或切片

(參考列表或字符串)
(1)正向截取(包頭不包尾)
注意:正向截取的下標(biāo)編碼是正向編碼
格式:
[start : end : step]
參數(shù):
a、start:列表的截取從start開始進(jìn)行截取,如果start不寫,默認(rèn)是從下標(biāo)為0的元素開始進(jìn)行截取
b、end:列表的截取一直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)元素
c、step:截取的步長(zhǎng),絕對(duì)值表示步長(zhǎng),正負(fù)值代表方向,如果step不寫,默認(rèn)截取的步長(zhǎng)是1,并且截取的方向是從左往右
例如:
list=(“hello” , “world” , “你好” , “世界” , “1234”)
list[0:3:1] #[“hello” , “world” , “你好”]
list[:3:1] #[“hello” , “world” , “你好”]
list[0::1] #[“hello” , “world” , “你好” , “世界” , “1234”]
list[0:3] #[“hello” , “world” , “你好”]
list[::] #[“hello” , “world” , “你好” , “世界” , “1234”]

(2)反向截取(包頭不包尾)
注意:反向截取的下標(biāo)編碼是反向編碼
格式:
[start : end : step]
參數(shù):
a、start:列表的截取從start開始進(jìn)行截取,如果start不寫,默認(rèn)是從左邊的的第一個(gè)元素開始進(jìn)行截取
b、end:列表的截取一直到end-1結(jié)束,如果end不寫,默認(rèn)是截取到最后一個(gè)元素
c、step:截取的步長(zhǎng),絕對(duì)值表示步長(zhǎng),正負(fù)值代表方向,如果step不寫,默認(rèn)截取的步長(zhǎng)是1,并且截取的方向是從左往右
例如:
list=[“hello” , “world” , “你好” , “世界” , “1234”]
list[-4??1] #[“world” , “你好” , “世界”]
list[??1] #[“hello” , “world” , “你好” , “世界” ]
list[-4::1] #[ “world” , “你好” , “世界” , “1234”]

4、元組涉及的函數(shù)

(1)len函數(shù)

? 該函數(shù)求元組的長(zhǎng)度
格式:
? len(元組)
例如:
? tuple=(10,20)
? len(tuple)

(2)max函數(shù)

? 該函數(shù)求元組中的數(shù)據(jù)元素的最大值
格式:
? max(元組)
例如:
? tuple=(10,20)
? max(tuple) #20

(3)min函數(shù)

? 該函數(shù)求元組中的數(shù)據(jù)元素的最小值
格式:
? min(元組)
例如:
? tuple=(10,20)
? min(tuple) #10

5、元組的刪除

關(guān)鍵字:del
格式:
del 元組
例如:
tuple=(10,20)
del tuple

6、元組的拼接

符號(hào):+
格式:
元組1 + 元組2
例如:
tuple1=(10)
tuple2=(20)
tuple1+tupl2
注:
元組里的數(shù)據(jù)如果是單個(gè)數(shù)字,使用“+”,表示將元組里的內(nèi)容進(jìn)行相加,如果是多個(gè)數(shù)據(jù),那么就實(shí)現(xiàn)兩個(gè)元組的拼接

十五、字典or詞典:dict

? 字典也是Python里的一種基本數(shù)據(jù)結(jié)構(gòu),它也是用于存儲(chǔ)數(shù)據(jù),類似于元組或者是列表,但是存儲(chǔ)的方式有不同,數(shù)據(jù)在字典里的存儲(chǔ)方式是以鍵值對(duì)的形式存儲(chǔ)

1、字典的初始化

符號(hào):{}
格式:
標(biāo)識(shí)符 = { 鍵1 :值1 ,鍵2:值2 ,鍵3:值3 ,… }
例如:
dict={“key1” : 1 , “key2” : 2 , “key3” : 3 } #可以
dict={(10,20) : 1 , (20,“10”) : 2 , (4 , 8) : 3} #可以
dict={[10,20] : 1 , [20 ,“10”] : 3 , [4 ,8] :3} #不可以
dict={0 : 1 , 1 : 2 , 2 :3} #可以

注意:
(1)鍵值對(duì)中的鍵必須是不可變的數(shù)據(jù),如常量、元組等等
(2)鍵值對(duì)中的鍵是唯一標(biāo)識(shí)用戶所存儲(chǔ)的數(shù)據(jù),意思就是鍵值對(duì)中的鍵不能與其它鍵相同(每個(gè)鍵都是獨(dú)立的并且不相同的)
(3)用戶存儲(chǔ)的數(shù)據(jù)在字典中必須以鍵值對(duì)的形式存在(鍵值對(duì)成對(duì)出現(xiàn))
(4)鍵值對(duì)之間用逗號(hào)“,”隔開
(5)字典中的鍵值對(duì)中的鍵與值之間使用冒號(hào)“:”隔開
(6)字典中存儲(chǔ)的值可以是任意類型的數(shù)據(jù)

2、字典訪問

? 訪問字典里存儲(chǔ)的數(shù)據(jù)
符號(hào):[]
格式:
? 字典 [ 鍵 ] #訪問字典里鍵對(duì)應(yīng)的值
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict[“key2”] #2

3、字典的增加、刪除、修改、查詢

(1)增加

? 向字典里增加新的內(nèi)容
符號(hào):[]
格式:
? 字典 [新的鍵] = 新的值
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict[“key4”] = 4

(2)刪除

? 刪除字典中的數(shù)據(jù)或者是刪除整個(gè)字典
a、關(guān)鍵字:del
格式:
? del 字典 #刪除整個(gè)字典
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? del dict
b、關(guān)鍵字:del
格式:
? del 字典[鍵] #刪除字典中鍵對(duì)應(yīng)的值
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? del dict[“key1”]

(3)修改

? 可以修改鍵值對(duì)中鍵對(duì)應(yīng)的值
格式:
? 字典 [已經(jīng)存在的鍵] = 更新的值 #將字典中之前鍵對(duì)應(yīng)的值更新為新的值
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict[“key2”] = “hello world” #將字典中2更新為“hello world”
(4)查詢
? 可以查詢字典中鍵對(duì)應(yīng)的值
格式:
? 字典 [已經(jīng)存在的鍵]
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict[“key2”]

4、字典常用的函數(shù)

(1)values函數(shù)

? 該函數(shù)用于獲取字典中所有的鍵對(duì)應(yīng)的值
格式:
? 字典 . values()
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict . values()

(2)keys函數(shù)

? 該函數(shù)用于獲取字典中所有的鍵
格式:
? 字典 . keys()
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict.keys()

(3)items函數(shù)

? 該函數(shù)用于獲取字典中所有的鍵值對(duì)
格式:
? 字典 . items()
例如:
? dict={“key1” : 1 , “key2” : 2 , “key3” : 3 }
? dict.items()

十六、函數(shù)

? 函數(shù)是對(duì)實(shí)際的一些功能進(jìn)行封裝,封裝的目的是保護(hù)數(shù)據(jù)的安全和為了使用簡(jiǎn)便,它只向用戶暴露接口,不暴露具體的實(shí)現(xiàn)細(xì)節(jié)

1、函數(shù)的聲明

關(guān)鍵字:def
格式:

def   函數(shù)名(參數(shù)1 ,參數(shù)2 ,......): #注:參數(shù)可有可無
		字符串  #該字符串也是可有可無
		代碼
		....
		return   #return也是可有可無

例如:

def    function   ():
		“該函數(shù)用于實(shí)現(xiàn)字符串的拼接”
		print(“hello world”)
		return 0    #該函數(shù)返回0

注意:
(1)關(guān)鍵字def不能省略,它用于聲明函數(shù)
(2)函數(shù)名就是標(biāo)識(shí)符,滿足python的標(biāo)識(shí)符規(guī)定
(3)函數(shù)名后面的括號(hào)里參數(shù)可有可無,根據(jù)自身實(shí)際情況而定
(4)函數(shù)參數(shù)括號(hào)后面的冒號(hào)“:”
(5)函數(shù)體內(nèi)部的內(nèi)容需要進(jìn)行縮進(jìn)
(6)函數(shù)體內(nèi)部第一行代碼是字符串,它可有可無,目的是為了提示
(7)函數(shù)體內(nèi)部的關(guān)鍵字return的作用是返回,使用格式:return 內(nèi)容

2、函數(shù)的參數(shù)

(1)函數(shù)傳參的順序不變,根據(jù)函數(shù)內(nèi)部參數(shù)的實(shí)現(xiàn)而定—必備參數(shù)

def   function(x , y ):
	num=x+10
	str=y+"hello"

(2)函數(shù)傳參是以關(guān)鍵字形式,函數(shù)傳參的順序可以變化

def   function(x , y ):
	num=x+10
	str=y+"hello"

(3)函數(shù)傳參時(shí)默認(rèn)值傳參

def   function(x, y=“world” ):
	num=x+10
	str=y+"hello"

3、函數(shù)的調(diào)用

格式:
函數(shù)名 (傳遞實(shí)參) #如果函數(shù)帶了參數(shù)就需要傳遞實(shí)參,如沒有帶,那就不需要傳遞
例如:
(1)

def   function(x , y ):  #按順序傳參
    num=x+10
    str=y+"hello"
function(10,“world”)	

(2)

def   function(x , y ):  #按關(guān)鍵字傳參
    num=x+10
    str=y+"hello"
function(y=“world”,x=10

(3)

def   function(x , y=“world” ):  #注:帶默認(rèn)值的參數(shù)必須放在不帶默認(rèn)值參數(shù)的后面
    num=x+10   
    str=y+"hello"
function(y="world"

4、函數(shù)嵌套

格式:
def function1(參數(shù)):
代碼

def function2(參數(shù))
代碼

function2(實(shí)參)
調(diào)用:
function1(實(shí)參)

十七、模塊和包

1、模塊

? 模塊在python里是指一個(gè)python文件(python文件=模塊) ,模塊里可以放置函數(shù)、全局變量、類等等

(1)模塊的導(dǎo)入

? 是指一個(gè)模塊使用另外一個(gè)模塊里的內(nèi)容
關(guān)鍵字:import
格式:
? import 模塊名
例如:
? hello.py #模塊名:hello
? import hello
注:導(dǎo)入模塊時(shí),同時(shí)取別名
關(guān)鍵字:import、as
格式:
? import 模塊 as 別名
例如:
? hello.py
? import hello as he

(2)使用其他模塊里的內(nèi)容

a、是在import導(dǎo)入其他模塊的前提下,再使用其他模塊里的內(nèi)容
格式:
import 模塊名
模塊名 . 功能或別名 . 功能
例如:
hello.py #模塊名:hello
import hello
hello . num #使用其他模塊里的內(nèi)容

b、導(dǎo)入其他模塊里指定的內(nèi)容
關(guān)鍵字:from、import
格式:
from 模塊 import 功能
例如:
hello.py #模塊名:hello
from hello import num #從hello模塊里導(dǎo)入變量num到當(dāng)前文件
print(“num=”,num)
c、一次性導(dǎo)入其他模塊里的所有內(nèi)容
關(guān)鍵字:from、import
符號(hào):*
格式:
from 模塊 import *
例如:
hello.py #模塊名:hello
from hello import *
print(“num=”,num)
function()

2、包

? 包在python里是一個(gè)目錄,包是包含多個(gè)模塊,每一個(gè)包里包含一個(gè)特殊文件,該文件是__init__.py

(1)包的導(dǎo)入

關(guān)鍵字:import
格式:
import 包名 #包名是文件名

注:導(dǎo)入包時(shí),同時(shí)取別名
關(guān)鍵字:import、as
格式:
import 包 as 別名
例如:
hello #包
import hello as he

(2)使用包里的模塊里的內(nèi)容

格式:

import  包名
包名  .   模塊名  .   功能

例如:

zhang   #包zhang
hello.py   #包zhang里的模塊
import zhang
zhang . hello .num   #使用包zhang里的模塊hello里的變量num(前提條件是注里的內(nèi)容)

注:
需要在__init__.py文件里導(dǎo)入該包里用戶需要使用的模塊
格式:

from  .   import  模塊名

十八、文件操作(I/O技術(shù))

對(duì)于一個(gè)完整的程序一般都包括數(shù)據(jù)的存儲(chǔ)和讀取。從外部存儲(chǔ)介質(zhì)(硬盤、光盤、軟盤、U盤)讀取數(shù)據(jù),或?qū)⒊绦蛑?結(jié)果)的數(shù)據(jù)存儲(chǔ)到介質(zhì)(文件)。
文件:按照數(shù)據(jù)的組織形式:

1.文本文件

文本文件存儲(chǔ)的普通”字符"

2.二進(jìn)制文件

二進(jìn)制文件把數(shù)據(jù)內(nèi)容用"字節(jié)"進(jìn)行存儲(chǔ),無法使用記事本打開,必須使用專用的軟件解碼。常見的有:|MP4、MP3、JPG圖片、exe

3、文件操作相關(guān)模塊

Python標(biāo)準(zhǔn)庫中,提供如下模塊進(jìn)行文件操作:

名稱		 說明
io模塊 :文件的輸入和輸出操作 input、output
os模塊 :基本的操作系統(tǒng)功能,包括文件操作
glob模塊 :查找符合特定規(guī)則的文件路徑名
filecmp模塊: 用于文件的比較
名稱 		說明
cvs模塊: 用于cvs文件處理
xml包 :用于xml數(shù)據(jù)處理
bz2、gzip、zipfile、zlib、tarlib:用于處理壓縮和解壓文件(分別對(duì)應(yīng)不同的算法)

(1)創(chuàng)建文件對(duì)象

open()函數(shù)用于創(chuàng)建文件對(duì)象,表示—個(gè)在程序中要操作的文件
基本語法格式:

open(文件名[打開方式])

文件名可以是全路徑:表示操作指定目錄下的文件。如:C:\Usersly\Desktop\test.txt。為了減少\的輸入,可以使用原始字符串來示:r"C:\Usersly Desktop\test.txt"
打開方式:

模式:描述
b:二進(jìn)制binary模型,二進(jìn)制文件
r:讀read模式
w:寫write模式。如果文件不存在則創(chuàng)建,如果文件存在,則重新寫內(nèi)容(清空內(nèi)容)
a:寫append模式。文件不存在則創(chuàng)建,如果存在,則在文件末尾追加內(nèi)容
+:在已有的選擇中添加額外的讀、寫。

open()函數(shù)存在返回值,返回值就是打開的文件對(duì)象文件對(duì)象變量名= open(文件路徑,打開方式)

(2)文本文件的寫入

基本的文件寫入操作,文件的寫入一般有三個(gè)步驟:①創(chuàng)建文件對(duì)象(打開文件),②寫入數(shù)據(jù),③關(guān)閉文件對(duì)象(關(guān)閉文件)。
write(寫入的內(nèi)容)
用法:

文件對(duì)象.write(內(nèi)容)

writelines(要寫入列表)
用法:

文件對(duì)象.writelines(要寫入列表)

(3)文本文件的讀取

read()函數(shù),從文本文件中讀取數(shù)據(jù)
read([size])從文件中讀取size個(gè)字符,如果沒有size參數(shù),則表示讀取整個(gè)文件,返回值就是讀取的字符串。當(dāng)已經(jīng)讀取到文件結(jié)束,再次進(jìn)行讀取時(shí),返回值為空字符串(讀取到文件末尾,會(huì)返回空字符串)

==readline()==從文件中讀取一行內(nèi)容,返回值就是讀取的數(shù)據(jù)。當(dāng)已經(jīng)讀取到文件結(jié)束,再次進(jìn)行讀取時(shí),返回值為空字符串(讀取到文件末尾,會(huì)返回空字符串)==readlines()==從文件中讀取每一行,每一行作為一個(gè)字符串存儲(chǔ)列表中,返回該列表。

(4)關(guān)閉文件對(duì)象

關(guān)閉打開的文件close)函數(shù)關(guān)閉文件用法:

文件對(duì)象.close()

對(duì)于文本文件,由于有不同的編碼格式,所以經(jīng)常操作時(shí)會(huì)碰到
亂碼問題。 編碼: ASCII:用7位表示,表示128個(gè)字符
ISO8859-1:又叫做Latin-1,8位字符集,兼容ASCII編碼

GB2312:漢字編碼字符集,兼容ISO8859-1編碼 GBK:漢字內(nèi)碼
擴(kuò)展規(guī)范,擴(kuò)展GB2312,在它的基礎(chǔ)上又增加了更多的漢字
GB18030:它采用單字節(jié)、雙字節(jié)、四字節(jié) UTF-8:不定長(zhǎng)編
碼,每一個(gè)字符長(zhǎng)度1-4字節(jié)不等

(5)文件對(duì)象的常用屬性和方法

屬性 :說明
name :返回文件的名字
mode :返回文件的打開模式
closed :若文件被關(guān)閉則返回True

常用方法

方法 :說明
tell(): 返回文件當(dāng)前操作位置
seek(): 把文件當(dāng)前操作位置移動(dòng)到新的位置
truncate(): 不論當(dāng)前位置在哪,只留下當(dāng)前位置指定大小的內(nèi)容,其余全部刪除

seek(偏移大小,基準(zhǔn)位置) 偏移大小: 移動(dòng)多少字節(jié)字符,負(fù)數(shù)向前,正數(shù)向后 基準(zhǔn)位置: 0:從文件開始位置計(jì)算 1:從當(dāng)前位置開始計(jì)算 2:從文件末尾位置開始計(jì)算os和os.path模塊 os模塊可以幫助我們直接對(duì)操作系統(tǒng)進(jìn)行操作,執(zhí)行程序、命令、直接操作文件、目錄等。

函數(shù): 作用
remove(文件路徑): 刪除指定的文件
rename(原文件名,目標(biāo)文件名) :重命名文件或目錄
stat(文件路徑) :返回文件的所有屬性
listdir(目錄) :返回目錄下的文件和目錄的列表
rmdir(目錄) :刪除目錄
mkdir(目錄) :創(chuàng)建目錄

os.path模塊
os.path模塊提供了目錄相關(guān)的操作

方法:			描述:
isdir(路徑):判斷路徑是否是目錄
isfile(路徑):判斷路徑是否是文件
exists(文件路徑):判斷路徑的文件是否存在
getsize():返回文件大小
getatime():文件訪問時(shí)間
getctime():文件創(chuàng)建時(shí)間
getmtime():文件修改時(shí)間
例如:(os.path.getatime)
isabs(路徑):判斷路徑是否是絕對(duì)路徑

4、CSV文件操作

csv是逗號(hào)分隔符文本格式,常用于數(shù)據(jù)交換、Excel文件和數(shù)據(jù)庫數(shù)據(jù)的導(dǎo)入和導(dǎo)出。

csv文件:
值沒有類型,所有值都是字符串
沒有多個(gè)工作表
在python的標(biāo)準(zhǔn)庫模塊csv提供了讀取和寫入csv格式的對(duì)象
csv.read對(duì)象
#讀取csv文件內(nèi)容
import csv

#打開文件
a = open("C:/Users/y/Desktop/1.csv")
#創(chuàng)建csv對(duì)象讀取文件
csv_a = csv.reader(a)#csv讀取對(duì)象要操作 a 文件,返回值就是csv對(duì)象,是包含了所有數(shù)據(jù)的列表,每一行就是一個(gè)元素

for row in csv_a :
    print(row)
csv.writer對(duì)象
#往csv文件添加(寫入)數(shù)據(jù)
import csv

f = open("C:/Users/y/Desktop/1.csv","w")

csv_a = csv.writer(f)#創(chuàng)建csv對(duì)象,操作 f 文件
csv_a.writerow(["姓名","地址","聯(lián)系方式"])

csv_a.writerows([["張三","xxxx","無"],["李四","無","xxxxxx"]])

5、壓縮與解壓

shutil模塊是python中提供的,主要用來文件和文件夾的拷貝、移動(dòng)、刪除等,也可以用于文件和文件夾的壓縮、解壓操作文件拷貝 copyfile(源文件,目標(biāo)文件)

文件拷貝 目錄拷貝copytree(源目錄,目標(biāo)目錄–不存在)

壓縮: make_archive(壓縮的目標(biāo)文件名,壓縮方式,壓縮源文件目錄)

import shutil
import zipfile

#shutil.copyfile("C:/Users/y/Desktop/1.txt","3.txt")

#shutil.copytree("C:/Users/y/Desktop/one","one")

#shutil.make_archive("C:/Users/y/Desktop/ok","zip","one")

#使用zipfile壓縮
z = zipfile.ZipFile("C:/Users/y/Desktop/a.zip","w")#打開壓縮文件,如果壓縮文件不存在就創(chuàng)建

z.write("1.txt")
z.write("2.txt")
z.write("3.txt")

z.close()

解壓:

import zipfile

z = zipfile.ZipFile("C:/Users/y/Desktop/a.zip","r")

z.extractall("C:/Users/y/Desktop")#設(shè)置解壓文件
z.close()

總結(jié)

好好學(xué)習(xí),天天向上。文章來源地址http://www.zghlxwxcb.cn/news/detail-428945.html

往期專欄
Java全棧開發(fā)
數(shù)據(jù)結(jié)構(gòu)與算法
計(jì)算機(jī)組成原理
操作系統(tǒng)
數(shù)據(jù)庫系統(tǒng)
物聯(lián)網(wǎng)控制原理與技術(shù)

到了這里,關(guān)于Python入門到高手進(jìn)階|這一篇就夠了(3萬字|超詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 學(xué)習(xí)C++這一篇就夠了(進(jìn)階篇)

    學(xué)習(xí)C++這一篇就夠了(進(jìn)階篇)

    C++在執(zhí)行程序的時(shí)候,將內(nèi)存方向劃分為4個(gè)區(qū)域: 代碼區(qū):存放二進(jìn)制代碼,由操作系統(tǒng)進(jìn)行管理 全局區(qū):存放全局變量、靜態(tài)變量、常量,程序結(jié)束后由操作系統(tǒng)釋放 棧區(qū):存放函數(shù)參數(shù)、局部變量,由編譯器自動(dòng)分配和釋放 堆區(qū):由開發(fā)者申請(qǐng)分配和釋放,若程序員

    2024年02月12日
    瀏覽(54)
  • 【Python系列】Python教程合輯-史上最全最詳細(xì)-從入門到入土,看這一篇就夠了

    【Python系列】Python教程合輯-史上最全最詳細(xì)-從入門到入土,看這一篇就夠了

    目錄 Python合輯匯總列表 用Python自動(dòng)辦公,做職場(chǎng)高手【完結(jié)】?? ? 玩轉(zhuǎn)Python3入門到精通視頻教程?? ? 數(shù)據(jù)分析資料包? 全民一起玩Python?? ? 千鋒教育Python700集零基礎(chǔ)入門到精通(爬蟲 辦公自動(dòng)化 數(shù)據(jù)分析)?? ? 慕課網(wǎng)實(shí)戰(zhàn)課-暢銷3年的Python分布式爬蟲課程-原版提取??

    2024年02月22日
    瀏覽(32)
  • 【C語言】 指針的進(jìn)階 看這一篇就夠了

    【C語言】 指針的進(jìn)階 看這一篇就夠了

    目錄 1.字符指針 2.數(shù)組指針 3.指針數(shù)組 4.數(shù)組傳參和指針傳參 5.函數(shù)指針 6.函數(shù)指針數(shù)組 7.指向函數(shù)指針數(shù)組的指針 8.回調(diào)函數(shù) 9.qsort排序和冒泡排序 讓我們一起來回顧一下指針的概念! 1.指針就是一個(gè)變量,用來存放地址,地址唯一標(biāo)識(shí)一塊內(nèi)存空間。 2.指針的大小是固定

    2023年04月22日
    瀏覽(18)
  • CTF攻防世界 Misc高手進(jìn)階區(qū) 6分題 Wireshark(詳細(xì)解析)

    CTF攻防世界 Misc高手進(jìn)階區(qū) 6分題 Wireshark(詳細(xì)解析)

    目錄 題目鏈接: 題目解析: 獲得flag: 得到一個(gè)流量包,打開看得眼花,先關(guān)注http 一個(gè)個(gè)追蹤,先看到一個(gè)網(wǎng)站 tools.jb51.net/aideddesign/img_add_info 打開之后發(fā)現(xiàn)是一個(gè)圖片加密解密的網(wǎng)站, ?導(dǎo)出全部http對(duì)象,保存出來。 ?全部導(dǎo)出之后,發(fā)現(xiàn)一個(gè)png格式的風(fēng)景照,和兩個(gè)較

    2024年02月09日
    瀏覽(23)
  • docker入門,這一篇就夠了。

    docker入門,這一篇就夠了。

    Docker容器虛擬化平臺(tái)。 今天跟大家分享一下我的docker學(xué)習(xí)歷程,也算是我的獨(dú)特的復(fù)習(xí)筆記,我會(huì)在這一篇中講清楚docker幾乎所有的功能。不過也是我第一次寫,而且是一篇兩萬多字的長(zhǎng)文,花了我半個(gè)月里所有的休閑娛樂時(shí)間,所以寫的不好的地方請(qǐng)大家見諒,也請(qǐng)?jiān)谠u(píng)論

    2024年02月03日
    瀏覽(89)
  • kafka入門用這一篇就夠了!

    kafka入門用這一篇就夠了!

    目錄 1,kafka簡(jiǎn)單介紹 2,kafka使用場(chǎng)景 3,kafka基本概念 kafka集群 數(shù)據(jù)冗余 分區(qū)的寫入 讀取分區(qū)數(shù)據(jù) 順序消費(fèi) 提交策略 零拷貝技術(shù)(netty) kafka是一款分布式、支持分區(qū)的、多副本,基于zookeeper協(xié)調(diào)的分布式消息系統(tǒng)。最大的特性就是可以實(shí)時(shí)處理大量數(shù)據(jù)來滿足需求。

    2024年01月25日
    瀏覽(23)
  • MASA Blazor入門這一篇就夠了

    MASA Blazor入門這一篇就夠了

    ASP.NET Core Blazor 簡(jiǎn)介 Blazor 是一個(gè)使用 Blazor 生成交互式客戶端 Web UI 的框架: 使用 C# 代替 JavaScript 來創(chuàng)建信息豐富的交互式 UI。 共享使用 .NET 編寫的服務(wù)器端和客戶端應(yīng)用邏輯。 將 UI 呈現(xiàn)為 HTML 和 CSS,以支持眾多瀏覽器,其中包括移動(dòng)瀏覽器。 與新式托管平臺(tái)(如 Docke

    2024年02月05日
    瀏覽(16)
  • JavaScript 入門(簡(jiǎn)單易懂) 看這一篇就夠了

    目錄 1、什么是JavaScript 1.1、概述 1.2、歷史 2、快速入門 2.1、引入引入JavaScript 2.2、基本語法 2.3、數(shù)據(jù)類型 2.4、嚴(yán)格檢查模式 3、數(shù)據(jù)類型 3.1、字符串 3.2、數(shù)組 3.3、對(duì)象 3.4、流程控制 3.5、Map和Set 3.6 iterator 3.7數(shù)據(jù)類型轉(zhuǎn)換字符串類型 3.8數(shù)據(jù)類型轉(zhuǎn)換數(shù)字型(重點(diǎn)) 3.9標(biāo)識(shí)

    2024年02月02日
    瀏覽(21)
  • Pytorch 最全入門介紹,Pytorch入門看這一篇就夠了

    Pytorch 最全入門介紹,Pytorch入門看這一篇就夠了

    本文通過詳細(xì)且實(shí)踐性的方式介紹了 PyTorch 的使用,包括環(huán)境安裝、基礎(chǔ)知識(shí)、張量操作、自動(dòng)求導(dǎo)機(jī)制、神經(jīng)網(wǎng)絡(luò)創(chuàng)建、數(shù)據(jù)處理、模型訓(xùn)練、測(cè)試以及模型的保存和加載。 在這一部分,我們將會(huì)對(duì)Pytorch做一個(gè)簡(jiǎn)單的介紹,包括它的歷史、優(yōu)點(diǎn)以及使用場(chǎng)景等。 PyTorch是一

    2024年02月15日
    瀏覽(20)
  • 大數(shù)據(jù)超全面入門干貨知識(shí),看這一篇就夠了!

    大數(shù)據(jù)超全面入門干貨知識(shí),看這一篇就夠了!

    隨著科技的飛速發(fā)展和互聯(lián)網(wǎng)的普及,大數(shù)據(jù)已成為 21 世紀(jì)最炙手可熱的話題之一。它像一面神秘的面紗,覆蓋著現(xiàn)實(shí)世界,隱藏著無窮無盡的可能性。今天將帶領(lǐng)大家一起揭開大數(shù)據(jù)這個(gè)未知世界的神秘面紗,帶你了解大數(shù)據(jù)的概念、應(yīng)用以及大數(shù)據(jù)相關(guān)組件。 大數(shù)據(jù)是

    2024年04月26日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包