您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页第十二章-习题答案

第十二章-习题答案

来源:华佗小知识


第十二讲习题参

一.当前目录下有一个文本文件sample12.txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。

参:

f=open(\"sample12.txt\")

L1=f.readlines()

f2=open(\"sample12_copy.txt\

for line in L1:

f2.write(line.upper())

f.close()

f2.close()

二.当前目录下有一个文件名为class_score.txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求:

(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。

(2)找出两门课都不及格(<60)的学生,输出他们的学号和各科成绩。

(3)找出两门课的平均分在90分以上的学生,输出他们的学号和各科成绩。

建议用三个函数分别实现以上要求。

参:

def output_avg(L):

sum1,sum2=0,0

for line in L:

L1=line.strip().split()

sum1+=int(L1[1])

sum2+=int(L1[2])

count=len(L)

avg1=round(sum1/count,1)

avg2=round(sum2/count,1)

print(\"这个班的数学平均分为:%4.1f,语文平均分为:%4.1f\"%(avg1,avg2))

def output_notpass(L):

print(\"两门课均不及格的学生学号及数学、语文成绩为:\")

for line in L:

L1=line.strip().split()

if int(L1[1])<60 and int(L1[2])<60:

print(line)

def output_good(L):

print(\"两门课平均分在90分以上的学生学号及数学、语文成绩为:\")

for line in L:

L1=line.strip().split()

f_score=round((int(L1[1])+int(L1[2]))/2)

if f_score>=90:

print(line)

f=open(\"class_score.txt\")

L=f.readlines()

del L[0]

output_avg(L)

output_notpass(L)

output_good(L)

三.编程,请输入一个文件路径名或文件名,查看该文件是否存在,如存在,打开文件并在屏幕上输出该文件内容;如不存在,显示“输入的文件未找到!”并要求重新输入;如文件存在但在读文件过程中发生异常,则显示“文件无法正常读出!”并要求重新输入。

(提示:请使用异常处理。“文件未找到”对应的异常名为:FileNotFoundError,其他异常直接用except匹配)

参:

while True:

try:

filename=input('请输入文件路径名或文件名:')

f=open(filename.strip())

print(f.read())

except FileNotFoundError:

print(\"输入的文件未找到!\")

except:

print(\"文件无法正常读出!\")

else:

break

f.close()

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务