0.python的字典是否支援一鍵(key)多值(value)?
1.在字典中,如果試圖為乙個不存在的鍵(key)賦值會怎樣?
答:會建立這個新鍵並且賦值。
2.成員資格符(in和not in)可以檢測乙個元素是否在序列中,當然也可以用來檢查乙個鍵(key)是否在字典中。那麼請問哪種的檢查效率更高些?為什麼?
答:在字典中檢查鍵(key)是否存在比在序列中檢查指定元素是否存在更高效。因為字典的原理是使用雜湊演算法儲存,一步到位,不需要使用查詢演算法進行匹配,因此時間複雜度是o(1),效率非常高。
3.python對鍵(key)和值(value)有沒有型別限制?
答:python對鍵的要求相對要嚴格一些,要求它們必須是可雜湊(hash)的物件,不能是可變型別(包括變數、列表、字典本身等)。但是python對值是沒有任何限制的,它們可以是任意的python物件。
4.請目測下邊**執行後,字典dict1的內容是什麼?
dict1.fromkeys((1,2,3),('one', 'two', 'three'))
dict1.fromkeys((1,3), '數字')
答:執行完成後,字典dict1的內容是:,這裡要注意的是,fromkeys方法是直接建立乙個新的字典,不要試圖使用它來修改乙個原有的字典,因為它會直接無情的用把整個字典給覆蓋掉。
5.如果你需要將字典dict1 = 拷貝到dict2,你應該怎麼做? 使用copy()方法。不要使用賦值等號。
答:可以利用字典的copy()方法:dict2 = dict1.copy(),在其他語言轉移到python小夥伴們剛開始可能會習慣性的直接用賦值的方法(dict2 = dict1),這樣子做在python中只是將物件的引用拷貝過去而已。
0.嘗試編寫乙個使用者登入程式(這次嘗試將功能封裝成函式),程式實現如圖:
答:
def load():
dict1 =
while 1:
key = input('''
|--- 新建使用者:n/n ---|
|--- 登入帳號:e/e ---|
|--- 退出程式:q/q ---|
|--- 請輸入指令**:''')
if key == 'n' or key == 'n':
temp_name = input('請輸入使用者名稱:')
while temp_name in dict1:
temp_name = input('此使用者名稱已經被使用,請重新輸入:')
temp_password = input('請輸入密碼:')
dict1[temp_name] = temp_password
print('註冊成功,趕緊試試登入吧^_^')
continue
elif key == 'e' or key == 'e':
temp_name = input('請輸入使用者名稱:')
while temp_name not in dict1:
temp_name = input('您輸入的使用者名稱不存在,請重新輸入:')
temp_password = input('請輸入密碼:')
while temp_password != dict1[temp_name]:
temp_password = input('密碼錯誤,請重新輸入:')
print('歡迎進入系統,請點右上角的x結束程式!')
continue
elif key == 'q' or key == 'q':
break
零基礎 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...