• Python二级综合题:计算总成绩 五种解法


    目录

    一、题目要求

    二、各种解法

    1. 官方解法

    2. 官方解法优化

    3. 列表推导式法

    4. 利用map方法

    5. 利用pop方法

    三、学后反思


    一、题目要求

    考编程模板,读取附件 data.txt 中的内容,计算第一行学生的总成绩,然后参考输入输出示例将结果直接输出到窗口中。不得修改程序中已给出的框架内容。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

    特别提醒:如果同学们在 IDLE 中编程,请把 .py 文件和 data.txt 文件放在同一目录下。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

    示例1:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

    1. 输入:无
    2. 输出:"314"

    data.txt中的内容如下:

    李启睿,110,115,119 

    补充一行代码输出以上内容,原有的代码如下:

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. ———————————————————————

    二、各种解法

    1. 官方解法

    采用eval把字符相加后的式子进行运算,同时利用了列表的切片

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. print(eval(line[1])+eval(line[2])+eval(line[3]))

    2. 官方解法优化

    考虑到eval可以计算字符串算式,我们可以先把数字符相加,然后用eval计算,这样减少切片和多次使用eval,执行的效率更高。

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. print(eval("+".join(line[1:])))# 把数字字符用加号拼接后用eval进行脱字符计算,这里用上了"".join()

    3. 列表推导式

    采用列表推导式把数字字符转化为数字后计算,然后再输出。

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. print(sum([int(i) for i in line[1:]]))

    列表line进行切片,int把字符转化为数字,然后用内置函数sum运算。

    4. 利用map方法

    利用map函数把每一个字符转化为数字后,然后再用sum进行计算,最后打印出结果。

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. print(sum(map(int,line[1:])))

    5. 利用pop方法

    先把首个元素用pop(0)删除,然后再求合。

    1. with open("data.txt","r",encoding="utf-8") as fi:
    2. line = fi.readline().split(',')
    3. line.pop(0)
    4. print(eval("+".join(line)))

    三、学后反思

    1. 官方的解法固然不然,但是Python本身就是一个十分灵活的编程语言,我们可以采用不同的方法来解决同一个问题,从而打开思路,提升个人的编程能力和水平。
    2. Python的内置函数十分丰富,而且功能强大,如果综合利用可以很好地发挥其功能,产生事半功倍的效果。
  • 相关阅读:
    NX二次开发-UFUN查询对象的类型和子类型UF_OBJ_ask_type_and_subtype
    python计算脚长 青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析2022年9月
    LeetCode每日一练 —— 88. 合并两个有序数组
    ElasticSearch-查询语法(结构化查询)
    2024 ,Android 15 预览版来了
    无限级树组件,支持纯展示、单选、多选、多选联动等模式
    赋能中国制造,大道云行发布智能制造分布式存储解决方案
    Redis注解式开发结合SSM项目使用与Quartz框架介绍以及击穿、穿透、雪崩问题解决
    产品经理基础--06产品设计规范
    fetch网络请求详解
  • 原文地址:https://blog.csdn.net/henanlion/article/details/131140220