zoukankan      html  css  js  c++  java
  • 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('选择输入有误')
  • 相关阅读:
    java之redis篇(spring-data-redis整合) (转)
    web.xml
    点击类名方法名如何连接到相应的Android源代码
    eclipse能够自动提示变量名.
    Android自定义ActionBar
    Android 自定义View
    android 自定义titlebar
    Android SharedPreferences登录记住密码
    Android 正则表达式验证手机和邮箱格式是否正确
    Android 首次进入应用时加载引导界面
  • 原文地址:https://www.cnblogs.com/dongrui624/p/8677811.html
Copyright © 2011-2022 走看看