零基礎 Python3學習課後練習題(二十二)

2021-08-28 18:41:42 字數 3256 閱讀 6515

0.當你聽到小夥伴在討論「對映」、「雜湊」、「雜湊」或者「關係數列」的時候,事實上他們就是在討論什麼呢?

答:都是在說python的字典。

1.嘗試一下將資料(『f』:70, 『c』:67, 『h』:104, 『i』:105, 『s』:115)建立為乙個字典並訪問鍵『c』對應的值?答:

#第一種方法

>>> zidian =

>>> zidian

>>> zidian['c']

67#第二種方法

>>> zidian = dict((('f',70),('c',67),('h',104),('i',105),('s',115)))

>>> zidian['c']

67#第三種方法

>>> zidian = dict(f = 70, c = 67, h = 104, i = 105, s = 115)

>>> zidian['c']

67#第四種方法

>>> zidian = dict([('f',70),('c',67),('h',104),('i',105),('s',115)])

>>> zidian['c']

67#第五種方法

>>> zidian = dict()

>>> zidian['c']

67#第六種方法

>>> zidian = dict(zip(['f', 'c', 'h', 'i', 's'], [70, 67, 104, 105, 115]))

>>> zidian['c']

67

2.用方括號(「」)括起來的資料我們叫列表,那麼用大括號(「{}」)括起來的資料我們就叫字典,對嗎?答:不正確,用方括號括起來的資料可以變成列表,但是用大括號括起來的資料還要形成有對應物件的對映關係(即 鍵 與 值 )才能構成字典。

3.你如何理解有些事情字典做得到,但是「萬能的」列表卻難以實現?

答:列表本身的元素是只有與其所在位置的索引值有對應關係的,而元素與元素之間是無法產生相互對映關係的,並且列表與列表之間要表達對映關係只能通過索引值進行索引之後再提取進行對應,這樣會變麻煩很多。所以字典的存在就彌補了這種繁瑣過程的缺陷,字典本身內在的元素就通過鍵(key)與值(value)之間進行了對映關係,所以在呼叫的時候能很快通過鍵取得值,省去了列表與列表先索引再對應的過程。

4.下邊這些**,他們都在執行一樣的操作嗎?你看得出差別嗎?

>>> a = dict(one=1,two=2,three=3)

>>> b =

>>> c = dict(zip(['one','two','three'],[1,2,3]))

>>> d = dict([('two',2),('one',1),('three',3)])

>>> d = dict()

答:是的,都是在執行創作乙個相同元素物件的字典的操作,差別在於建立字典元素排布的順序不一樣。

>>> a = dict(one=1,two=2,three=3)

>>> b =

>>> c = dict(zip(['one','two','three'],[1,2,3]))

>>> d = dict([('two',2),('one',1),('three',3)])

>>> e = dict()

>>> a

>>> b

>>> c

>>> d

>>> e

5.如圖,你可以推測出打了馬賽克部分的**嗎?

答:馬賽克部分的**是 data.split(',') ,作用是分別把data裡面的值分片賦給字典mydict裡面的鍵。

0.嘗試利用字典的特性編寫乙個通訊錄程式吧,功能如圖:

答:

print("""|--- 歡迎進入rony通訊錄程式 ---|

|--- 輸入選項數字使用功能 ---|

|--- 1:查詢聯絡人資料. ---|

|--- 2:加入新的聯絡人. ---|

|--- 3:刪除已有聯絡人. ---|

|--- 4:退出通訊錄程式. ---|

""")

txl = {}

while true:

srdm = int(input('請輸入通訊錄功能**:'))

if srdm == 1:

if xm in txl:

continue

else:

print('查詢不到此聯絡人,為您返回初始介面。')

continue

if srdm == 2:

if xm in txl:

pd = input('是否修改聯絡人資料?(yes/no):')

if pd == 'yes':

txl[xm] = dh

print('修改完成,為您返回初始介面。')

continue

else:

print('為您返回初始介面。')

continue

else:

txl[xm] = dh

print('新增完成,為您返回初始介面。')

continue

if srdm == 3:

if xm in txl:

pd = input('(yes/no):')

if pd == 'yes':

del(txl[xm])

print('刪除成功,為您返回初始介面。')

continue

else:

print('為您返回初始介面。')

continue

else:

print('沒有找到該聯絡人,為您返回初始介面。')

continue

if srdm == 4:

break

else:

print('輸入有誤,為您返回初始介面。')

continue

零基礎 Python3學習課後練習題(四)

0.請問以下 會列印多少次 我愛魚c!while c print 我愛魚c 答 會一直列印下去,死迴圈。1.請問以下 會列印多少次 我愛魚c!i 10 while i print 我愛魚c i i 1 答 會列印10次。2.請寫出與 10 cost 50 等價的表示式。答 10 cost and c...

零基礎 Python3學習課後練習題(八)

0.下面的迴圈會列印多少次 i love fishc for i in range 0,10,2 print i love fishc 答 列印 5 次,因為在range閾中以 2 為步徑,即有五個結果,所以可以列印五次。for i in range 0,10,2 print i love fish...

零基礎 Python3學習課後練習題(十六)

0.請問以下哪個是形參哪個是實參?def myfun x return x 3 y 3 print myfun y 答 x是形式引數,y是實際引數。函式定義過程中的引數是形參,呼叫函式過程中的引數是實參。1.函式文件和直接用 為函式寫注釋有什麼不同?答 函式文件是對函式的解釋和描述,可以呼叫 doc...