Python字典練習_字典的查詢與添加


寫一個學生作業情況查詢錄入的小程序

1、查看學生作業情況:字典查詢

2、錄入學生作業情況:字典添加

3、錄入時允許輸入3次,3次輸入不正確提示失敗次數過多:循環

4、錄入需要判斷為空情況:strip()

homeworks = {
        'Amy':{'2018.3.22':'未交','2018.3.23':'已交'},
        'Lily':{'2018.3.22':'未交','2018.3.23':'未交'},
        }
chioce = {'1':'查詢','2':'錄入'} #定義字典,可以避免輸入‘0’或‘1’以外的選擇時報錯
#user_chioce input是字符串,如果用int轉化非數字的字符串會報錯,所以將key定義為字符串‘1’,而非數字1
user_chioce = input('請輸入您的選擇:1為查詢學生作業情況,2為錄入學生作業情況').strip()
if chioce.get(user_chioce) == '查詢': #用get方法,輸入key不在字典中不會報錯。用chioce[user_choice],輸入key不在字典中會報錯
    name = input('請輸入要查詢的學生姓名').strip()
    if name == '':
        print('查詢學生姓名不能為空')
    elif name in homeworks: #判斷key是否在字典中存在
        print('%s的作業情況是%s'%(name,homeworks[name]))#字典查詢
    else:
        print('查詢學生不存在')
elif chioce.get(user_chioce) == '錄入':
    state = {'0':'未交','1':'已交'} #定義字典,可以避免輸入‘0’或‘1’以外的選擇時報錯
    #放在循壞外,避免多次初始化,優化性能
    for i in range(3):
        enter_name = input('請輸入要錄入的學生姓名').strip()
        enter_date = input('請輸入要錄入學生作業的日期').strip()
        enter_state = input('請輸入學生作業狀態:0為未交,1為已交').strip()
        if state.get(enter_state):  #只要有狀態就可以,不需要判斷狀態等於‘已交’或‘未交’
            if enter_name == '' or enter_date == '':
                print('學生姓名及作業日期不能為空')
            else:
                if enter_name in homeworks:
                    homeworks[enter_name].update({enter_date:state[enter_state]})#學生已存在,更新子字典
                else:
                    homeworks[enter_name] = {enter_date:state[enter_state]}#學生不存在,直接添加新k-v
                print('%s的作業情況是%s'%(enter_name,homeworks[enter_name]))
                print('所有學生作業情況為%s' % homeworks)
                break
        else:
            print('輸入學生狀態有誤')
else:
    print('選擇輸入有誤')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM