P001_python读取成绩文件获取最高分最低分平均分

文件内容:
101,小张,88
102,小王,77
103,小李,99
104,小赵,66
105,小强,55

def compute_score():
    scores=[] #定义空列表保存后面的分数
    with open('1.txt',encoding='utf8') as f:  #打开文件,注意字符编码问题,如果中文乱码,注意加上encoding='utf8'
        for line in f:
            line=line[:-1]  #由于文件里面有换行,这里把取出的每一行最后的换行符去掉
            fields=line.split(',')   # 取出的每一行是逗号分隔的,通过split转换成列表
            scores.append(int(fields[-1])) # 取出列表里面的最后一个字符转成int然后添加到scores列表中
    max_score=max(scores)  #借助max函数求出列表最大值
    min_score=min(scores)  #借助min函数求出列表最小值
    avg_score=sum(scores)/len(scores)  #求出总分除以总人数,len可以求出列表的长度,长度就是总人数
    return max_score,min_score,avg_score   #返回

max_score,min_score,avg_score=compute_score()  #这里的写法表示列表的解包的方法

print(f"max_score={max_score},min_score={min_score},avg_score={avg_score}") #最后打印出相关值

上面提到了列表的解包的用法,下面补充下python解包的相关知识点:
列表的解包(unpacking)在Python中是一种非常实用的特性,它允许你将列表(或其他可迭代对象)中的元素分配给多个变量。以下是对列表解包的详细解释和示例:

一、基本解包
假设你有一个包含多个元素的列表,你可以将这些元素分别赋值给相同数量的变量。

lst = [1, 2, 3]  
a, b, c = lst  
print(a, b, c)  # 输出: 1 2 3

在这个例子中,列表lst中的元素被分别解包并赋值给了变量a、b和c。

二、解包到变量并忽略某些元素
如果你只对列表中的某些元素感兴趣,可以使用下划线_(通常用作忽略的变量的约定俗成的名称)来忽略其他元素。

lst = [1, 2, 3, 4]  
a, b, _, d = lst  
print(a, b, d)  # 输出: 1 2 4

三、解包到嵌套变量
如果列表中包含元组或其他可迭代对象,并且每个可迭代对象都有多个元素,你可以将它们解包到嵌套的变量中。

lst = [(1, 'a'), (2, 'b'), (3, 'c')]  
a, b_tuple = lst[0]  # 或者 a, b = lst[0]  
print(a, b_tuple)  # 输出: 1 ('a',) 或者使用 a, b 形式则输出 1 a  
  
# 直接解包到两个变量  
a1, b1 = lst[0]  
print(a1, b1)  # 输出: 1 a

四、使用*解包到剩余的元素
你还可以使用*运算符来捕获列表中的剩余元素,并将它们存储在一个新的列表中。

lst = [1, 2, 3, 4, 5]  
a, *rest = lst  
print(a, rest)  # 输出: 1 [2, 3, 4, 5]

在这个例子中,变量a接收了列表的第一个元素,而rest列表接收了剩余的所有元素。

五、在函数参数中使用解包
你还可以在函数参数中使用解包来传递多个参数。

def func(a, b, c):  
    print(a, b, c)  
  
lst = [1, 2, 3]  
func(*lst)  # 输出: 1 2 3

在这个例子中,列表lst被解包成三个单独的参数,并传递给函数func。

总结
列表解包是Python中一个非常有用的特性,它允许你以简洁的方式将列表中的元素分配给多个变量。通过掌握这一特性,你可以编写出更加清晰和高效的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值