美文网首页
Day11—作业

Day11—作业

作者: C0mpass | 来源:发表于2018-09-03 22:54 被阅读0次
    1. 提取data.json中的数据,将每条数据中的name、text、love和comment信息保存到另外一个json文件中。
    import json
    
    list1 = []
    with open('./data.json', 'r', encoding='utf-8') as f:
        info = json.load(f)
        for item in info['data']:
            dict1 = {
                'name':item['name'],
                'text':item['text'],
                'love':item['love'],
                'comment':item['comment']
            }
            list1.append(dict1)
    with open('./newdata.json', 'w', encoding='utf-8') as f:
        json.dump(list1, f)
    
    1. 统计data.json中comment数量超过1000的个数。
    import json
    
    count = 0
    with open('./data.json', 'r', encoding='utf-8') as f:
        info = json.load(f)
        for item in info['data']:
            if int(item['comment']) > 1000:
                count += 1
    print("统计data.json中comment数量超过1000的个数为:", count)
    

    3.将data.json文件中所有点赞数(love)对应的值超出1000的用k来表示,例如1000修改为1k, 1345修改为1.3k。

    import json
    
    with open('./data.json', 'r', encoding='utf-8') as f:
        info = json.load(f)
        for item in info['data']:
            if int(item['love']) > 1000:
                item['love'] = str(int(item['love'])/1000)+'k'
    
    with open('./data.json', 'w', encoding='utf-8') as f:
        json.dump(info, f)
    
    1. 写猜数字游戏,如果输入有误,提示重新输入,直达输入正确为止。比如:输入数字的时候没有按要求输入,提示重新输入。
    import random
    
    num = random.randint(1, 10)
    count = 0
    def guss_num():
        try:
            n = int(input('请输入数字:'))
            global count
            count += 1
            if n == num:
                print('恭喜你猜对了,共猜了%s次!'%(count))
                return
            elif n > num:
                print('猜大了')
                guss_num()
            else:
                print('猜小了')
                guss_num()
        except ValueError:
            print('输入错误,请重新输入!')
            guss_num()
    guss_num()
    
    1. 写学生管理系统的添加学生功能(数据需要本地化),要求除了保存学生的基本信息以外还要保存学生的学号,但是学号需要自动生成,生成原则:
        添加第一个学生对应的学号是:py001
        第二次添加的学生的学号是:py002
      如果前面的学生因为各种原因被移除了,那后面添加学生的时候原则不变,就是比如上次已经添加到py012,那么前面不管有没有删除情况,再次添加学生的学号是py013。
    list1 = []
    name = input('请输入名字:')
    age = input('请输入年龄:')
    
    try:
        with open('./StudentInfo.json', 'r', encoding='utf8') as f:
            info = json.load(f)
    except:
        with open('./StudentInfo.json', 'w', encoding='utf8') as f:
            dict1 = {'school':'千峰', 'student_data':[]}
            json.dump(dict1, f)
            with open('./StudentInfo.json', 'r', encoding='utf8') as f:
                info = json.load(f)
    
    if not info['student_data']:
        school_num = 'py001'
    else:
        for item in info['student_data']:
            num = item['school_num'][2:]
            list1.append(int(num))
        num_max = max(list1) + 1
        if num_max < 10:
            school_num = 'py' + '00' + str(num_max)
        elif num_max < 100:
            school_num = 'py' + '0' + str(num)
        else:
            school_num = 'py' + str(num)
    dict1 = {'name': name, 'age': age, 'school_num': school_num}
    info['student_data'].append(dict1)
    with open('./StudentInfo.json', 'w', encoding='utf8') as f:
        json.dump(info, f)
    

    相关文章

      网友评论

          本文标题:Day11—作业

          本文链接:https://www.haomeiwen.com/subject/oriiwftx.html