內(nèi)容來(lái)源于網(wǎng)絡(luò),本人只是在此稍作整理,如有涉及版權(quán)問(wèn)題,歸小甲魚(yú)官方所有。
練習(xí)題(來(lái)自小甲魚(yú)官方論壇)
0. 我們根據(jù)列表、元祖和字符串的共同特點(diǎn),把它們?nèi)y(tǒng)稱(chēng)為什么?
答:序列,因?yàn)樗麄冇幸韵鹿餐c(diǎn):
- 都可以通過(guò)索引得到每一個(gè)元素
- 默認(rèn)索引值總是從0開(kāi)始(當(dāng)然靈活的Python還支持負(fù)數(shù)索引)
- 可以通過(guò)分片的方法得到一個(gè)范圍內(nèi)的元素的集合
- 有很多共同的操作符(重復(fù)操作符、拼接操作符、成員關(guān)系操作符)
1. 請(qǐng)問(wèn)分別使用什么BIF,可以把一個(gè)可迭代對(duì)象轉(zhuǎn)換為列表、元祖和字符串?
答:
list([iterable]) 把可迭代對(duì)象轉(zhuǎn)換為列表
tuple([iterable]) 把可迭代對(duì)象轉(zhuǎn)換為元祖
str(obj) 把對(duì)象轉(zhuǎn)換為字符串
例如:
>>> temp = 'I love FishC.com!'
>>> list(temp)
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'F', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm', '!']
2. 你還能復(fù)述出“迭代”的概念嗎?
答: 所謂迭代,是重復(fù)反饋過(guò)程的活動(dòng),其目的通常是為了接近并到達(dá)所需的目標(biāo)或結(jié)果。每一次對(duì)過(guò)程的重復(fù)被稱(chēng)為一次“迭代”,而每一次迭代得到的結(jié)果會(huì)被用來(lái)作為下一次迭代的初始值。
3. 你認(rèn)為調(diào)用 max('I love FishC.com') 會(huì)返回什么值?為什么?
答:會(huì)返回:'v',因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存儲(chǔ),參數(shù)中ASCII碼值最大的是'v'對(duì)應(yīng)的118。
4. 哎呀呀,現(xiàn)在的小屁孩太調(diào)皮了,鄰居家的孩子淘氣,把小甲魚(yú)剛寫(xiě)好的代碼畫(huà)了個(gè)圖案,麻煩各位魚(yú)油恢復(fù)下啊,另外這家伙畫(huà)的是神馬嗎?怎么那么眼熟?。??

代碼.png
(圖片轉(zhuǎn)載https://blog.csdn.net/junwei0206/article/details/44766631)
答:
if name == each[0]:
name != each[0]:
編程題
0. 猜想一下 min() 這個(gè)BIF的實(shí)現(xiàn)過(guò)程:
答:
def min(x):
least = x[0]
for each in x:
if each < least:
least = each
return least
print(min('123456789'))
注:關(guān)于函數(shù)的定義和使用在下一講的課程中講解,目前只需要理解該BIF實(shí)現(xiàn)的原理即可。
1. 視頻中我們說(shuō) sum() 這個(gè)BIF有個(gè)缺陷,就是如果參數(shù)里有字符串類(lèi)型的話(huà)就會(huì)報(bào)錯(cuò),請(qǐng)寫(xiě)出一個(gè)新的實(shí)現(xiàn)過(guò)程,自動(dòng)“無(wú)視”參數(shù)里的字符串并返回正確的計(jì)算結(jié)果。
答:
def sum(x):
result = 0
for each in x:
if (type(each) == int) or (type(each) == float):
result += each
else:
continue
return result
print(sum([1, 2.1, 2.3, 'a', '1', True]))
2. 請(qǐng)寫(xiě)下這一節(jié)課你學(xué)習(xí)到的內(nèi)容:格式不限,回憶并復(fù)述是加強(qiáng)記憶的好方式!
- 列表、元組和字符串統(tǒng)稱(chēng)為序列,有以下共同點(diǎn):
1)都可以通過(guò)索引得到每一個(gè)元素
2)默認(rèn)索引值總是從0開(kāi)始
3)可以通過(guò)分片的方法得到一個(gè)范圍內(nèi)的元素的集合
4)由很多共同的操作符(重復(fù)操作符,拼接操作符,成員關(guān)系操作符) - 迭代:重復(fù)反饋過(guò)程的活動(dòng),其目的通常是為了接近并達(dá)到所需的目標(biāo)成果,每一次對(duì)過(guò)程的重復(fù)我們稱(chēng)之為迭代。每一次迭代的結(jié)果作為下一次迭代的初始值。
- 一些重要的內(nèi)置函數(shù):
1)list():把一個(gè)可迭代的對(duì)象轉(zhuǎn)換為列表
2)tuple([iterable]):把一個(gè)可迭代的對(duì)象轉(zhuǎn)化為元組
3)str(obj):把obj對(duì)象轉(zhuǎn)化為字符串
4)max(),min():返回序列或者參數(shù)集合中的最大或最小值
5)sum(iterable[,start=0]):返回序列iterable和可選參數(shù)start的總和
6)sorted():返回排序的列表,默認(rèn)從小到大 - 以下返回迭代器對(duì)象
7)reversed():翻轉(zhuǎn)
>>> list1 = [1,2,3,4,5]
>>> reversed(list1)
<list_reverseiterator object at 0x0000025A3C91F208>
>>> for each in reversed(list1):
print(each, end=',')
5,4,3,2,1,
8)enumerate():枚舉,生成由每個(gè)元素索引值和元素組成的元組
>>> str1 = "FishC"
>>> for each in enumerate(str1):
print(each)
(0, 'F')
(1, 'i')
(2, 's')
(3, 'h')
(4, 'C')
>>>
9)zip():返回各個(gè)參數(shù)的序列組成的元組
>>> list1 = [1, 3, 5, 7, 9]
>>> str1 = "FishC"
>>> for each in zip(list1, str1):
print(each)
(1, 'F')
(3, 'i')
(5, 's')
(7, 'h')
(9, 'C')
>>>