程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-03(2)

2023-04(3)

Python练习(三)

发布于2023-06-19 21:12     阅读(3614)     评论(0)     点赞(21)     收藏(1)


目录

传感器日志光照统计

文本字符分布

《白鹿原》词频统计

习题


传感器日志光照统计

本题目附件提供了一个传感器日志文件,为文本类型,共 1 千行,每行包含了日期、时间和 4 种传感器读数值。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

其中,4 种传感器读数值分别是:温度、湿度、光照和电压。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

Python123 中读取文件请假设题目对应文件在当前目录下,文件打开函数参考如下:

f=open("sensor-data-1k.txt", "r")

编写程序,统计日志反应的光照平均值,保留小数点后 2 位。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

示例1:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入:无
输出:"43.24"
注意:示例1 是一个输入输出示范样例,不是正确结果。

  1. with open("sensor-data-1k.txt","r") as f:
  2. sum, cnt = 0, 0
  3. for line in f:
  4. ls = line.split()
  5. cnt += 1
  6. sum += eval(ls[4])
  7. print(f"{sum / cnt:.2f}")

文本字符分布

分析附件 data.txt 文件的字符分布,即每个字符对应的数量。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

按照 字符:数量 显示,每行一个结果,如果没有出现该字节则不显示输出,字符采用 Unicode 编码升序排列。

示例1:

输入:无
输出:"

a:1
b:2
c:3
"

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪注意:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

  • 示例1 是一个输入输出示范样例,不是正确结果;
  • 字符:数量,其中,字符表示为可打印字符,按照升序。
  1. with open('data.txt','r') as f:
  2. d = {}
  3. for line in f:
  4. for s in line:
  5. d[s] = d.get(s, 0) + 1
  6. res = sorted(d)
  7. for i in res:
  8. print(i + ':' + str(d[i]))

《白鹿原》词频统计

附件是《白鹿原》原著内容,请读入内容,分词后输出长度大于 2 且最多的单词。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

如果存在多个单词出现频率一致,请输出按照 Unicode 排序后最大的单词。

示例1:

输入:无
输出:"白鹿原"‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意:示例1 是一个输入输出示范样例,不是正确结果

  1. import jieba
  2. with open("白鹿原.txt","r",encoding='utf-8') as f:
  3. words = jieba.lcut(f.read())
  4. counts = {}
  5. for word in words:
  6. if len(word) >= 2:
  7. counts[word] = counts.get(word, 0) + 1
  8. print(list(max(counts.items(), key=lambda x: x[1]))[0])

习题

1.文本的平均列数 

打印输出附件文件latex.txt的平均列数,计算方法如下:

1)有效行指包含至少一个字符的行,不计算空行;

2)每行的列数为其有效字符数;

3)平均列数为有效行的列数平均值,采用四舍五入方式取整数进位。

  1. with open('latex.log','r') as f:
  2. cnt, s = 0, 0
  3. for line in f.readlines():
  4. if not len(line) == 1 and line[-1] == '\n':
  5. cnt += 1
  6. s += len(line) - 1
  7. print(int(round(s / cnt, 0)))

2.图像文件压缩。使用PIL库对图片进行等比例压缩,无论压缩前文件大小如何,压缩后文件小于10KB

  1. from PIL import Image
  2. import os
  3. img=Image.open("picture.jpg")
  4. size=os.path.getsize("picture.jpg")/1024 #单位是B,装换为KB
  5. width,height=img.size
  6. while True:
  7. if size>10:
  8. width, height = round(width * 0.9), round(height * 0.9)
  9. cimg = img.resize((int(width), int(height)), Image.Resampling.LANCZOS)
  10. cimg.save("cpicture.jpg")
  11. size = os.path.getsize("cpicture.jpg") / 1024
  12. else:
  13. break

pillow库中的resize()

resize(size, resample=image.BICUBIC, box=None, reducing_gap=None)

size:元组参数 (width,height),图片缩放后的尺寸

resample:可选参数,指图像重采样滤波器,可选的采样类型包括:

Image.NEAREST :低质量

Image.BILINEAR:双线性

Image.BICUBIC :三次样条插值(默认)

Image.ANTIALIAS:高质量

box:对指定图片区域进行缩放,box的参数值是长度为4的像素坐标元组,即 (左,上,右,下)

ps:被指定的区域必须在原图的范围内,如果超出范围就会报错。当不传该参数时,默认对整个原图进行缩放;

reducing_gap:可选参数,浮点参数值,用于优化图片的缩放效果,常用参数值有3.0和5.0

原文链接:https://blog.csdn.net/qq_53401568/article/details/127810692



所属网站分类: 技术文章 > 博客

作者:what

链接:https://www.pythonheidong.com/blog/article/1990993/ac11b3cb0ca1f36828d8/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

21 0
收藏该文
已收藏

评论内容:(最多支持255个字符)