美文网首页
day11作业

day11作业

作者: 上邪5415 | 来源:发表于2018-09-04 08:16 被阅读0次

1.提取data.json中的数据,将每条数据中的name、text、love和comment信息。并且保存到另外一个json文件中

import json
content_name = []
content_text = []
content_love = []
content_comment = []
content2 = {}
with open('./data.json','r',encoding = 'utf-8') as f1:
    content = json.load(f1)
    for item in content['data'] :
        for item1 in item:
            if item1 == 'name':
                content_name.append(item[item1])
            if item1 == 'text':
                content_text.append(item[item1])
            if item1 == 'love':
                content_love.append(item[item1])
            if item1 == 'comment':
                content_comment.append(item[item1])
            content2 = {'name':content_name,'love':content_love,'text':content_text,'comment':content_comment}
with open('./new_data.json','w',encoding = 'utf-8') as f2:
    json.dump(content2,f2)

2.统计data.json中comment数量超过1000的个数

import json
count = 0
with open('./data.json','r',encoding = 'utf-8') as f1:
    content = json.load(f1)
    for item in content['data']:
        for item1 in item:
            if item1 == 'comment' and float(item['comment']) >= 1000:
                count += 1
print(count)

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

import json
with open('./data.json','r',encoding = 'utf-8') as f1:
    content = json.load(f1)
    for index in range(len(content['data'])):
        for item in content['data'][index]:
            if item == 'love' and float(content['data'][index][item]) >= 1000:
                content['data'][index][item]=str(float(content['data'][index][item])/1000)+'k'
with open('./data.json','w',encoding = 'utf-8') as f2:
    json.dump(content,f2)

4.写猜数字游戏,如果输入有误,提示重新输入,直达输入正确为止。比如:输入数字的时候没有按要求输入,提示重新输入

import random
num = random.randint(0,10)
while True:
    try:
        n = int(input('请输入数字:'))
        if n == num:
            print('输入正确')
            break
        elif n>=num:
            print('大了,输小点,请重新输入')
        else:
            print('小了,输大点,请重新输入')
    except ValueError:
        print('语法错误,请重新输入')

5.写学生管理系统的添加学生功能(数据需要本地化),要求除了保存学生的基本信息以外还要保存学生的学号,但是学号需要自动生成,生成原则:
添加第一个学生对应的学号是:py001 第二次添加的学生的学号是:py002 ... 如果前面的学生因为各种原因被移除了,那后面添加学生的时候原则不变,就是比如上次已经添加到py012,那么前面不管有没有删除情况,再次添加学生的学号是py013

import json
student_info =[]
while True:
    print('1.添加学生信息')
    print('2.删除学生信息')
    print('3.退出')
    num = int(input('请选择:'))
    if num == 1:
        while True:
            try:
                with open('./学生管理系统.json', 'r', encoding='utf-8') as f:
                    student_info = json.load(f)
                    count = len(student_info)
                    student_name = input('请输入学生名字:')
                    student_age = input('请输入学生年龄:')
                    student_tel = input('请输入学生电话:')
                    count += 1
                    str1 = 'py'+ str(count).rjust(3,'0')
                    stu = {'name:': student_name,'age:':student_age,'tel':student_tel,'stu_id:':str1}
                    student_info.append(stu)
                with open('./学生管理系统.json', 'w', encoding='utf-8') as f:
                    json.dump(student_info, f,ensure_ascii=False,indent=2)
            except:
                with open('./学生管理系统.json', 'w', encoding='utf-8') as f:
                    student_name = input('请输入学生名字:')
                    student_age = input('请输入学生年龄:')
                    student_tel = input('请输入学生电话:')
                    count =1
                    str1 = 'py' + str(count).rjust(3, '0')
                    stu = {'name:': student_name, 'age:': student_age, 'tel': student_tel, 'stu_id:': str1}
                    student_info.append(stu)
                    json.dump(student_info,f,ensure_ascii=False,indent=2)
            print('1.继续添加')
            print('2.添加结束,返回')
            num1 = int(input('请选择:'))
            if num1 == 2:
                break
    elif num ==2:
       try:
           with open('./学生管理系统.json', 'r', encoding='utf-8') as f:
               del_name = input('输入要删除的学生姓名:')
               for item in student_info:
                   if item['name'] ==del_name:
                       student_info.remove(item)
                   else:
                       print('请输入正确的学生姓名')
           with open('./学生管理系统.json', 'w', encoding='utf-8') as f:
               json.dump(student_info, f,ensure_ascii=False,indent=2)
       except:
           print('没有任何学生信息')

    else:
        break


相关文章

网友评论

      本文标题:day11作业

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