鱼C论坛

 找回密码
 立即注册
查看: 963|回复: 24

[已解决]看看这段代码

[复制链接]
发表于 2020-6-7 16:46:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from time import sleep
from random import randint
import pickle

data = [{"ID":1000000001, "name":"None", "sex":"男", "address":"青海"},
        {"ID":1929489285, "name":"False", "sex":"女", "address":"computer"}]
while True:
    #循环开头显示功能
    print("       ****************************************")
    print("          欢迎使用学生管理系统v2.0(后续有3.0)")
    print("                  1.显示所有学生")
    print("                  2.新建学生档案")
    print("                  3.查询学生信息")
    print("                  4.修改学生档案")
    print("                  5.删除学生档案")
    print("                  6.提取学生数据")
    print("                  0.退出")
    print("       ****************************************")
    print()
    def print_all():
        for student in data:
            print(student)
            pass
        pass

    def someThing_put_in():
        ID = randint(1000000000, 9999999999)
        try:
            if ID in data:
                ID = randint(1000000000, 9999999999)
        except:
            print("调试错误!")
        someName = input("输入姓名:")
        someSex = input("输入性别:")
        someAddress = input("输入地址:")
        student = {"ID":ID, "name":someName, "sex":someSex, "address":someAddress}
        data.append(student)

    def find_student():
        print("为了确保您是管理员,请输入学生全名(非小名)")
        somename = int(input())
        try:
            for i in data:
                if i["name"] == somename:
                    print(i)
                    pass
                pass
            pass
        except:
            print("有错误")
    
    def write_student():
        someBody = input("请输入学生全名(非小名):")
        for j in data:
            if j["name"] == someBody:
                TA_new_name = input("请输入新名字:")
                TA_new_ID = randint(1000000000, 9999999999)
                if TA_new_ID in data:
                    TA_new_ID = randint(1000000000, 9999999999)
                else:
                    TA_new_sex = input("输入性别:")
                    TA_new_address = input("输入地址:")
                    NEW_student = {"ID":TA_new_ID, "name":TA_new_name, "sex":TA_new_sex, "address":TA_new_address}
                    data.append(NEW_student)
                    LAST_name = input("输入原先的名字:")
                    for k in data:
                        if k["name"] == LAST_name:
                            need_del = k
                    data.remove(need_del)


    def del_student():
        someGuy = input("请输入学生全名(非小名):")
        for find in data:
            if find["name"] == someGuy:
                print("Find it!")
                want_del = someGuy
                data.remove(want_del)


    
        
    someThing = input("Enter the num:")
    if someThing == "0":
        break
    elif someThing == "1":
        print_all()
        continue
    elif someThing == "2":
        print("好的")
        print()
        sleep(1)
        someThing_put_in()
    elif someThing == "3":
        print("OK")
        print()
        find_student()
    elif someThing == "4":
        print("OK")
        sleep(1)
        write_student()
    elif someThing == "5":
        print("OK")
        print()
        del_student()
        
        
        
        
但是。。。
============== RESTART: C:\Users\Administrator\Desktop\尝试1\学生查询.py =============
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:5
OK

请输入学生全名(非小名):None
Find it!
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\尝试1\学生查询.py", line 105, in <module>
    del_student()
  File "C:\Users\Administrator\Desktop\尝试1\学生查询.py", line 78, in del_student
    data.remove(want_del)
ValueError: list.remove(x): x not in list

他喵的怎么回事啊
最佳答案
2020-6-7 17:00:44
from time import sleep
from random import randint
import pickle

data = [{"ID": 1000000001, "name": "None", "sex": "男", "address": "青海"},
        {"ID": 1929489285, "name": "False", "sex": "女", "address": "computer"}]
while True:
    # 循环开头显示功能
    print("       ****************************************")
    print("          欢迎使用学生管理系统v2.0(后续有3.0)")
    print("                  1.显示所有学生")
    print("                  2.新建学生档案")
    print("                  3.查询学生信息")
    print("                  4.修改学生档案")
    print("                  5.删除学生档案")
    print("                  6.提取学生数据")
    print("                  0.退出")
    print("       ****************************************")
    print()


    def print_all():
        for student in data:
            print(student)
            pass
        pass


    def someThing_put_in():
        ID = randint(1000000000, 9999999999)
        try:
            if ID in data:
                ID = randint(1000000000, 9999999999)
        except:
            print("调试错误!")
        someName = input("输入姓名:")
        someSex = input("输入性别:")
        someAddress = input("输入地址:")
        student = {"ID": ID, "name": someName, "sex": someSex, "address": someAddress}
        data.append(student)


    def find_student():
        print("为了确保您是管理员,请输入学生全名(非小名)")
        somename = int(input())
        try:
            for i in data:
                if i["name"] == somename:
                    print(i)
                    pass
                pass
            pass
        except:
            print("有错误")


    def write_student():
        someBody = input("请输入学生全名(非小名):")
        for j in data:
            if j["name"] == someBody:
                TA_new_name = input("请输入新名字:")
                TA_new_ID = randint(1000000000, 9999999999)
                if TA_new_ID in data:
                    TA_new_ID = randint(1000000000, 9999999999)
                else:
                    TA_new_sex = input("输入性别:")
                    TA_new_address = input("输入地址:")
                    NEW_student = {"ID": TA_new_ID, "name": TA_new_name, "sex": TA_new_sex, "address": TA_new_address}
                    data.append(NEW_student)
                    LAST_name = input("输入原先的名字:")
                    for k in data:
                        if k["name"] == LAST_name:
                            need_del = k
                    data.remove(need_del)


    def del_student():
        someGuy = input("请输入学生全名(非小名):")
        for find in data:
            if find["name"] == someGuy:
                print("Find it!")
                data.remove(find)


    someThing = input("Enter the num:")
    if someThing == "0":
        break
    elif someThing == "1":
        print_all()
        continue
    elif someThing == "2":
        print("好的")
        print()
        sleep(1)
        someThing_put_in()
    elif someThing == "3":
        print("OK")
        print()
        find_student()
    elif someThing == "4":
        print("OK")
        sleep(1)
        write_student()
    elif someThing == "5":
        print("OK")
        print()
        del_student()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-7 16:49:54 From FishC Mobile | 显示全部楼层
你要删除的元素不在列表内
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-7 16:52:09 | 显示全部楼层
排版做的不错 看着好舒服
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 16:53:02 | 显示全部楼层
wp231957 发表于 2020-6-7 16:49
你要删除的元素不在列表内

我当时看错误也是X没在列表内,但看代码,在DATA里面,是不是有NONE?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 16:54:28 | 显示全部楼层
Twilight6 发表于 2020-6-7 16:52
排版做的不错 看着好舒服

呢能看看是什么问题吗(别跟2楼理由一样)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 16:55:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-7 17:00:07 | 显示全部楼层
不用5的话;
============== RESTART: C:\Users\Administrator\Desktop\尝试1\学生查询.py =============
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:1
{'ID': 1000000001, 'name': 'None', 'sex': '男', 'address': '青海'}
{'ID': 1929489285, 'name': 'False', 'sex': '女', 'address': 'computer'}
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:2
好的

输入姓名:John
输入性别:man
输入地址:Kunmming
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:1
{'ID': 1000000001, 'name': 'None', 'sex': '男', 'address': '青海'}
{'ID': 1929489285, 'name': 'False', 'sex': '女', 'address': 'computer'}
{'ID': 3069584097, 'name': 'John', 'sex': 'man', 'address': 'Kunmming'}
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:3
OK

为了确保您是管理员,请输入学生全名(非小名)
John
{'ID': 3069584097, 'name': 'John', 'sex': 'man', 'address': 'Kunmming'}
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:4
OK
请输入学生全名(非小名):None
请输入新名字:True
输入性别:man
输入地址:NewYork
输入原先的名字:None
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:1
{'ID': 1929489285, 'name': 'False', 'sex': '女', 'address': 'computer'}
{'ID': 3069584097, 'name': 'John', 'sex': 'man', 'address': 'Kunmming'}
{'ID': 2795943994, 'name': 'True', 'sex': 'man', 'address': 'NewYork'}
       ****************************************
          欢迎使用学生管理系统v2.0(后续有3.0)
                  1.显示所有学生
                  2.新建学生档案
                  3.查询学生信息
                  4.修改学生档案
                  5.删除学生档案
                  6.提取学生数据
                  0.退出
       ****************************************

Enter the num:0
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-7 17:00:44 | 显示全部楼层    本楼为最佳答案   
from time import sleep
from random import randint
import pickle

data = [{"ID": 1000000001, "name": "None", "sex": "男", "address": "青海"},
        {"ID": 1929489285, "name": "False", "sex": "女", "address": "computer"}]
while True:
    # 循环开头显示功能
    print("       ****************************************")
    print("          欢迎使用学生管理系统v2.0(后续有3.0)")
    print("                  1.显示所有学生")
    print("                  2.新建学生档案")
    print("                  3.查询学生信息")
    print("                  4.修改学生档案")
    print("                  5.删除学生档案")
    print("                  6.提取学生数据")
    print("                  0.退出")
    print("       ****************************************")
    print()


    def print_all():
        for student in data:
            print(student)
            pass
        pass


    def someThing_put_in():
        ID = randint(1000000000, 9999999999)
        try:
            if ID in data:
                ID = randint(1000000000, 9999999999)
        except:
            print("调试错误!")
        someName = input("输入姓名:")
        someSex = input("输入性别:")
        someAddress = input("输入地址:")
        student = {"ID": ID, "name": someName, "sex": someSex, "address": someAddress}
        data.append(student)


    def find_student():
        print("为了确保您是管理员,请输入学生全名(非小名)")
        somename = int(input())
        try:
            for i in data:
                if i["name"] == somename:
                    print(i)
                    pass
                pass
            pass
        except:
            print("有错误")


    def write_student():
        someBody = input("请输入学生全名(非小名):")
        for j in data:
            if j["name"] == someBody:
                TA_new_name = input("请输入新名字:")
                TA_new_ID = randint(1000000000, 9999999999)
                if TA_new_ID in data:
                    TA_new_ID = randint(1000000000, 9999999999)
                else:
                    TA_new_sex = input("输入性别:")
                    TA_new_address = input("输入地址:")
                    NEW_student = {"ID": TA_new_ID, "name": TA_new_name, "sex": TA_new_sex, "address": TA_new_address}
                    data.append(NEW_student)
                    LAST_name = input("输入原先的名字:")
                    for k in data:
                        if k["name"] == LAST_name:
                            need_del = k
                    data.remove(need_del)


    def del_student():
        someGuy = input("请输入学生全名(非小名):")
        for find in data:
            if find["name"] == someGuy:
                print("Find it!")
                data.remove(find)


    someThing = input("Enter the num:")
    if someThing == "0":
        break
    elif someThing == "1":
        print_all()
        continue
    elif someThing == "2":
        print("好的")
        print()
        sleep(1)
        someThing_put_in()
    elif someThing == "3":
        print("OK")
        print()
        find_student()
    elif someThing == "4":
        print("OK")
        sleep(1)
        write_student()
    elif someThing == "5":
        print("OK")
        print()
        del_student()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 17:03:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 17:06:13 | 显示全部楼层
@Twilight6
大神顺便请教一下,做6的话给个初始方案,我修改下法作品展示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 17:27:38 | 显示全部楼层
学生查询
https://fishc.com.cn/thread-171545-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-8 17:46:03 | 显示全部楼层
靳子轩 发表于 2020-6-7 17:27
学生查询
https://fishc.com.cn/thread-171545-1-1.html
(出处: 鱼C论坛)

你没  @ 我 我都没看到消息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 22:06:32 | 显示全部楼层
Twilight6 发表于 2020-6-8 17:46
你没  @ 我 我都没看到消息

@Twilight6
sorry,才升到鱼油I,没法@你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-8 22:10:34 | 显示全部楼层
靳子轩 发表于 2020-6-8 22:06
@Twilight6
sorry,才升到鱼油I,没法@你

想提取成一个文件是吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 22:12:08 | 显示全部楼层
no,后来我加了一个使用Pickle保存data的pkl,但是老出错,就暂时放弃了
@Twilight6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-8 22:14:37 | 显示全部楼层
靳子轩 发表于 2020-6-8 22:12
no,后来我加了一个使用Pickle保存data的pkl,但是老出错,就暂时放弃了
@Twilight6

那可以不用 pickle 呀 ,用普通文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 22:14:55 | 显示全部楼层
参见:
学生查询
https://fishc.com.cn/thread-171545-1-1.html
(出处: 鱼C论坛)
@Twilight6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 22:16:23 | 显示全部楼层
我发个附件:

student_find.rar

1.41 KB, 下载次数: 0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 22:16:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-8 22:25:02 | 显示全部楼层

你输入 6 然后输入 0  然后去看看data文件
from time import sleep
from random import randint


data = [{"ID": 1000000001, "name": "None", "sex": "男", "address": "青海"},
        {"ID": 1929489285, "name": "False", "sex": "女", "address": "computer"}]
while True:
    # 循环开头显示功能
    print("       ****************************************")
    print("          欢迎使用学生管理系统v2.0(后续有3.0)")
    print("                  1.显示所有学生")
    print("                  2.新建学生档案")
    print("                  3.查询学生信息")
    print("                  4.修改学生档案")
    print("                  5.删除学生档案")
    print("                  6.提取学生数据")
    print("                  0.退出")
    print("       ****************************************")
    print()


    def print_all():
        for student in data:
            print(student)
            pass
        pass


    def someThing_put_in():
        ID = randint(1000000000, 9999999999)
        try:
            if ID in data:
                ID = randint(1000000000, 9999999999)
        except:
            print("调试错误!")
        someName = input("输入姓名:")
        someSex = input("输入性别:")
        someAddress = input("输入地址:")
        student = {"ID": ID, "name": someName, "sex": someSex, "address": someAddress}
        data.append(student)


    def find_student():
        print("为了确保您是管理员,请输入学生全名(非小名)")
        somename = input()
        try:
            for i in data:
                if i["name"] == somename:
                    print(i)
                    pass
                pass
            pass
        except:
            print("有错误")


    def write_student():
        someBody = input("请输入学生全名(非小名):")
        for j in data:
            if j["name"] == someBody:
                TA_new_name = input("请输入新名字:")
                TA_new_ID = randint(1000000000, 9999999999)
                if TA_new_ID in data:
                    TA_new_ID = randint(1000000000, 9999999999)
                else:
                    TA_new_sex = input("输入性别:")
                    TA_new_address = input("输入地址:")
                    NEW_student = {"ID": TA_new_ID, "name": TA_new_name, "sex": TA_new_sex, "address": TA_new_address}
                    data.append(NEW_student)
                    LAST_name = input("输入原先的名字:")
                    for k in data:
                        if k["name"] == LAST_name:
                            need_del = k
                    data.remove(need_del)


    def del_student():
        someGuy = input("请输入学生全名(非小名):")
        for find in data:
            if find["name"] == someGuy:
                print()
                sleep(1)
                print("Find it!")
                data.remove(find)


    def save():
        if data!= []:
            with open('data.txt','w',encoding='utf-8') as f:
                f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format('ID','Name','Sex','Address'))
                for i in data:
                    f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format(i['ID'],i['name'],i['sex'],i['address']))
            print('保存数据成功!')
        else:
            print('你的档案库为空!')


    someThing = input("Enter the num:")
    if someThing == "0":
        break
    elif someThing == "1":
        print_all()
        continue
    elif someThing == "2":
        print("好的")
        print()
        sleep(1)
        someThing_put_in()
    elif someThing == "3":
        print("OK")
        print()
        find_student()
    elif someThing == "4":
        print("OK")
        sleep(1)
        write_student()
    elif someThing == "5":
        print("OK")
        print()
        del_student()
    elif someThing == "6":
        save()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 19:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表