[Python]小甲魚Python視頻第026課(字典:當索引不好用時2)課後題及參考解答
阿新 • • 發佈:2019-03-09
pass 是什麽 應該 brush use NPU 怎樣 請問 dict
# -*- coding: utf-8 -*- """ Created on Fri Mar 8 10:32:20 2019 @author: Administrator """ """ 測試題: 0. Python的字典是否支持一鍵(Key)多值(Value)? 不支持 1. 在字典中,如果試圖為一個不存在的鍵(Key)賦值會怎樣? 字典對象中會出現一個新的鍵值對 2. 成員資格操作符(in和not in)可以檢查一個元素是否存在序列中,當然也可以用來檢查一個鍵(Key)是否存在字典中,那麽請問哪種的檢查效率更高些?為什麽? 檢查一個鍵(Key)是否存在字典中的效率更高,通過查找hash值一步到位,不需要叠代或遍歷 3. Python對鍵(Key)和值(Value)有沒有類型限制? 對Value並沒有啥限制 Key必須是能hash的對象(序列類型就不行) 4. 請目測下邊代碼執行後,字典dict1的內容是什麽? >>> dict1.fromkeys((1, 2, 3), (‘one‘, ‘two‘, ‘three‘)) >>> dict1.fromkeys((1, 3), ‘數字‘) { 1:‘數字‘, 3:‘數字‘ } 5. 如果你需要將字典dict1 = {1: ‘one‘, 2: ‘two‘, 3: ‘three‘}拷貝到dict2,你應該怎麽做? """ #測試題5 dict1 = {1: ‘one‘, 2: ‘two‘, 3: ‘three‘}; dict2 = dict1; dict3 = dict1.copy(); #動動手0,程序有點問題,沒有檢查input的輸入能否為空 dict_user_password = dict({‘0‘:‘0‘}); string1 = """|--- 新建用戶:N/n ---| |--- 登錄賬號:E/e ---| |--- 退出程序:Q/q ---| |--- 請輸入指令代碼: """; def ShowAndGetCmd(): global string1; print(string1); return input(); def add_user(): global dict_user_password while True: name = input(‘請輸入用戶名:‘); if name in dict_user_password.keys(): print(‘此用戶已經被占用,請重新輸入:‘) continue else: break; password = input(‘請輸入密碼:‘) dict_user_password[name] = password print(‘註冊成功‘) def login_user(): global dict_user_password while True: name = input(‘請輸入用戶名:‘) if name in dict_user_password.keys(): break; else: print(‘用戶名不存在,請重新輸入:‘) continue password = input(‘請輸入密碼‘); if password == dict_user_password.get(name): print(‘密碼正確‘); else: print(‘密碼錯誤‘); while True: input_cmd = ShowAndGetCmd() if input_cmd == ‘N‘ or input_cmd == ‘n‘: add_user(); elif input_cmd == ‘E‘ or input_cmd == ‘e‘: login_user(); elif input_cmd == ‘Q‘ or input_cmd == ‘q‘: break ; else: print(‘指令輸入有誤!‘)
[Python]小甲魚Python視頻第026課(字典:當索引不好用時2)課後題及參考解答