11-1: 假定一个文本文件中包含未指定个数的考试分数,请编写一个程序,从文件中读取分数,以列表的方式打印输出所有的分数,同时计算分数之和,平均数以及最大分数。文件中的分数用空格分隔,程序运行时应该提醒用户输入一个文件名。
代码:
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: 编写程序统计一个文本文件中的字符串,单词数以及行数,单词由空格分隔。程序应提示用户输入一个文件名。
代码:
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)
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')
运行结果: 注:想要运行成功,应该文件和代码要在同一个路径下,或者你运行时使用绝对路径
|