python编程基础及应用(重庆大学):11-1 ,11-2 文本的操作
11-1: 假定一个文本文件中包含未指定个数的考试分数,请编写一个程序,从文件中读取分数,以列表的方式打印输出所有的分数,同时计算分数之和,平均数以及最大分数。文件中的分数用空格分隔,程序运行时应该提醒用户输入一个文件名。代码:# @Time:2021/11/2313:57# @Author:中意灬# @File:11-1.py# @ps:tutu qqnum:2117472285def sorc
·
11-1: 假定一个文本文件中包含未指定个数的考试分数,请编写一个程序,从文件中读取分数,以列表的方式打印输出所有的分数,同时计算分数之和,平均数以及最大分数。文件中的分数用空格分隔,程序运行时应该提醒用户输入一个文件名。
代码:
# @Time:2021/11/2313:57
# @Author:中意灬
# @File:11-1.py
# @ps:tutu qqnum:2117472285
def sorcecount(name):
with open(f"{name}",'r',encoding="utf-8")as f:
list=[]
str=f.read()#读取全部内容
for i in str.split():
list.append(float(i))#将内容以空格为分隔符分隔出来并添加到列表中
print(list)
s=sum(list)#求和
avg=s/len(list)#求平均分数
m=max(list)#求最大分数
print("分数之和:",s,"\n平均数:",avg,"\n最大分数:",m)
if __name__=="__main__":
name=input("请输入一个文件名:")
sorcecount(name+".txt")
运行结果:
注:想要运行成功,应该文件和代码要在同一个路径下,或者你运行时使用绝对路径
11-2: 编写程序统计一个文本文件中的字符串,单词数以及行数,单词由空格分隔。程序应提示用户输入一个文件名。
代码:
# @Time:2021/11/2314:46
# @Author:中意灬
# @File:11-2.py
# @ps:tutu qqnum:2117472285
import re
def count(name):
list=[]
with open(f'{name}',"r",encoding="utf-8")as f:
rowlenth=0
str=[]
for line in f:
rowlenth=rowlenth+1 #行数
str.append(line.strip('\n'))#将每行作为元素保存为一个列表,去掉换行符
for i in str:
for x in i.split():
list.append(x)
string=" ".join(list) #将list列表的元素用空格连接起来,因为接下来要用正则表达式匹配单词,而它只能接收字符串
char = re.findall(r'[a-zA-Z]', string)
num = re.findall(r'[0-9]', string)
fuhao = re.findall(r'[,.''""?,。’‘“”?]', string)
chi = re.findall(r'[\u4E00-\u9Fa5]', string)# \u4E00-\u9Fa5是中文的范围
charnum=2*len(chi)+len(char+num+fuhao) #字符数,中文占两个字符
wordnum=re.findall(r'[a-zA-Z]+',string) #正则表达式匹配单词
print(string)
print('单词数:',len(wordnum))
print('行数:',rowlenth)
print('字符数:',charnum)
if __name__=="__main__":
name=input("请输入一个文件名:")
count(name+'.txt')
运行结果:
注:想要运行成功,应该文件和代码要在同一个路径下,或者你运行时使用绝对路径

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)