2020年9月14日星期一

[課後作業] 第013講:元組:戴上了枷鎖的列表|課後測試題及答案

[課後作業] 第013講:元組:戴上了枷鎖的列表|課後測試題及答案




《零基礎入門學習Python》視頻下載地址:傳送門


  
測試題:
   
0.請用一句話描述什麼是列表?再用一句話描述什麼是元組?
   
1.什麼情況下你需要使用元組而不是列表?
  
2.當元組和列表掉下水,你會救誰?
  
3.請將下圖左邊列表的內置方法與右邊的註釋連線,並圈出元組可以使用的方法。

  

  
4.創建一個元組,什麼情況下逗號和小括號必須同時存在,缺一不可?
  
5. x, y, z = 1, 2, 3請問x, y, z是元組嗎?
  
6.請寫出以下情景中應該使用列表還是元組來保存數據:

  
1)遊戲中角色的屬性:

2)你的身份證信息:

3)論壇的會員:

4)團隊合作開發程序,傳遞給一個你並不了解具體實現的函數的參數:

5)航天火箭各個組件的具體配置參數:
  
6) NASA系統中記錄已經發現的行星數據:

7.上節課我們通過課後作業的形式學習到了“列表推導式”,那請問如果我把中括號改為小括號,會不會得到“元組推導式”呢?
  
8.請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!

   
   
回复您的答案即可查看參考答案!
  
  
測試題答案:
  

本帖隱藏的內容

0.請用一句話描述什麼是列表?再用一句話描述什麼是元組?
  
列表:一個大倉庫,你可以隨時往裡邊添加和刪除任何東西。
  
元組:封閉的列表,一旦定義,就不可改變(不能添加、刪除或修改)。
  
  
1.什麼情況下你需要使用元組而不是列表?
  
當我們希望內容不被輕易改寫的時候,我們使用元組(把權力關進牢籠)。
  
當我們需要頻繁修改數據,我們使用列表。
  
  
2.當元組和列表掉下水,你會救誰?
  
如果是我,我會救列表,因為列表提供了比元組更豐富的內置方法,這相當大的提高了編程的靈活性。
  
回頭來看下元組,元組固然安全,但元組一定創建就無法修改(除非通過新建一個元組來間接修改,但這就帶來了消耗),而我們人是經常搖擺不定的,所以元組只有在特殊的情況才用到,平時還是列表用的多。
  
綜上所述,小甲魚會救列表(列表是美眉)。
  
  
3.請將左邊列表的內置方法與右邊的註釋連線,並圈出元組可以使用的方法。
  

  
看吧,元組果然比較悲劇吧,僅有兩個方法元組可以使用,其他方法都不行,不信你試試?
  
  
4.創建一個元組,什麼情況下逗號和小括號必須同時存在,缺一不可?
  
在拼接只有一個元素的元組的時候,例如我們課上舉的例題:
  1. >>> temp = ('小甲魚', '黑夜', '迷途', '小布丁')
  2. # 如果我想在“黑夜”和“迷途”之間插入“怡靜”,我們應該:
  3. >>> temp = temp[:2] + ('怡靜',) + temp[2:]
複製代碼


5. x, y, z = 1, 2, 3請問x, y, z是元組嗎?

  
所有的多對象的、逗號分隔的、沒有明確用符號定義的這些集合默認的類型都是元組,自己在IDLE中鍵入以下代碼,並體會一下:
  1. >>> x, y, z = 1, 2, 3

  2. >>> type(x)

  3. >>> h = x, y, z

  4. >>> type(h)
複製代碼


6. 請寫出以下情景中應該使用列表還是元組來保存數據:

  
1)遊戲中角色的屬性:列表
  
2)你的身份證信息:元組
  
3)論壇的會員:列表
  
4)團隊合作開發程序,傳遞給一個你並不了解具體實現的函數的參數:元組
  
5 )航天火箭各個組件的具體配置參數:元組
  
6) NASA系統中記錄已經發現的行星數據:列表


7.上節課我們通過課後作業的形式學習到了“列表推導式”,那請問如果我把中括號改為小括號,會不會得到“元組推導式”呢?自己動手試試看再看答案哦^_^
  
Python3木有“元組推導式”,為嘛?沒必要丫,有了“列表推導式”已經足夠了。
  
那為什麼“>>> tuple1 = (x**2 for x in range(10))”不會報錯?
  
因為你誤打誤撞得到了一個生成器:
  1. >>> type(tuple1)
  2. <class 'generator'>
複製代碼
關於生成器的概念小甲魚今後會細講,你可以嘗試這麼去訪問我們剛剛的生成器:
  
#注意,Python3開始next()方法改為__next__()哦~
  1. >>> tuple1.__next__()
  2. 0
  3. >>> tuple1.__next__()
  4. 1
  5. >>> tuple1.__next__()
  6. 4
  7. >>> tuple1.__next__()
  8. 9
  9. >>> tuple1.__next__()
  10. 16
  11. >>> tuple1.__next__()
  12. 25
  13. >>> tuple1.__next__()
  14. 36
複製代碼
   
     
8.請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!

  
小甲魚希望你認真對待作業就像你希望小甲魚推出高質量視頻一樣渴望^_^
由于元组(tuple)和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。
我们这节课主要通过讨论元组和列表到第有什么不同来学习元组。
我们主要从以下几个方面来讨论学习:
  • 创建和访问一个元组。
就算加上了小括号,也不一定是元组。
就算没有小括号,也可能是元组。
元组的标志是逗号。
例如:
>>> temp = (1)
           >>> temp
           1
            >>> type(temp)
           <class 'int'>
           >>> temp1 = 1,2,3,4
           >>> temp1
           (1, 2, 3, 4)
           >>> type(temp1)
           <class 'tuple'>
想要创建一个空元组,就是temp = ( ),对于只有一个元素的元组,须这样:temp = (1,),这里逗号不可少,括号可以不要。
  • 更新和删除一个元组
对于元组而言,单独删除一个元素几乎是不可能的,但是可以利用切片的方式来间接的删除或增加一个元素。例如:
>>> temp = ('小甲鱼', '黑夜', '迷途', '小布丁')
           >>> temp = temp[:2] + ('怡景',) + temp[2:]
           >>> temp
           ('小甲鱼', '黑夜', '怡景', '迷途', '小布丁')
           >>> temp = temp[:1] + temp[2:]
           >>> temp
           ('小甲鱼', '怡景', '迷途', '小布丁')
可以使用  del 元组名  的方式删除整个元组,但是不推荐使用。当数据没有标签的时候,系统会自动删除。
  • 元组相关的操作符
拼接操作符(拼接操作符要求拼接的成分数据类型相同)
重复操作符(*整数)
关系操作符(>  <  >=  <=  ==  !=)
逻辑操作符 (and or not)
成员操作符(in    not in)

0 留言:

發佈留言