學(xué)習(xí)目標(biāo):
--常用的數(shù)據(jù)結(jié)構(gòu)及對(duì)應(yīng)方法
--三種控制流的使用
--字符串的常用處理方法
--正則表達(dá)式的使用
--自定義函數(shù)的編寫
#開啟Python學(xué)習(xí)之路
print ("Hello, Python!")
Hello World!
#print括號(hào)里面使用單引號(hào)或者雙引號(hào)都可以
print("Hello Python world!")
print('Hello Python world!')
Hello Python world!
Hello Python world!
#需要打印出雙引號(hào)
print('"Hello Python world!"')
#需要打印出單引號(hào)
print("'Hello Python world!'")
"Hello Python world!"
'Hello Python world!'
1、數(shù)據(jù)結(jié)構(gòu)及方法
列表、元組、字典都是存儲(chǔ)數(shù)據(jù)的容器
列表
列表用[ ]構(gòu)造
列表可存放數(shù)值、字符串和其他數(shù)據(jù)結(jié)構(gòu)內(nèi)容
列表是一種序列,每個(gè)列表元素按順序存入,且有自己的位置
列表是一種可變類型的數(shù)據(jù)結(jié)構(gòu),可增、刪、改
1.1列表元素的獲取
通過索引方式獲取列表元素,位置索引從0開始
1.1.1 正向單索引
list1 = ['張三','男',30,'廣東','本科','已婚',['身高178','體重70']]
#取出第一個(gè)元素
print(list1[0])
#取出第四個(gè)元素
print(list1[3])
#取出最后一個(gè)元素
print(list1[6])
#取出“體重72”這個(gè)值
print(list1[6][1])
張三
廣東
['身高178', '體重70']
體重70
1.1.2 負(fù)向單索引
從右到左,獲取一個(gè)元素,即list[-n]
# 取出最后一個(gè)元素
print(list1[-1])
# 取出“身高178”這個(gè)值
print(list1[-1][0])
# 取出倒數(shù)第三個(gè)元素
print(list1[-3])
['身高178', '體重70']
身高178
本科
1.1.3 切片索引
按照固定步長(zhǎng),連續(xù)取出多個(gè)元素,即[stat:end:step],step默認(rèn)為1
注意:end位置的元素取不到,左閉右開
list2 = ['江蘇','安徽','浙江','上海','山東','山西','湖南','湖北']
# 取出“浙江”至“山西”四個(gè)元素
print(list2[2:6])
# 取出“安徽”、“上海”、“山西”三個(gè)元素
print(list2[1:6:2])
# 取出最后三個(gè)元素
print(list2[5:8])
# 取出倒數(shù)兩個(gè)元素
print(list2[-3:-1])
['浙江', '上海', '山東', '山西']
['安徽', '上海', '山西']
['山西','湖南','湖北']
['山西', '湖南']
1.1.4 無限索引
不限制起始或者終止或者兩個(gè)位置都不限定,用[::step]表示
# 取出頭三個(gè)元素
print(list2[:3])
# 取出最后三個(gè)元素
print(list2[-3:])
# 取出所有元素
print(list2[::])
# 取出奇數(shù)位置的元素
print(list2[::2])
['江蘇', '安徽', '浙江']
['山西', '湖南', '湖北']
['江蘇', '安徽', '浙江', '上海', '山東', '山西', '湖南', '湖北']
['江蘇', '浙江', '山東', '湖南']
1.2 列表的方法
1.2.1 列表元素的增加
append:是列表特有的方法,往列表尾部增加元素,每次只能增加一個(gè)元素
extend:往列表尾部增加多個(gè)元素,需要以列表的的方式傳遞
insert:在列表的指定位置插入元素,需要傳遞索引和新元素,索引指的是插入的位置
第一種--append方法
list3 = [1,10,100,1000,10000]
# 在列表末尾添加數(shù)字2
list3.append(2)
print(list3)
[1, 10, 100, 1000, 10000, 2]
第二種--extend方法
# 在列表末尾添加20,200,2000,20000四個(gè)值
list3.extend([20,200,2000,20000])
print(list3)
[1, 10, 100, 1000, 10000, 2, 20, 200, 2000, 20000]
第三種--insert方法
# 在數(shù)字10后面增加11這個(gè)數(shù)字
list3.insert(2,11)
print(list3)
# 在10000后面插入['a','b','c']
list3.insert(6,['a','b','c'])
print(list3)
[1, 10, 11, 100, 1000, 10000, 2, 20, 200, 2000, 20000]
[1, 10, 11, 100, 1000, 10000, ['a', 'b', 'c'], 2, 20, 200, 2000, 20000]
1.2.2 列表元素的刪除
pop:默認(rèn)刪除末尾的最后一個(gè)元素,如需刪除指定某個(gè)元素,需傳遞索引
remove:刪除首次出現(xiàn)的指定值
clear:清空,全部刪除
第一種--pop刪除方法
# 刪除list3中20000這個(gè)元素
list3.pop()
print(list3)
# 刪除list3中11這個(gè)元素
list3.pop(2)
print(list3)
[1, 10, 11, 100, 1000, 10000, ['a', 'b', 'c'], 2, 20, 200, 2000]
[1, 10, 100, 1000, 10000, ['a', 'b', 'c'], 2, 20, 200, 2000]
第二種--remove刪除方法
# 刪除list3中所有元素
list3.clear()
print(list3)
[1, 10, 100, 1000, 10000, 2, 20, 200, 2000]
第三種--clear刪除方法
# 刪除list3中所有元素
list3.clear()
print(list3)
[]
1.2.3 列表元素的修改
通過索引獲取錯(cuò)誤元素,然后用新值取而代之
list4 = ['洗衣機(jī)','冰響','電視機(jī)','電腦','空調(diào)']
# 將“冰響”修改為“冰箱”
print(list4[1])
list4[1] = '冰箱'
print(list4)
冰響
['洗衣機(jī)', '冰箱', '電視機(jī)', '電腦', '空調(diào)']
1.2.4 列表元素的其他方法
計(jì)數(shù)count、查詢位置index、逆轉(zhuǎn)reverse、排序sort(只能對(duì)同質(zhì)數(shù)據(jù)進(jìn)行排序)
list5 = [7,3,9,11,4,6,10,3,7,4,4,3,6,3]
# 計(jì)算列表中元素3的個(gè)數(shù)
print(list5.count(3))
# 找出元素6所在的位置
print(list5.index(6))
# 列表元素的顛倒
list5.reverse()
print(list5)
# 列表元素的降序
list5.sort(reverse=True)
元組
元組用( )構(gòu)造
元組可存放數(shù)值、字符串和其他數(shù)據(jù)結(jié)構(gòu)內(nèi)容
元組是一種序列,每個(gè)列表元素按順序存入,且有自己的位置
元組不是一種可變類型的數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)數(shù)據(jù)的不可變?nèi)萜?,不可增、刪、改
元組的方法
計(jì)數(shù)count、查詢位置index
t = ('a','d','z','a','d','c','a')
# 計(jì)數(shù)
print(t.count('a'))
# 元素位置
print(t.index('c'))
3
5
字典
字典是常用的數(shù)據(jù)結(jié)構(gòu),與json格式相似,用{ }表示
字典是以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù),即key:value
字典不是序列,無法通過位置索引獲取,只能通過鍵索引實(shí)現(xiàn)
字典與列表一樣,是一種可變類型的數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)數(shù)據(jù)的可變?nèi)萜鳎豢稍?、刪、改
注意:鍵在字典種是唯一的,不能重復(fù),否則無法取數(shù),字符型的鍵要用引號(hào),值可以是單個(gè)值,也可以是列表、元組或字典
3.1 字典數(shù)據(jù)的獲取
dict1 = {'姓名':'張三','年齡':33,'性別':'男','子女':{'兒子':'張四','女兒':'張美'},'興趣':['踢球','游泳','唱歌']}
# 打印字典
print(dict1)
# 取出年齡
print(dict1['年齡'])
# 取出子女中的兒子姓名
print(dict1['子女']['兒子'])
# 取出興趣中的游泳
print(dict1['興趣'][1])
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌']}
33
張四
游泳
3.2 字典元素的增加
setdefault:該方法接受兩個(gè)參數(shù),用( )和逗號(hào)表示
update:該方法接受的是一個(gè)字典對(duì)象,用{ }和冒號(hào)表示
鍵索引方法:具體索引的賦值
# 往字典dict1中增加戶籍信息
dict1.setdefault('戶籍','合肥')
print(dict1)
# 增加學(xué)歷信息
dict1.update({'學(xué)歷':'碩士'})
print(dict1)
# 增加身高信息
dict1['身高'] = 178
print(dict1)
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌'], '戶籍': '合肥'}
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌'], '戶籍': '合肥', '學(xué)歷': '碩士'}
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌'], '戶籍': '合肥', '學(xué)歷': '碩士', '身高': 178}
3.3 字典元素的刪除
pop:在列表種默認(rèn)刪除末尾的最后一個(gè)元素,但在字典種必須指定某個(gè)元素,需傳遞索引
popitem:刪除字典中的任意一個(gè)元素
clear:清空,全部刪除
# 刪除字典中的戶籍信息
dict1.pop('戶籍')
print(dict1)
# 刪除字典中女兒的姓名
dict1['子女'].pop('女兒')
print(dict1)
# 刪除字典中的任意一個(gè)元素
dict1.popitem()
print(dict1)
# 清空字典元素
dict1.clear()
print(dict1)
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌'], '學(xué)歷': '碩士', '身高': 178}
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四'}, '興趣': ['踢球', '游泳', '唱歌'], '學(xué)歷': '碩士', '身高': 178}
{'姓名': '張三', '年齡': 33, '性別': '男', '子女': {'兒子': '張四'}, '興趣': ['踢球', '游泳', '唱歌'], '學(xué)歷': '碩士'}
{}
3.4 字典元素的修改
update:該方法接受的是一個(gè)字典對(duì)象,用{ }和冒號(hào)表示
鍵索引方法:具體索引的賦值
dict1 = {'姓名':'張三','年齡':33,'性別':'男','子女':{'兒子':'張四','女兒':'張美'},'興趣':['踢球','游泳','唱歌']}
# 將性別改為女
dict1.update({'性別':'女'})
print(dict1)
# 將年齡改為35
dict1['年齡'] = 35
print(dict1)
# 將興趣中的唱歌改為跳舞
dict1['興趣'][2] ='跳舞'
print(dict1)
{'姓名': '張三', '年齡': 33, '性別': '女', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌']}
{'姓名': '張三', '年齡': 35, '性別': '女', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '唱歌']}
{'姓名': '張三', '年齡': 35, '性別': '女', '子女': {'兒子': '張四', '女兒': '張美'}, '興趣': ['踢球', '游泳', '跳舞']}
3.5 字典的其他方法
用get方法取出對(duì)應(yīng)鍵的值,沒有該鍵則不報(bào)錯(cuò)
用keys方法取出所有鍵的值
用values方法取出所有值
用items方法取出所有鍵值對(duì)
dict2 = {'電影':['三傻大鬧寶萊塢','大話西游之大圣娶親','瘋狂動(dòng)物城'], '導(dǎo)演':['拉吉庫馬爾·希拉尼','劉鎮(zhèn)偉','拜倫·霍華德 '], '評(píng)分':[9.1,9.2,9.2]}
# 取出鍵'評(píng)分'所對(duì)應(yīng)的值
print(dict2.get('評(píng)分'))
# 取出字典中的所有鍵
print(dict2.keys())
# 取出字典中的所有值
print(dict2.values())
# 取出字典中的所有鍵值對(duì)
print(dict2.items())
[9.1, 9.2, 9.2]
dict_keys(['電影', '導(dǎo)演', '評(píng)分'])
dict_values([['三傻大鬧寶萊塢', '大話西游之大圣娶親', '瘋狂動(dòng)物城'], ['拉吉庫馬爾·希拉尼', '劉鎮(zhèn)偉', '拜倫·霍華德 '], [9.1, 9.2, 9.2]])
dict_items([('電影', ['三傻大鬧寶萊塢', '大話西游之大圣娶親', '瘋狂動(dòng)物城']), ('導(dǎo)演', ['拉吉庫馬爾·希拉尼', '劉鎮(zhèn)偉', '拜倫·霍華德 ']), ('評(píng)分', [9.1, 9.2, 9.2])])