Python实验项目6 :文件操作与模块化

 1、使用random库,产生10个100到200之间的随机数,并求其最大值、平均值、标准差和中位数。

 

# 1、使用random库,产生10个100到200之间的随机数,并求其最大值、平均值、标准差和中位数。
import random
# 定义一个列表
list=[]
for i in range(10):
    list.insert(i,random.randint(100, 200))
max=list[0]
sum=0#  求和
avg=0#  平均值
std=0# 标准差
mid=0#  中位数
for i in range(10):
    if max<list[i]:
        max=list[i]
    sum+=list[i]
avg=sum/10
list.sort()
mid=list[5]
std=0
for i in range(10):
    std+=(list[i]-avg)**2
    std=std/10
std=std**0.5
print(f"最大值为:{max}")
print(f"平均值为:{avg}")
print(f"标准差为:{std}")
print(f"中位数为:{mid}")

2、将一个文件中的所有英文字母转换成大写,复制到另一文件中。 

# 2、将一个文件中的所有英文字母转换成大写,复制到另一文件中。
f=open("a.txt","r")
read = f.read()
f.close()
read = read.upper()
f=open("b.txt","w")
f.write(read)
f.close()

3、中文文本分析与统计。

要求:给出一篇文档“wind.txt”,统计其中词频前 3 位的词及出现次数。

提示:中文文本分析与统计通常是将文件操作与第三方库 jieba 库、字典、列表等知识点结合在一起,重点在于知识综合运用能力。

(1)导入第三方库 jieba 库,该库用于中文分词。

(2)使用当前操作系统默认的编码方式,打开文本文件“wind.txt”,并将文件内容读取到变量 txt 中。

(3)使用 jieba 库的 lcut()方法将 txt 变量分词,分词结果保存到列表 ls 中。

(4)完成词频统计功能,并保存在字典中;将字典中的统计结果保存到列表 freq_word中,然后根据出现频次排序,最后输出

# 3、中文文本分析与统计。
# 要求:给出一篇文档“wind.txt”,统计其中词频前 3 位的词及出现次数。
# 提示:中文文本分析与统计通常是将文件操作与第三方库 jieba 库、字典、列表等知识点结合在一起,重点在于知识综合运用能力。
# (1)导入第三方库 jieba 库,该库用于中文分词。
# (2)使用当前操作系统默认的编码方式,打开文本文件“wind.txt”,并将文件内容读取到变量 txt 中。
# (3)使用 jieba 库的 lcut()方法将 txt 变量分词,分词结果保存到列表 ls 中。
# (4)完成词频统计功能,并保存在字典中;将字典中的统计结果保存到列表 freq_word中,然后根据出现频次排序,最后输出。
import jieba
f=open("wind.txt","r",encoding="utf-8")
text=f.read()
f.close()
for item in ',。!?、;\n:“”':#因为String类是不可变的,也就是说,一旦创建了一个String对象,它的值就无法更改。因此,当调用replace方法时,它并不会改变原始字符串,而是返回一个新的字符串。所以,需要将返回的新字符串赋值给原始字符串变量,才能实现替换操作。
    text=text.replace(item, "")
print(text)
ls=jieba.lcut(text)
dic={}
for i in ls:
    if i in dic:
        dic[i]+=1
    else:
        dic[i]=1
freq_word=sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(freq_word[:3])

 4、将一个文件中的指定单词删除后,复制到另一个文件中。

# 4、将一个文件中的指定单词删除后,复制到另一个文件中。
f=open("a.txt","r")
read = f.read()
f.close()
replace = read.replace("a", "")
f=open("b.txt","w")
f.write(replace)# 传的是replace不是read
f.close()

 5、接收用户从键盘输入的一个文件名,然后判断该文件是否存在于当前目录。若存在,则输出以下信息:文件是否可读和可写、文件的大小、文件是普通文件还是目录。

# 5、接收用户从键盘输入的一个文件名,然后判断该文件是否存在于当前目录。
# 若存在,则输出以下信息:文件是否可读和可写、文件的大小、文件是普通文件还是目录。
file_name = input("请输入文件名:")
try:
    file = open(file_name, "r")
    print("文件是否可读:", file.readable())
    print("文件是否可写:", file.writable())
    print("文件的大小:", file.tell())
    if(file.isatty()):
        print("文件是目录")
    else:
        print("文件是普通文件")
    file.close()
except:
    print("文件不存在!")

 6、将一文本文件加密后输出,规则如下:大写英文字符A变换为C,B变换为D,……,Y变换为A,Z变换为B,小写英文字符规则同上,其他字符不变。

# 6、将一文本文件加密后输出,规则如下:大写英文字符A变换为C,B变换为D,……,Y变换为A,Z变换为B,小写英文字符规则同上,其他字符不变。
f=open('a.txt','r')
f_read = f.read()
print(f"加密前:{f_read}")
f1=open('b.txt','w')
for i in f_read:
    if i.isupper():
        if i == 'Y':
            f_read = f_read.replace(i,'A')
        elif i == 'Z':
            f_read = f_read.replace(i, 'B')
        else:
            f_read = f_read.replace(i,chr(ord(i)+2))
    elif i.islower():
        if i == 'y':
            f_read = f_read.replace(i, 'a')
        elif i == 'z':
            f_read = f_read.replace(i, 'b')
        else:
            f_read = f_read.replace(i, chr(ord(i) + 2))
f.close()
f1.write(f_read)
f1.close()
print('加密成功!')
f1=open('b.txt','r')
psw = f1.read()
print(f"加密后:{psw}")

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值