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}")

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/125845.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于Android Studio中开发Flutter配置

配置系统环境变量&#xff1a;path下 &#xff0c;flutter的bin目录下 File->Settings->Languages&Frameworks->FlutterFile->Settings->Languages&Frameworks->DartFile->Settings->Languages&Frameworks->Android SDK 确认是…

QMetaType和QVariant使用

描述 QMetaType和QVariant可以结合使用&#xff0c;用于在运行时确定数据类型。 QMetaType是Qt提供的用于管理各种数据类型的类&#xff0c;它可以帮助我们在运行时动态地创建、销毁、复制和比较数据类型。我们可以使用QMetaType来注册我们自己的数据类型&#xff0c;并为其提…

ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120

ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120 1. 确定Chrome版本 我们首先确定自己的Chrome版本 Chrome设置->关于Chrome 可以看到&#xff0c;当前chrome是最新版本&#xff1a;119.0.6045.124&#xff08;正式版本&#xff09; &#xff08;64 位&#…

前端图片压缩上传,减少等待时间!优化用户体检

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 这里有两张图片&#xff0c;它们表面看上去是一模一样的&#xff0c;但实际上各自所占用的内存大小相差了180倍。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&…

RxJava/RxAndroid的基本使用方法(一)

文章目录 一、什么是RxJava二、使用前的准备1、导入相关依赖2、字段含意3、Upstream/Downstream——上/下游4、BackPressure5、BackPressure策略6、“热” and “冷” Observables7、 基类8、事件调度器9、操作符是什么&#xff1f;10 、Consumer和 Observer的区别 三、RxJava的…

已解决:Python Error: IndentationError: expected an indented block 问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

C# OpenCvSharp 玉米粒计数

效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter "*.*|*.bmp;…

OpenGL_Learn08(坐标系统与3D空间)

目录 1. 概述 2. 局部空间 3. 世界空间 4. 观察空间 5. 剪裁空间 6. 初入3D 7. 3D旋转 8. 多个正方体 9. 观察视角 1. 概述 OpenGL希望在每次顶点着色器运行后&#xff0c;我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说&#x…

C++跨模块传递CRT引发问题

SDK新增加了一个接口&#xff0c;参数使用std::vector<Class>&&#xff0c;传给dll函数中填充数值&#xff0c;然后应用层拿到这个vector出现了崩溃 越界等问题&#xff0c;调了很久&#xff0c;之前知道这个问题&#xff0c;没有想起来&#xff0c;耽误了许多时间。…

用Python的requests库来模拟爬取地图商铺信息

由于谷歌地图抓取商铺信息涉及到API使用和反爬虫策略&#xff0c;直接爬取可能会遇到限制。但是&#xff0c;我们可以使用Python的requests库来模拟爬取某个网页&#xff0c;然后通过正则表达式或其他文本处理方法来提取商铺信息。以下是一个简单的示例&#xff1a; # 导入requ…

uniapp+uview2.0+vuex实现自定义tabbar组件

效果图 1.在components文件夹中新建MyTabbar组件 2.组件代码 <template><view class"myTabbarBox" :style"{ backgroundColor: backgroundColor }"><u-tabbar :placeholder"true" zIndex"0" :value"MyTabbarS…

网页分析和xml.etree库

源代码&#xff1a; Lib/xml/etree/ElementTree.py 该xml.etree.ElementTree模块实现了一个简单高效的 API&#xff0c;用于解析和创建 XML 数据。 一、说明 这是一个简短的使用教程xml.etree.ElementTree&#xff08;ET简而言之&#xff09;。目标是演示该模块的一些构建块和基…

基于FPGA的模板匹配红外目标跟踪算法设计

为什么要写这篇文章 我写这篇文章的原因是一天在B站看到了一个大神发的视频是关于跟踪一个无人机的&#xff0c;看到作者跟网友的回复说是用的图像匹配算法&#xff0c;我就在网上搜索相关资料&#xff0c;最终找到一篇文献。文献中对该算法的评价很高&#xff0c;满足制导系统…

为你摘星辰

欢迎来到程序小院 为你摘星辰 玩法&#xff1a;鼠标控制人物方向&#xff0c;点击鼠标键上升人物&#xff0c;经过⭐️⭐️吃掉获得分数&#xff0c;共三次生命&#xff0c;碰到红色障碍物减去一次生命&#xff0c; 人物掉落底部游戏结束&#xff0c;看你获得多少分^^。开始游…

排序算法的空间复杂度和时间复杂度

一、排序算法的时间复杂度和空间复杂度 排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O(n) O(n) O(n) O(1) 稳定 直接选择排序 O(n) O(n) O(n) O(1) 不稳定 直接插入排序 O(n) O(n) O(n) O(1) 稳定 快速排序 O(n…

ChatGPT付费创作系统V2.4.9独立版 +WEB端+ H5端 + 小程序端系统测试安装教程

播资源提供的GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。当前全民热议ChatGPT&#xff0c;流量超级大&#xff0c;引流不要太简单&#xff01;一键下单即可拥有自己的GPT&#xff01;…

【TASKING】如何提高编译器的编译速度

文章目录 前言一、How to Improve the compilation speed.1.1、Cache generated code to improve the compilation speed1.2 Influencing the Build TimeSFR File&#xff08;勾了可能会报错&#xff0c;好像得配合include一起用&#xff0c;暂未研究清除&#xff0c;仅供参考&…

死亡游戏:密室互猜硬币规则及其破解方法

今天听到一个有点小恐怖的死亡游戏 规则是 将你和最好的朋友 分别关进两个不同的房间 要关 100天 在被关的时间里 你们无法进行任何的沟通 每一天 会有一个人在你和朋友的房间分别抛一次硬币 你们需要去猜对方硬币的正反面 只需要一个人猜对了 则 相安无事 如果两个人都猜错了…

android手机平板拓展电脑音频

&#xff08;1&#xff09;首先确保电脑上有声卡&#xff0c;就是电脑右下角小喇叭能调音量&#xff0c;不管电脑会不会响&#xff0c;如果小喇叭标记了个错误&#xff0c;说明没有声卡&#xff0c;安装图上的虚拟声卡软件。 &#xff08;2&#xff09;图上第一个PC免安装及局…

图像二值化阈值调整——Triangle算法,Maxentropy方法

一. Triangle方法 算法描述&#xff1a;三角法求分割阈值最早见于Zack的论文《Automatic measurement of sister chromatid exchange frequency》主要是用于染色体的研究&#xff0c;该方法是使用直方图数据&#xff0c;基于纯几何方法来寻找最佳阈值&#xff0c;它的成立条件…
最新文章