成绩查询(文件+字典)

从文件读取数据后,存入字典,姓名作为字典的键,成绩作为字典的值。然后输入姓名,查询相应的成绩,查不到,显示"未找到"

基于Monster 组和GPT的调写:

# 打开文件,读取数据
with open('data.txt', 'r') as f:
    data = f.readlines()

# 创建空字典
scores = {}

# 将数据存入字典
for line in data:
    name, score = line.strip().split(',')
    scores[name] = int(score)

# 输入姓名,查询成绩
name = input('请输入姓名:')
if name in scores:
    print(f'{name}的成绩是:{scores[name]}')
else:
    print('未找到')


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/728493
  • 这篇博客你也可以参考下:动态爬取豆瓣电影中“更多”电影详情数据
  • 除此之外, 这篇博客: 一名合格的软件测试工程师 哪些网站和书籍是我们必须要关注的中的 一、关于软件测试的网站推荐 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    作为有10年软件测试工作经验的软件测试工程师,给大家分享我平时常用的关于软件测试的一些网站(排名不分先后):

  • 您还可以看一下 陈槐老师的软件测试全栈系列课程课程中的 查询结果字段取别名as小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    可以通过以下步骤实现从文件中读取数据后存入字典,并利用姓名作为键值,成绩作为对应的值来查询成绩信息:

    1. 先定义一个空字典,用于存放姓名和对应成绩的键值对。
    2. 打开文件,使用with open(filename, 'r') as f:的形式,读取文件中每一行的数据。
    3. 遍历文件中的每一行数据分别进行处理:
    4. 使用strip()方法去掉前后的空格。
    5. 使用split()方法分离姓名和成绩,存入一个列表中。
    6. 将姓名作为键,成绩作为值,存入字典中。
    7. 关闭文件。
    8. 实现查询函数,在函数中输入姓名,从字典中查找对应成绩,如果存在则输出成绩,否则提示用户不存在该姓名对应的成绩。

    下面是具体实现的代码:

    # 定义空字典
    score_dict = {}
    
    # 打开文件并读取每行数据
    with open('data.txt', 'r') as f:
        for line in f:
            # 去掉前后空格,并使用split()方法分离姓名和成绩
            name, score = line.strip().split()
            # 将姓名作为键,成绩作为值,存入字典中
            score_dict[name] = int(score)
    
    # 关闭文件
    f.close()
    
    # 实现查询函数
    def query_score(name):
        if name in score_dict:
            print("{}的成绩为: {}".format(name, score_dict[name]))
        else:
            print("不存在名为{}的学生,请重新输入!".format(name))
    
    # 测试查询函数
    query_score('小明')  # 输出:小明的成绩为: 80
    query_score('小红')  # 输出:不存在名为小红的学生,请重新输入!
    

    其中data.txt文件中的数据格式为:

    小明 80
    小刚 90
    小红 78
    ...  ...
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^