專門做微信推送的網(wǎng)站搜索引擎優(yōu)化要考慮哪些方面?
學(xué)習(xí)目標(biāo):
1:能夠知道如何定義一個(gè)字符串; [重點(diǎn)]
?? ?使用雙引號(hào)引起來(lái): 變量名 = "xxxx"
2:能夠知道切片的語(yǔ)法格式; [重點(diǎn)]
?? ?[起始: 結(jié)束]
3:掌握如何定義一個(gè)列表; [重點(diǎn)]
?? ?使用[ ]引起來(lái): 變量名 = [xx,xx,...]
4:能夠說(shuō)出4個(gè)列表相關(guān)的方法; [了解]
?? ?append()、remove()、len()、sort()、insert()、extend()、reverse()、...
?字符串介紹:
介紹:[了解]什么是Python容器:
在現(xiàn)實(shí)生活中,我們知道容器是用來(lái)存放東西的,比如實(shí)驗(yàn)室里的燒杯等。
類似的,在Python中的容器是用來(lái)存放數(shù)據(jù)的。
與此同時(shí),為了操作方便,Python給我們提供了對(duì)容器中數(shù)據(jù)處理的方法,例如增加、刪除、修改、查詢等。
變量名.函數(shù)(x)
在Python中,常見容器有:
(1)字符串:str
(2)列表:list
(3)元組:tuple
(4)字典:dict
(1)字符串:使用雙引號(hào)引起來(lái)的內(nèi)容;
(2)列表:使用[ ]表示的內(nèi)容;? (可變數(shù)據(jù)類型)(3)元組:使用( )表示的內(nèi)容;
(4)字典:使用{ }表示,內(nèi)部元素是鍵值對(duì)。
例子:
(1)分別定義字符串、列表、元組、字典變量;
(2)使用【type(變量名)】查看變量的類型;
(3)執(zhí)行程序,觀察效果。
# 1.字符串變量a = "itheima"print(a) # itheimaprint(type(a)) # <class 'str'>2.列表b = ["it","heima"]print(b) # ['it', 'heima']print(type(b)) # <class 'list'># 3.元組c = ("it","heima",)print(c) # ('it', 'heima')print(type(c)) # <class 'tuple'># 4.字典
d = {"name":"itheima","age":17}
print(d)
print(type(d)) # <class 'dict'>
注意:Python容器有很多操作方法,但都是使用【變量名.函數(shù)(x)】形式完成調(diào)用
[掌握]創(chuàng)建字符串
字符串表示文本內(nèi)容,例如中文文字、學(xué)生姓名、一段英文等。
通俗地說(shuō),字符串就是使用雙引號(hào)引起來(lái)的內(nèi)容。
創(chuàng)建字符串語(yǔ)法:
變量名 = "內(nèi)容"
說(shuō)明:
字符串可以使用雙引號(hào)或單引號(hào)表示,較常見的是雙引號(hào)表示。
例子:
例如,一起來(lái)完成:
(1)使用雙引號(hào)表示一個(gè)公司名稱;
(2)使用單引號(hào)表示公司名稱;
(3)分別輸出變量的類型結(jié)果;
(4)思考1:使用字符串與一個(gè)數(shù)值拼接,會(huì)怎樣?
(5)思考2:一段使用引號(hào)表示的字符串中,還有引號(hào),該怎么處理?
# 1.雙引號(hào)
strs1 = "大象程序員"
print(strs1)
print(type(strs1)) # <class 'str'># 2.單引號(hào) -擴(kuò)展strs2 = '大象程序員'print(strs2)print(type(strs2)) # <class 'str'>
# 1.字符串拼接#a. + 字符串連接符
# b. 字符串只能和字符串?dāng)?shù)據(jù)拼接s1 = "hello"+"world"print(s1)s2 = "hello"+666 # 報(bào)錯(cuò)s2 = "hello"+"666"s2 = "hello"+str(666) # 指定數(shù)據(jù)類型名(變量)print(s2) # A.hello666 B、其他的2.引號(hào)? -擴(kuò)展東升說(shuō): "我是38期最帥的男人."a = '東升說(shuō): "我是38期最帥的男人."'a = "東升說(shuō): \"我是38期最帥的男人.\""a = "東升說(shuō): '我是38期最帥的男人.'"
a = """東升說(shuō): "我是38期最帥的男人."
""" # 參考
print(a)
(1)在實(shí)際應(yīng)用中,創(chuàng)建字符串可以使用:單引號(hào)、雙引號(hào)或三引號(hào),但優(yōu)先使用雙引號(hào);
[掌握]索引:
索引有時(shí)也稱為下標(biāo)、編號(hào)。
先來(lái)看看現(xiàn)實(shí)生活中的索引。比如超市門口的儲(chǔ)物柜可以通過(guò)編號(hào)【索引】來(lái)找到。
Python字符串的索引,就與儲(chǔ)物柜編號(hào)類似。比如有個(gè)字符串變量:name = 'abcdef',存放效果:
獲取字符串元素語(yǔ)法:
變量名[索引值]
說(shuō)明:
索引值是從0開始計(jì)算的。
接著,來(lái)看一下字符串長(zhǎng)度的表示方式。
函數(shù)名 | 含義 |
---|---|
len(s) | 返回變量s的長(zhǎng)度或元素個(gè)數(shù)。 |
說(shuō)明:
(1)長(zhǎng)度值是從1開始計(jì)算的;
(2)索引與長(zhǎng)度的關(guān)系可表示為:【最大索引值 = 長(zhǎng)度 - 1】。
例子?:
(1)定義一個(gè)存有HelloWorld的字符串變量;
(2)獲取變量中的H和W;
(3)獲取變量的總長(zhǎng)度;
(4)思考:如何獲取變量的最后一個(gè)元素d
# 1.定義變量
strs = "HelloWorldABCDE"
# 2.獲取元素print(strs[0])print(strs[5])# 3.長(zhǎng)度print(len(strs))# 4.訪問(wèn)最后一個(gè)元素正常print(strs[9])
print(strs[len(strs)-1]) # 靈活 = 更好維護(hù)# 逆向
print(strs[-1])
注意:
(1)當(dāng)使用超出最大索引的值去訪問(wèn)字符串的元素,會(huì)報(bào)錯(cuò);
(2)索引與長(zhǎng)度的關(guān)系是:【最大索引值 = (長(zhǎng)度 - 1)】
[掌握]切片
切片指的是:截取字符串中的一部分內(nèi)容。
切片語(yǔ)法:
[起始:結(jié)束]
另外的,當(dāng)需要每隔幾個(gè)字符來(lái)截取內(nèi)容時(shí),可以加入步長(zhǎng),語(yǔ)法:
[起始:結(jié)束:步長(zhǎng)]
說(shuō)明:
(1)切片語(yǔ)法選取的范圍是左閉右開型,即[起始, 結(jié)束);
(2)注意:截取內(nèi)容時(shí),包含起始位,但不包含結(jié)束位。
例子:
(1)定義一個(gè)字符串變量,內(nèi)容為:HelloITHEIMA;
(2)截取索引值1到5之間的內(nèi)容;
(3)截取索引值2到結(jié)尾的內(nèi)容;
(4)截取索引值2到倒數(shù)第2個(gè)的內(nèi)容;
(5)截取起始處到索引值為3的內(nèi)容;
(6)截取索引1到8且每隔2個(gè)字母截取一下內(nèi)容;
(7)截取索引2到10且每隔3個(gè)截取一下內(nèi)容。
# 1.定義變量
strs = "HelloITHEIMA"
# 2.1-5print(strs[1:5])
# 3.2-print(strs[2:12])
# 4.2 - 倒數(shù)第2print(strs[2:10])
# 5. -3print(strs[0:3])
# 6 1 8 2print(strs[1:8:2])
# 7. 2 10 3
print(strs[2:10:3])
strs = "HelloITHEIMA"
# 3.2-print(strs[2:12])print(strs[2:100])print(strs[2:])# 4.2 - 倒數(shù)第2print(strs[2:10])print(strs[2:-2])# 5. -3print(strs[0:3])print(strs[:3])# 從后往前數(shù)數(shù),可以使用負(fù)數(shù)表示; 當(dāng)從開始處截取時(shí),可以省略起始位; 當(dāng)截取到結(jié)尾處時(shí),可以省略結(jié)束位.# 升級(jí): 記住 若要對(duì)字符串反轉(zhuǎn),該怎么做?
print(strs[::-1])
字符串的遍歷
[掌握]使用for遍歷字符串
==目標(biāo):==掌握使用for語(yǔ)句遍歷字符串。
for循環(huán)語(yǔ)法:
for 臨時(shí)變量 in 序列:
? ? 滿足條件時(shí),執(zhí)行的代碼1
? ? 滿足條件時(shí),執(zhí)行的代碼2
? ? ……
[else:
?? ?當(dāng)for循環(huán)正常執(zhí)行結(jié)束后,執(zhí)行代碼]
例子:
(1)定義一個(gè)字符串變量,內(nèi)容為:ABCDEF;
(2)使用for循環(huán)來(lái)遍歷元素;
(3)執(zhí)行程序,觀察效果。
# 1.定義字符串
strs = "ABCDEF"
# 2.使用for遍歷
for temp in strs: # 疑問(wèn): 元素對(duì)應(yīng)索引值?print(temp)# 3.擴(kuò)展 -elsefor temp in strs:print(temp)else:print("所有字符串元素已遍歷結(jié)束!!")
==總結(jié):==
(1)如果想快速獲取字符串的所有元素,可以直接使用for循環(huán);
(2)注意:使用for語(yǔ)句遍歷字符串時(shí),無(wú)法直接顯示索引值。
[掌握]使用while遍歷字符串
while循環(huán)語(yǔ)法:
初始化變量語(yǔ)句
while 循環(huán)條件:
? ? 循環(huán)體語(yǔ)句
? ? 改變循環(huán)條件的語(yǔ)句 ?# 先寫
接著,再來(lái)看看獲取長(zhǎng)度。
函數(shù)名 | 含義 |
---|---|
len(s) | 返回變量s的長(zhǎng)度或元素個(gè)數(shù)。 |
獲取元素值的語(yǔ)法:
變量名[索引值]
例子:
(1)定義一個(gè)字符串變量,內(nèi)容為:ABCDEF;
(2)使用while循環(huán)來(lái)遍歷元素;
(3)執(zhí)行程序,觀察效果。
# 1.定義字符串變量
strs = "ABCDEF"
# 2.寫循環(huán)
i = 0
# while i < len(strs):
while i <= (len(strs)-1):# 3.訪問(wèn)元素print(strs[i])i += 1# 思考:從后往前輸出??
==總結(jié):==
(1)如果要獲取字符串的所有元素,可以使用while循環(huán);
(2)注意:我們會(huì)發(fā)現(xiàn),可以使用for或while來(lái)遍歷字符串,但優(yōu)先考慮使用(==for==)循環(huán)來(lái)遍歷。
擴(kuò)展:斷點(diǎn)調(diào)試方法:
常用操作方法
[了解]查找元素
==目標(biāo):==了解字符串查找方法的使用。
字符串的查找方法指的是查找元素(或子串)在字符串內(nèi)容的索引位置。
查找方法:
函數(shù)名 | 含義 |
---|---|
find(sub) | 檢測(cè)sub是否包含在字符串中,如果是,則返回sub所在開始的索引,否則返回-1。 |
index(sub) | 與find()類似,只不過(guò)當(dāng)sub在字符串中不存在時(shí),會(huì)報(bào)錯(cuò)誤。 |
rfind(sub) | 從右往左找子串在字符串的某個(gè)索引。 |
count(sub) | 計(jì)算sub在字符串中出現(xiàn)的總次數(shù)。 |
例子:
(1)定義一個(gè)字符串變量,內(nèi)容為:hello world and itcast and itheima and Python;
(2)分別使用find()和index()函數(shù)來(lái)查看and所在位置;
(3)思考1:如果查找不存在的內(nèi)容666,效果如何?
(4)思考2:若要從右往左查找and,該怎么做?若還要獲取and出現(xiàn)的總次數(shù)呢?
(5)擴(kuò)展:字符串的操作方法那么多,該怎么記憶呢?
==總結(jié):==
(1)當(dāng)要查找字符串的某元素時(shí),可以使用find()、index();
(2)注意:實(shí)際應(yīng)用中,優(yōu)先使用(==find()==)方法查找字符串元素,因?yàn)檫@個(gè)方法更穩(wěn)定。
# 1.定義字符串
name = "hello world and itcast and itheima and Python"
?
# 2.and -find() index()print(name.find("and"))print(name.index("and"))
?
# 3.對(duì)比f(wàn)ind indexprint(name.find("666")) # 穩(wěn)定print(name.index("666")) # 報(bào)錯(cuò)
?
# 4.從右往左 ? rightprint(name.rfind("and"))print(name.rindex("and"))
# 總次數(shù)print(name.count("and"))
?
# 5.如何記憶
# a.大佬發(fā)
# b.技巧: 看快捷提示
# name.
[掌握]修改元素
==目標(biāo):==掌握字符串修改方法的使用。
字符串的修改方法,指的是修改字符串中的數(shù)據(jù)。
函數(shù)名 | 含義 |
---|---|
replace(old, new) | 用于將字符串中的old內(nèi)容替換成new內(nèi)容。 |
split(sep) | 使用指定內(nèi)容sep來(lái)對(duì)字符串進(jìn)行切割。 |
strip() | 用于去掉字符串前后的空白內(nèi)容。 |
說(shuō)明:
修改字符串,就是將字符串原有內(nèi)容修改為其他結(jié)果。
例子:
(1)定義一個(gè)字符串變量,內(nèi)容有: hello itheima big data ;
(2)將變量中的空格替換為666;
(3)使用空格、字符a來(lái)分別分割字符串;
(4)去掉字符串的前后空白內(nèi)容。
# 1.定義字符串strs = "hello itheima big data"
# 2.替換ret1 = strs.replace(" ","666")print(ret1) ? #" " -暫無(wú)數(shù)據(jù)
# 3.分割 -切割ret2 = strs.split("a")print(ret2)
# 4.去掉空白
strs = " hello itheima big data ? "print(strs.strip())
result1 = strs.lstrip()
result2 = result1.rstrip()
print(result2)
==總結(jié):==
(1)當(dāng)要對(duì)字符串文本內(nèi)容進(jìn)行替換數(shù)據(jù)時(shí),可以使用(replace())方法;
(2)注意:split()常應(yīng)用與分割字符串?dāng)?shù)據(jù)內(nèi)容。
列表的基本使用
[掌握]列表的定義
==目標(biāo):==掌握如何定義列表。
列表類型為list,是Python中的一種常見類型。
列表可以存放各種數(shù)據(jù)類型的數(shù)據(jù),且列表的長(zhǎng)度會(huì)隨著添加數(shù)據(jù)的變化而變化。
列表語(yǔ)法:
變量名 = [元素1,元素2,元素3,...]
說(shuō)明:
列表的多個(gè)元素之間使用,逗號(hào)分隔。
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量1,用于存放幾個(gè)知名大學(xué)名稱;
(2)定義一個(gè)列表變量2,用于存放某學(xué)生的姓名、年齡、存款、是否男生等信息;
(3)思考:要把字符串Python轉(zhuǎn)換為列表list類型的值,該怎么做?
# 1.定義列表變量:相同類型lists = ["南京大學(xué)","南開大學(xué)","南昌大學(xué)","東南大學(xué)"] # 數(shù)組print(type(lists))
?
# 2.不同類型的數(shù)據(jù)元素data = ["汪致誠(chéng)",38,0,True]print(type(data)) ? # 列表中可以存放多種不同類型的數(shù)據(jù)
?
# 3.思考: list()
strs = "Python"
result = list(strs)
print(result) ? # A.[python] B.[P ? y ? t h o n]
==總結(jié):==
(1)列表就是一個(gè)Python容器,可以用于存放任意類型的數(shù)據(jù);
(2)注意:如果要定義一個(gè)列表變量,可以使用()符號(hào):==A、[ ]==;B、{ }。
[掌握]訪問(wèn)列表元素和長(zhǎng)度
==目標(biāo):==掌握如何訪問(wèn)列表元素和長(zhǎng)度。
獲取列表的元素和長(zhǎng)度的方式與字符串一樣。
獲取列表元素語(yǔ)法:
變量名[索引值]
說(shuō)明:索引值是從0開始計(jì)算的。
再來(lái)看一下列表長(zhǎng)度的表示方式。
函數(shù)名 | 含義 |
---|---|
len(s) | 返回變量s的長(zhǎng)度或元素個(gè)數(shù)。 |
說(shuō)明:
(1)長(zhǎng)度值是從1開始計(jì)算的;
(2)索引與長(zhǎng)度的關(guān)系可表示為:【最大索引值 = 長(zhǎng)度 - 1】。
例如,一起來(lái)完成:
(1)獲取知名大學(xué)名稱列表變量的元素總個(gè)數(shù);
(2)獲取列表變量的第1個(gè)和第3個(gè)位置對(duì)應(yīng)的元素值;
(3)思考:若直接訪問(wèn)不存在的第100個(gè)元素值,會(huì)怎樣?
lists = ["南京大學(xué)","南開大學(xué)","南昌大學(xué)","東南大學(xué)"]
# 獲取總個(gè)數(shù)print(len(lists))
# 訪問(wèn)元素print(lists[0])print(lists[2])
?
# 問(wèn)題
print(lists[100])
# 注意: 當(dāng)直接通過(guò) 變量名[索引值] 訪問(wèn)元素時(shí), 記得索引值不允許超過(guò)最大索引值。 -報(bào)錯(cuò)!
==總結(jié):==
(1)當(dāng)給列表變量添加新內(nèi)容后,列表的長(zhǎng)度也會(huì)變化;
(2)注意:如果要獲取列表元素的總個(gè)數(shù),可以使用(len(xx))方法。
[掌握]使用for遍歷列表
==目標(biāo):==掌握使用fo語(yǔ)句遍歷列表。
先來(lái)看看,for循環(huán)語(yǔ)法:
for 臨時(shí)變量 in 序列:滿足條件時(shí),執(zhí)行的代碼1滿足條件時(shí),執(zhí)行的代碼2…… [else:當(dāng)for循環(huán)正常執(zhí)行結(jié)束后,執(zhí)行代碼]
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,用于存放水果信息,內(nèi)容為:蘋果、香蕉、西瓜、菠蘿等;
(2)使用for循環(huán)來(lái)遍歷元素;
(3)執(zhí)行程序,觀察效果。
# 1.定義列表變量
datas = ["蘋果","香蕉","西瓜","菠蘿"]
# 2.遍歷for temp in datas:print(temp)
?
# 3.查看到索引? ? 索引值 --> 元素
index = 0 ?# 引入一個(gè)計(jì)數(shù)器
for temp in datas:print(temp)print(f"{index} --> {temp}")index += 1
==總結(jié):==
(1)如果想快速獲取列表的所有元素,可以使用for循環(huán);
(2)注意:如果要在for循環(huán)中獲取列表的索引值,可以引入一個(gè)計(jì)數(shù)器,這句話正確嗎?==A、正確==;B、錯(cuò)誤。
[了解]使用while遍歷列表
==目標(biāo):==掌握使用while語(yǔ)句遍歷列表。
先來(lái)看看,while循環(huán)語(yǔ)法:
初始化變量語(yǔ)句 while 循環(huán)條件:循環(huán)體語(yǔ)句改變循環(huán)條件的語(yǔ)句 # 先寫
接著,再來(lái)看看獲取長(zhǎng)度。
函數(shù)名 | 含義 |
---|---|
len(s) | 返回變量s的長(zhǎng)度或元素個(gè)數(shù)。 |
獲取元素值的語(yǔ)法:
變量名[索引值]
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,用于存放水果信息,內(nèi)容為:蘋果、香蕉、西瓜、菠蘿等;
(2)使用while循環(huán)來(lái)遍歷元素;
(3)執(zhí)行程序,觀察效果。
datas = ["蘋果","香蕉","西瓜","菠蘿"]
# 遍歷
i = 0
while i < len(datas):print(datas[i])i += 1
?i = len(datas)-1while i >= 0:print(datas[i])i -= 1
?
# 擴(kuò)展: 切片datas = ["蘋果","香蕉","西瓜","菠蘿"]
# # 獲取除最后一個(gè)元素外的其他元素內(nèi)容print(datas[0:-1])print(datas[:-1])# 獲取第2-3個(gè)元素內(nèi)容print(datas[1:3])
==總結(jié):==
(1)如果要獲取列表的所有元素,可以使用while循環(huán);
(2)注意:在實(shí)際應(yīng)用中,可以優(yōu)先使用for循環(huán)來(lái)遍歷列表元素,因?yàn)閒or循環(huán)簡(jiǎn)單實(shí)用。
操作列表
[掌握]添加元素
==目標(biāo):==掌握如何給列表添加元素。
給列表添加元素表示的是:在列表變量的基礎(chǔ)上,再添加新元素內(nèi)容。
添加元素的方法:
函數(shù)名 | 含義 |
---|---|
append(x) | 用于在列表結(jié)尾處,添加數(shù)據(jù)內(nèi)容x。 |
insert(index, x) | 用于在列表索引index處,新增一個(gè)元素x。 |
extend(x) | 用于給列表添加另一個(gè)列表的所有元素內(nèi)容,并形成一個(gè)完整列表。 |
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,存放內(nèi)容:中國(guó)、美國(guó)、英國(guó)、俄羅斯;
(2)在列表結(jié)尾處添加元素:德國(guó);
(3)在元素美國(guó)后添加元素:日本;
(4)思考:若要在列表變量的結(jié)尾處,再新增元素:100、200、300,該怎么做?
# 1.定義列表的變量
country_list = ["中國(guó)","美國(guó)","英國(guó)","俄羅斯"] ?# 可變類型
print(f"原始數(shù)據(jù):{country_list}")
?
# 2.添加1個(gè)元素到結(jié)尾
country_list.append("德國(guó)")
print(country_list)
?
# 3.在某元素后添加country_list.insert(1, "日本")print(country_list)
?
# 4.批量添加lists = [100,200,300]country_list.extend(lists)print(country_list)
?
# 5.擴(kuò)展?lists = [100,200,300] ? # append添加一個(gè)元素
country_list.append(lists)
print(country_list)
==總結(jié):==
(1)當(dāng)要給列表添加元素時(shí),首先應(yīng)該想到方法:(append());
(2)注意:當(dāng)給列表添加一個(gè)元素后,列表的長(zhǎng)度也會(huì)增加1。
[掌握]刪除元素
==目標(biāo):==掌握如何刪除列表元素。
刪除列表元素指的是:刪除列表變量的某元素內(nèi)容。
刪除元素的方法:
函數(shù)名 | 含義 |
---|---|
remove(x) | 刪除列表元素值x。 |
del 變量名[索引] | 根據(jù)索引值,刪除列表的某個(gè)元素。 |
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,存放內(nèi)容:中國(guó)、美國(guó)、英國(guó)、俄羅斯;
(2)使用remove()刪除元素:英國(guó);
(3)使用del刪除元素:美國(guó);
(4)執(zhí)行程序,觀察效果。
# 1.定義列表的變量
country_list = ["中國(guó)","美國(guó)","英國(guó)","俄羅斯"]
print(country_list)
print(f"原始長(zhǎng)度:{len(country_list)}")
?
# remove()刪除
country_list.remove("英國(guó)")
print(country_list)
print(f"刪除后的長(zhǎng)度:{len(country_list)}")
?
# del 刪除del country_list[1]print(country_list)
?
# 擴(kuò)展?country_list = ["中國(guó)","美國(guó)","英國(guó)","俄羅斯"]# country_list.pop()# print(country_list)print(country_list[:-1])
==總結(jié):==
(1)當(dāng)要?jiǎng)h除列表中的元素時(shí),可以使用方法:A、remove();B、delete();
(2)注意:當(dāng)刪除列表中的一個(gè)元素后,列表的長(zhǎng)度也會(huì)減1。
[掌握]修改元素
==目標(biāo):==掌握如何修改列表元素。
修改列表元素指的是:修改列表變量的某元素內(nèi)容。
修改元素的方法:
函數(shù)名 | 含義 |
---|---|
變量名[索引] = 值 | 根據(jù)索引值,來(lái)修改列表中的某個(gè)元素值。 |
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,存放內(nèi)容:中國(guó)、美國(guó)、英國(guó)、俄羅斯;
(2)將中國(guó)修改為中華人民共和國(guó);
(3)修改俄羅斯為Russia;
(4)執(zhí)行程序,觀察效果。
# 1.定義列表的變量
country_list = ["中國(guó)","美國(guó)","英國(guó)","俄羅斯"]
# 2.修改中國(guó)country_list[0] = "中華人民共和國(guó)"print(country_list)
?
# 3.修改俄羅斯country_list[3] = "Russia"
country_list[-1] = "Russia"
print(country_list)
==總結(jié):==
(1)如果要修改列表的元素,可以通過(guò)索引值來(lái)操作,這句話正確嗎?==A、正確==;B、錯(cuò)誤;
(2)注意:修改列表元素的操作在實(shí)際應(yīng)用中使用較少,了解即可。
[掌握]查找元素
==目標(biāo):==掌握列表元素的查找。
查找列表元素指的是:查找列表變量的某元素內(nèi)容是否存在?
查找元素的方法:
函數(shù)名 | 含義 |
---|---|
len(s) | 返回s的長(zhǎng)度或元素個(gè)數(shù)。 |
in | 判斷指定數(shù)據(jù)是否在某個(gè)列表序列中。如果在就返回True,否則返回False。 |
例如,一起來(lái)完成:
(1)因["192.168.1.15", "10.1.1.100", "172.35.46.128","172.32.24.99"]等IP地址存在惡意訪問(wèn)黑馬程序員官網(wǎng),被列為訪問(wèn)黑名單;
(2)獲取黑名單IP列表的長(zhǎng)度;
(3)從鍵盤上輸入一個(gè)IP地址,并用于判斷是否是黑名單IP地址?
# 1.定義ip列表
ip_lists = ["192.168.1.15", "10.1.1.100", "172.35.46.128","172.32.24.99"]
# 2.獲取長(zhǎng)度print(len(ip_lists))
# 3.判斷是否是黑名單
temp_ip = input("請(qǐng)輸入IP地址:")
if temp_ip in ip_lists:print("Forbidden 403, 你的行為不檢點(diǎn)!!!")
else:print("歡迎你!!")
==總結(jié):==
(1)如果要判斷列表中是否存在某元素值,可以使用()關(guān)鍵字:A、and;==B、in==;
(2)當(dāng)查找列表元素時(shí),有兩種情況,比如:遍歷列表中的所有元素、查找某元素是否存在列表中。
[了解]排序操作
==目標(biāo):==了解列表的排序操作。
排序通常指按從小到大、從大到小的順序排列。
操作方法有:
函數(shù)名 | 含義 |
---|---|
reverse() | 將列表進(jìn)行倒序,即輸入順序與輸出順序相互倒過(guò)來(lái)。 |
sort([reverse=False]) | 對(duì)列表進(jìn)行從小到大排序。當(dāng)設(shè)置reverse=True可改為由大到小排序。 |
例如,一起來(lái)完成:
(1)定義一個(gè)列表變量,存放數(shù)據(jù):10、200、20、100、30、0;
(2)將列表數(shù)據(jù)進(jìn)行倒序輸出;
(3)將列表進(jìn)行從小到大排序;
(4)思考:若要將列表元素進(jìn)行從大到小排序,該怎么做呢?
# 1.定義變量
data = [10,200,20,100,30,0]
# 2.倒序
# data.reverse()
# print(data)
# 3.從小到大排序
data.sort()
print(data)
# 4.從大到小排序
# ?? 切片 ? -先從小到大、倒序
# data.sort()
# data.reverse()
# print(data)
# sort(=True)
?
# data.sort(reverse=True) ? # 參數(shù)??
# print(data)
==總結(jié):==
(1)當(dāng)要對(duì)一批數(shù)值型數(shù)據(jù)做從小到大排序時(shí),可以使用(sort())方法;
(2)注意:在實(shí)際應(yīng)用中對(duì)內(nèi)容的排序,方式有:A、阿拉伯?dāng)?shù)字排序;B、英文字母排序;C、其他內(nèi)容排序。
元組
[了解]定義元組
==目標(biāo):==了解如何定義元組。
定義元組時(shí),需要使用()小括號(hào),用,逗號(hào)隔開各個(gè)元素,并且,元組的元素可以是不同類型的數(shù)據(jù)。
雖然元組從表面上看與列表類似,比如:
列表: [1, 2, 3, 4] 元組: (1, 2, 3, 4)
特別注意,元組的元素只能用來(lái)查詢,且元素不可以修改、不可以刪除、也不可以添加。
元組語(yǔ)法:
變量名 = (元素1,元素2,元素3,...)
說(shuō)明:
(1)元組元素需要使用()小括號(hào)引起來(lái);
(2)元組變量中可以存放不同類型的數(shù)據(jù)。
例如,一起來(lái)完成:
(1)定義一個(gè)元組變量1,用來(lái)存放多個(gè)數(shù)值;
(2)定義一個(gè)元組變量2,并存放不同類型的數(shù)據(jù);
(3)查看變量類型,執(zhí)行程序,觀察效果。
# 1.定義變量1
ts1 = (1,2,3,8,90,)
# 2.定義變量2
ts2 = (True,"男","itheima",)
# 查看類型
print(ts1)
print(type(ts1))
print(type(ts2))
?
# 擴(kuò)展?ts = (24) # <class 'int'>
ts = (24,)
print(type(ts))
==總結(jié):==
(1)當(dāng)元組中僅有一個(gè)元素時(shí),應(yīng)該定義為【(元素, )】;
(2)請(qǐng)問(wèn):元組的內(nèi)容可以查詢,但不能添加、不能刪除、也不能修改,這句話正確嗎?==A、正確==;B、錯(cuò)誤。
[掌握]常見操作
==目標(biāo):==掌握元組的查找。
我們已知道,元組數(shù)據(jù)只支持查找,且不支持修改、刪除和添加。
操作方法有:
函數(shù)名 | 含義 |
---|---|
元組變量名[索引] | 按索引值查找數(shù)據(jù)。 |
index(x) | 查找某個(gè)數(shù)據(jù),當(dāng)數(shù)據(jù)不存在時(shí)會(huì)報(bào)錯(cuò),語(yǔ)法和列表、字符串的index()方法相同。 |
len(x) | 表示元組中元素的總個(gè)數(shù)。 |
in | 用于判斷元素是否出現(xiàn)在元組中。 |
例如,一起來(lái)完成:
(1)定義一個(gè)元組變量,內(nèi)容有:Python、MySQL、Linux、Hadoop;
(2)試著給元組變量添加、刪除、修改元素,觀察效果;
(3)查找元組中的元素:Python、Linux;
(4)查看元組中的元素總個(gè)數(shù);
(5)判斷Hello是否存在元組變量中?
# 1.定義變量 source = ("Python","Linux","MySQL","Hadoop",) # 2.思考: 添加、刪除、修改 # source[0] = "黑馬" # 不支持修改 # source.ap # 不支持添加 # del source[0] # 不支持刪除 # 3.查找 print(source[0]) print(source[1]) # 4.個(gè)數(shù) # print(len(source)) # 5.是否存在 print("Hello" in source)
==總結(jié):==
(1)如果要獲取元組的元素總個(gè)數(shù),可以使用(len())方法;
(2)注意:元組的數(shù)據(jù)內(nèi)容常用于查找,比如是否存在元組中、元素所在索引值等。
[掌握]使用for和while遍歷元組
==目標(biāo):==掌握f(shuō)or和while遍歷元組。
先來(lái)看看for循環(huán)語(yǔ)法:
for 臨時(shí)變量 in 序列:滿足條件時(shí),執(zhí)行的代碼1滿足條件時(shí),執(zhí)行的代碼2……
接著,看一下while循環(huán)語(yǔ)法:
初始化變量語(yǔ)句 while 循環(huán)條件:循環(huán)體語(yǔ)句改變循環(huán)條件的語(yǔ)句 # 先寫
例如,一起來(lái)完成:
(1)定義一個(gè)元組變量,存放幾個(gè)知名的手機(jī)品牌;
(2)分別使用for和while循環(huán)遍歷元組數(shù)據(jù);
(3)執(zhí)行程序,觀察效果。
# 1.定義元組變量
phone_lists = ("三星","蘋果","OPPO","傳音","Mi",)
# 2.遍歷元組數(shù)據(jù)
# forfor temp in phone_lists:print(temp)while
index = len(phone_lists)-1
while index >= 0:print(phone_lists[index])index -= 1
==總結(jié):==
(1)注意:元組也是序列,因此可以使用循環(huán)來(lái)處理;
(2)若要遍歷元組的數(shù)據(jù)內(nèi)容,優(yōu)先考慮使用()循環(huán):==A、for==;B、while。
[了解]元組的應(yīng)用場(chǎng)景
==目標(biāo):==了解元組的應(yīng)用場(chǎng)景。
元組的應(yīng)用場(chǎng)景較多,但都離不開格式【(元素1, 元素2, ...)】。
常見應(yīng)用場(chǎng)景有:
(1)當(dāng)要存放一些固定值和內(nèi)容時(shí),優(yōu)先考慮使用元組,比如存儲(chǔ)黑馬程序員、www.itheima.com、法人、注冊(cè)地址等; (2)格式化符號(hào)后使用%百分號(hào)連接的()內(nèi)容,本質(zhì)上就是一個(gè)元組; (3)元組就是:讓列表的數(shù)據(jù)不可以修改、刪除、添加,這樣可以保護(hù)數(shù)據(jù)安全; (4)Python函數(shù)后面的任意多個(gè)參數(shù),也是元組形式。
例如,一起來(lái)完成:
(1)定義3個(gè)變量:姓名、年齡、身高,并使用格式化符號(hào)拼接后再輸出;
(2)對(duì)兩個(gè)變量a和b進(jìn)行互換順序;
(3)執(zhí)行程序,觀察效果。
# 1.定義元組變量
# 2.拼接name = "金臻韜"age = 23height = 175.00print("姓名:%s, 年齡:%d, 身高:%fcm"%(name,age,height))
?
# 3.互換位置
a = 18
b = 99
# 元組a,b = b,a
(a,b) = (b,a)
?
# 其他語(yǔ)言: 引入第3方變量temp = aa = bb = temp
?
# 按位異或a = a ^ b # 位運(yùn)算 -先把數(shù)據(jù)轉(zhuǎn)換二進(jìn)制b = a ^ ba = a ^ b
?
print(f"a = {a}")
print(f"ab = ")
==總結(jié):==
(1)元組的主要用途有存儲(chǔ)數(shù)據(jù)、傳遞元組數(shù)據(jù);
(2)注意:在后期使用中,當(dāng)看到類似【(元素1, 元素2, ...)】的形式時(shí),可以當(dāng)成是(元組)類型的數(shù)據(jù)。
字典介紹
[掌握]什么是字典
==目標(biāo):==掌握如何定義字典變量。
先來(lái)看看現(xiàn)實(shí)生活中的字典。我們知道,可以應(yīng)用字典來(lái)查找漢字。
接著,來(lái)看看Python中的字典。比如,定義一個(gè)本書:
{"name":"新華字典","page":568,"price":46.5}
仔細(xì)觀察,會(huì)發(fā)現(xiàn)Python字典需要使用{ }引起來(lái),且元素形式為鍵值對(duì)。
鍵值對(duì),可以理解為一一對(duì)應(yīng)的關(guān)系,即可以通過(guò)鍵找到值。
比如,通過(guò)圖片網(wǎng)址找到一張圖片。
鏈接:http://5b0988e595225.cdn.sohucs.com/images/20190823/95dd50dcf9fa4547ba4bafdf65f2c74e.jpeg
字典語(yǔ)法:
變量名 = {鍵1: 值1, 鍵2: 值2, ...}
說(shuō)明:
(1)鍵、值組合在一起,形成了字典的元素;
(2)字典元素的鍵是唯一的;
(3)字典元素的值可以重復(fù);
(4)可以使用字典存儲(chǔ)大量數(shù)據(jù)。
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放一個(gè)學(xué)生的信息:姓名、性別、住址、年齡等;
(2)輸出并查看字典變量值與類型;
(3)思考1:若給字典變量存放兩個(gè)性別信息,會(huì)怎樣?
(4)思考2:若給字典變量再存放一個(gè)薪酬,與年齡值相同,會(huì)怎樣?
# 1.定義字典變量
student = {"name":"歐陽(yáng)芝","sex":"女","address":"廣東廣州","age":16}
# 2.查看類型和變量值print(type(student)) # <class 'dict'>print(student)
# 3.存放兩個(gè)性別? sex 鍵唯一?student = {"name":"歐陽(yáng)芝","sex":"女","address":"廣東廣州","age":16,"sex":"Female"}print(student) ? # 鍵是唯一的,如果有多個(gè)相同的鍵, 最后的鍵會(huì)把前面的鍵所對(duì)應(yīng)的值都給覆蓋了
# 4.value多個(gè)student = {"name":"歐陽(yáng)芝","sex":"女","address":"廣東廣州","age":16,"salary":16}print(student) # 值可以重復(fù)
==總結(jié):==
(1)字典與列表類似,都屬于可變數(shù)據(jù)類型,即當(dāng)添加元素后,長(zhǎng)度也跟著變化;
(2)注意:字典的內(nèi)部元素形式是鍵值對(duì),且鍵是唯一的,這句話正確嗎?==A、正確==;B、錯(cuò)誤。
[掌握]使用字典
==目標(biāo):==掌握字典的簡(jiǎn)單使用。
通常情況下,使用字典的是獲取元素鍵值對(duì)的值。
通過(guò)鍵來(lái)訪問(wèn)值的方式有兩種。方式1:
變量名[鍵]
當(dāng)訪問(wèn)不存在的鍵時(shí),提升穩(wěn)定性,可使用方式2:
函數(shù)名 | 含義 |
---|---|
get(key[, default]) | 返回指定鍵key對(duì)應(yīng)的值,若值不在字典中,則返回默認(rèn)值。 |
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放一個(gè)學(xué)生的信息:姓名、住址、年齡等;
(2)分別使用不同方式去獲取字典的姓名、住址值;
(3)思考:當(dāng)訪問(wèn)不存在的性別信息時(shí),會(huì)怎樣?
# 1.定義變量 student = {"name":"歐陽(yáng)芝","address":"廣東廣州","age":16,"sex":"Female"} # 2.獲取值 print(student["name"]) print(student["address"]) ?# 可以通過(guò)鍵來(lái)訪問(wèn)值 ? # 3.訪問(wèn)不存在的值 # print(student["sex"]) # print(student.get("sex")) ? # 1. None ? 2.不報(bào)錯(cuò) # print(student.get("sex","女"))
==總結(jié):==
(1)使用字典時(shí),可以通過(guò)鍵訪問(wèn)值,優(yōu)先使用【變量名[鍵]】來(lái)訪問(wèn);
(2)注意:當(dāng)通過(guò)鍵訪問(wèn)字典的值出錯(cuò)時(shí),可以考慮使用:A、變量名[鍵];==B、get(鍵)==。
字典的常見操作
[掌握]添加元素
==目標(biāo):==掌握如何給字典添加元素。
添加元素指的是:給字典添加新元素內(nèi)容。
添加元素語(yǔ)法:
變量名[鍵] = 值
說(shuō)明:當(dāng)要添加多個(gè)元素時(shí),則執(zhí)行多次添加元素的操作。
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放老師信息:姓名、體重、年齡等;
(2)給老師變量添加一個(gè)興趣愛好;
(3)思考:若給一個(gè)空字典添加2個(gè)元素,該怎么做?
(4)執(zhí)行程序,觀察效果。
# 1.定義變量
teacher = {"name":"濤哥","weight":95,"age":40}
print(teacher)
# 2.添加一個(gè)元素
teacher["gender"] = "男"
print(teacher)
?
# 3.空字典添加2個(gè)元素
# teacher = {}
# teacher["name"] = "方哥"
# teacher["like"] = "愛好工作"
# print(teacher)
# print(type(teacher))
==總結(jié):==
(1)當(dāng)直接給變量?jī)?nèi)容定義為{ }時(shí),表示是()變量:A、列表;==B、字典==;
(2)注意:字典中的元素不分先后順序,可任意存儲(chǔ)字典的數(shù)據(jù)。
[了解]刪除元素
==目標(biāo):==了解如何刪除元素。
刪除元素指的是:刪除字典的某元素,或者清空字典的所有數(shù)據(jù)。
刪除元素方法:
函數(shù)名 | 含義 |
---|---|
del 變量名[鍵] | 刪除指定元素。 |
clear() | 清空字典的所有元素內(nèi)容。 |
清空數(shù)據(jù)的操作,簡(jiǎn)要來(lái)了解一下。
說(shuō)明:
(1)當(dāng)要添加新的純凈數(shù)據(jù)前,要先把原有數(shù)據(jù)做清空處理;
(2)比如,先搜索酒店、再搜索美食,觀察效果鏈接:百度地圖。
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放老師信息:姓名、體重、年齡等;
(2)試著刪除字典的體重元素;
(3)思考:當(dāng)要給字典變量重新添加數(shù)據(jù)時(shí),該怎么辦?
teacher = {"name":"濤哥","weight":95,"age":40}
# 1.刪除體重
del teacher["weight"]
print(teacher)
?
# 2.重新添加數(shù)據(jù)
# teacher.clear()
# print(teacher)
==總結(jié):==
(1)對(duì)于刪除字典的元素?cái)?shù)據(jù),使用較少,了解即可;
(2)注意:在實(shí)際應(yīng)用中,若需要重新給字典變量添加新數(shù)據(jù),建議先使用clear()清空數(shù)據(jù)。
[掌握]修改元素
==目標(biāo):==掌握如何修改字典的元素。
修改元素指的是:對(duì)已有元素進(jìn)行修改,當(dāng)成功修改后,則會(huì)用最新修改的值替換原有值。
修改元素語(yǔ)法:
變量名[鍵] = 值
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放老師信息:姓名、體重、年齡等;
(2)修改字典變量的姓名、體重值。
teacher = {"name":"濤哥","weight":95,"age":40}
# 修改姓名
teacher["name"] = "健哥"
# 修改體重
teacher["weight"] = 110
print(teacher)
==總結(jié):==
(1)請(qǐng)問(wèn):修改和添加字典元素時(shí),都可以采用【變量名[鍵] = 值】,這句話對(duì)嗎?A、對(duì);B、錯(cuò);
(2)注意:修改與添加字典元素的語(yǔ)法一樣,要多理解一下應(yīng)用場(chǎng)景。
[掌握]查找元素
==目標(biāo):==掌握如何查找字典的元素值。
查找元素指的是:通過(guò)鍵來(lái)訪問(wèn)值。
比如,訪問(wèn)值的方式有兩種:
變量名[鍵]
函數(shù)名 | 含義 |
---|---|
get(key[, default]) | 返回指定鍵key對(duì)應(yīng)的值,若值不在字典中,則返回默認(rèn)值。 |
例如,一起來(lái)完成:
(1)定義一個(gè)字典變量,存放老師信息:姓名、體重、年齡等;
(2)使用兩種方式來(lái)查看老師的姓名、年齡。
teacher = {"name":"濤哥","weight":95,"age":40}
print(teacher["name"])
print(teacher.get("age")) ? # 若報(bào)錯(cuò),則優(yōu)先考慮使用get()
==總結(jié):==
(1)為了提升查找字典元素值的穩(wěn)定性,可以考慮使用()方法:==A、get()==;B、變量名[鍵]。
生成驗(yàn)證碼案例
==目標(biāo):==完成生成驗(yàn)證碼的案例。
現(xiàn)實(shí)生活中,登錄APP時(shí),經(jīng)常要進(jìn)行驗(yàn)證碼識(shí)別,比如:
說(shuō)明:
(1)驗(yàn)證碼可以使用字符串 + 循環(huán)語(yǔ)句來(lái)生成;
(2)僅需將多個(gè)動(dòng)態(tài)生成的數(shù)字執(zhí)行拼接處理,即可生成驗(yàn)證碼。
例如,一起來(lái)完成:
(1)請(qǐng)生成一個(gè)由數(shù)字、字母組成的6位數(shù)的驗(yàn)證碼;
(2)文本內(nèi)容:【抖音】驗(yàn)證碼2943AD,用于手機(jī)驗(yàn)證碼登錄,5分鐘內(nèi)有效。驗(yàn)證碼提供給他人可能導(dǎo)致賬號(hào)被盜,請(qǐng)勿泄露,謹(jǐn)防被騙。
import random
?
# 1.先要有批量文本內(nèi)容 數(shù)字、字母
strs = "0123456789ABCDECGHIJKLMNOPQRSTUVWXYZabcdecghijklmnopqrstuvwxyz"
code = ""
# 2.for循環(huán)
for temp in range(6):# 3.動(dòng)態(tài)獲取字母或數(shù)字 + 拼接index = random.randint(0,len(strs)-1)text = strs[index]# print(text)# 4.生成了驗(yàn)證碼code += text
# print(code)
message = f"【抖音】驗(yàn)證碼{code},用于手機(jī)驗(yàn)證碼登錄,5分鐘內(nèi)有效。驗(yàn)證碼提供給他人可能導(dǎo)致賬號(hào)被盜,請(qǐng)勿泄露,謹(jǐn)防被騙。"
print(message)