第十六課:序列

內(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')
>>> 

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 內(nèi)置函數(shù)Python解釋器內(nèi)置了許多功能和類(lèi)型,總是可用的。他們是按字母順序列在這里。 abs(x)返回一個(gè)數(shù)的絕...
    uangianlap閱讀 1,357評(píng)論 0 0
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,556評(píng)論 17 410
  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,665評(píng)論 0 4
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評(píng)論 0 5
  • 現(xiàn)在人在迪拜,待了十幾天了,寂寞的時(shí)候會(huì)來(lái)這個(gè)軟件看看文章 第一件事說(shuō)說(shuō)國(guó)內(nèi)網(wǎng)絡(luò)的現(xiàn)狀,可能會(huì)有些人覺(jué)得我崇洋媚外...
    時(shí)光機(jī)的搬運(yùn)工閱讀 261評(píng)論 0 0

友情鏈接更多精彩內(nèi)容