內(nèi)容來源于網(wǎng)絡琢蛤,本人只是在此稍作整理,如有涉及版權問題新症,歸小甲魚官方所有步氏。
練習題(來自小甲魚官方論壇)
0. 我們根據(jù)列表、元祖和字符串的共同特點徒爹,把它們?nèi)y(tǒng)稱為什么?
答:序列芋类,因為他們有以下共同點:
- 都可以通過索引得到每一個元素
- 默認索引值總是從0開始(當然靈活的Python還支持負數(shù)索引)
- 可以通過分片的方法得到一個范圍內(nèi)的元素的集合
- 有很多共同的操作符(重復操作符隆嗅、拼接操作符、成員關系操作符)
1. 請問分別使用什么BIF侯繁,可以把一個可迭代對象轉(zhuǎn)換為列表胖喳、元祖和字符串?
答:
list([iterable]) 把可迭代對象轉(zhuǎn)換為列表
tuple([iterable]) 把可迭代對象轉(zhuǎn)換為元祖
str(obj) 把對象轉(zhuǎn)換為字符串
例如:
>>> temp = 'I love FishC.com!'
>>> list(temp)
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'F', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm', '!']
2. 你還能復述出“迭代”的概念嗎贮竟?
答: 所謂迭代丽焊,是重復反饋過程的活動,其目的通常是為了接近并到達所需的目標或結果咕别。每一次對過程的重復被稱為一次“迭代”技健,而每一次迭代得到的結果會被用來作為下一次迭代的初始值。
3. 你認為調(diào)用 max('I love FishC.com') 會返回什么值惰拱?為什么雌贱?
答:會返回:'v',因為字符串在計算機中是以ASCII碼的形式存儲偿短,參數(shù)中ASCII碼值最大的是'v'對應的118欣孤。
4. 哎呀呀,現(xiàn)在的小屁孩太調(diào)皮了昔逗,鄰居家的孩子淘氣降传,把小甲魚剛寫好的代碼畫了個圖案,麻煩各位魚油恢復下啊勾怒,另外這家伙畫的是神馬嗎婆排?怎么那么眼熟翱钇薄!泽论?
(圖片轉(zhuǎn)載https://blog.csdn.net/junwei0206/article/details/44766631)
答:
if name == each[0]:
name != each[0]:
編程題
0. 猜想一下 min() 這個BIF的實現(xiàn)過程:
答:
def min(x):
least = x[0]
for each in x:
if each < least:
least = each
return least
print(min('123456789'))
注:關于函數(shù)的定義和使用在下一講的課程中講解艾少,目前只需要理解該BIF實現(xiàn)的原理即可。
1. 視頻中我們說 sum() 這個BIF有個缺陷翼悴,就是如果參數(shù)里有字符串類型的話就會報錯缚够,請寫出一個新的實現(xiàn)過程,自動“無視”參數(shù)里的字符串并返回正確的計算結果鹦赎。
答:
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. 請寫下這一節(jié)課你學習到的內(nèi)容:格式不限谍椅,回憶并復述是加強記憶的好方式!
- 列表古话、元組和字符串統(tǒng)稱為序列雏吭,有以下共同點:
1)都可以通過索引得到每一個元素
2)默認索引值總是從0開始
3)可以通過分片的方法得到一個范圍內(nèi)的元素的集合
4)由很多共同的操作符(重復操作符,拼接操作符陪踩,成員關系操作符) - 迭代:重復反饋過程的活動杖们,其目的通常是為了接近并達到所需的目標成果,每一次對過程的重復我們稱之為迭代肩狂。每一次迭代的結果作為下一次迭代的初始值摘完。
- 一些重要的內(nèi)置函數(shù):
1)list():把一個可迭代的對象轉(zhuǎn)換為列表
2)tuple([iterable]):把一個可迭代的對象轉(zhuǎn)化為元組
3)str(obj):把obj對象轉(zhuǎn)化為字符串
4)max(),min():返回序列或者參數(shù)集合中的最大或最小值
5)sum(iterable[,start=0]):返回序列iterable和可選參數(shù)start的總和
6)sorted():返回排序的列表,默認從小到大 - 以下返回迭代器對象
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():枚舉傻谁,生成由每個元素索引值和元素組成的元組
>>> str1 = "FishC"
>>> for each in enumerate(str1):
print(each)
(0, 'F')
(1, 'i')
(2, 's')
(3, 'h')
(4, 'C')
>>>
9)zip():返回各個參數(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')
>>>