【Python】基础练习题_文件及数据格式化

(1)从键盘输入一些字符,逐个把它们写到磁盘文件"test1.txt"上,直到输入一个#为止。

file_name = "test1.txt"with open(file_name, "w") as file:while True:char = input("请输入字符:")if char == "#":breakfile.write(char)print("字符已写入文件", file_name)

(2)从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test2.txt"中保存。

file_name = "test2.txt"string = input("请输入字符串:")
converted_string = string.upper()with open(file_name, "w") as file:file.write(converted_string)print("转换后的字符串已保存到文件", file_name)

(3)将上述(1)和(2)中的两个磁盘文件"test1.txt"和"test2.txt",件中的信息合并(并按字母顺序排列处理),输出到一个新文件"test_merge.txt"中。

file1_name = "test1.txt"
file2_name = "test2.txt"
merge_file_name = "test_merge.txt"with open(file1_name, "r") as file1, open(file2_name, "r") as file2:content1 = file1.read()content2 = file2.read()merged_content = content1 + content2
sorted_content = ''.join(sorted(merged_content))with open(merge_file_name, "w") as merge_file:merge_file.write(sorted_content)print("合并后的信息已保存到文件", merge_file_name)

(4)制作英文学习词典。编写程序制作英文学习词典,词典有3个基本功能:添加、查询和退出。程序读取源文件路径下的txt格式词典文件,若没有就创建一个。词典文件存储方式为“英文单词 中文单词”,每行仅有一对中英释义。程序会根据用户的选择进入相应的功能模块,并显示相应的操作提示。当添加的单词已存在时,显示“该单词已添加到字典库”;当查询的单词不存在时,显示“字典库中未找到这个单词”。用户输入其他选项时,提示“输入有误”。
要求分别定义两个函数实现从字典中查询单词和向字典中添加单词的功能。

import osdef add_word(dictionary):word = input("请输入要添加的英文单词:")if word.lower() in dictionary:print("该单词已添加到字典库")else:translation = input("请输入该单词的中文释义:")dictionary[word.lower()] = translationprint("单词添加成功")def search_word(dictionary):word = input("请输入要查询的英文单词:")if word.lower() in dictionary:print("中文释义:", dictionary[word.lower()])else:print("字典库中未找到这个单词")def main():file_name = "dictionary.txt"dictionary = {}if os.path.exists(file_name):with open(file_name, "r") as file:for line in file:line = line.strip()word, translation = line.split(" ")dictionary[word.lower()] = translationwhile True:print("欢迎使用英文学习词典!请选择操作:")print("1. 添加单词")print("2. 查询单词")print("3. 退出")choice = input("请输入选项编号:")if choice == "1":add_word(dictionary)elif choice == "2":search_word(dictionary)elif choice == "3":with open(file_name, "w") as file:for word, translation in dictionary.items():file.write(word + " " + translation + "\n")print("词典已保存,感谢使用!")breakelse:print("输入有误,请重新输入选项编号")main()

(5)图片文件压缩。使用PIL库对图片进行等比例压缩,无论压缩前文件大小如何,压缩后文件小于10kB‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
提示:size=os.path.getsize(path) #获取指定路径文件占用存储空间的大小。据此计算压缩比。再去调整图片缩放。
Im=im.resize((sizex,sizey)) #将图像im缩放到指定大小。
要求:至少有指定压缩比的图片压缩函数和主函数。

import os
from PIL import Imagedef image_compress(file_path, compress_ratio):# 获取原始图片尺寸im = Image.open(file_path)original_size = os.path.getsize(file_path)width, height = im.size# 计算目标图片尺寸target_width = int(width * compress_ratio)target_height = int(height * compress_ratio)# 缩放图片尺寸resized_im = im.resize((target_width, target_height))# 保存压缩后的图片resized_im.save("compressed_image.jpg", optimize=True, quality=95)compressed_size = os.path.getsize("compressed_image.jpg")# 检查压缩比是否满足要求if compressed_size / original_size > 0.1:print("无法将图片压缩到指定大小以下。")else:print("图片压缩成功。压缩前大小: {} bytes,压缩后大小: {} bytes。".format(original_size, compressed_size))# 测试压缩函数
image_compress("original_image.jpg", 0.1)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10倍提升启动的时间?Graalvm打包Springboot+MyBatis实测

graalvm使用前后对比图 相关代码博客:https://blog.csdn.net/weixin_43914278/article/details/134446327 工具大小时间graalvm打包的exe文件84.14MB0.251秒graalvm打包的docker文件121.27MB0.253秒jar包51.34MB2.153秒 解析 文件大小: graalvm打包的Docker文件…

苍穹外卖项目笔记(7)— 微信登录、商品浏览

前言 苍穹外卖项目代码:https://github.com/Echo0701/take-out 1 HttpClient 1.1 介绍 HttpClient 是 Apche Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且支持 HTTP 协议最新…

CUDA简介——For循环并行化

1. 引言 前序博客: CUDA简介——基本概念CUDA简介——编程模式 kernel相关语法定义为: kernel函数定义,与常规C函数定义类似。不同之处在于,有__global__关键字。 为说明符,告诉编译器该函数应编译运行在device上&a…

java easyPOI导出一对多数据,设置边框,字体,字体大小

java easyPOI导出一对多数据,设置边框,字体,字体大小 需求总是千奇百怪,解决的方式也可以是多种多样。 今天碰到导出excel是一对多结构的,以往导出的数据都是一条一条的,所以采用的是比较方便简单的方法eas…

linux 路由表的优先级

查看路由规则 [rootlocalhost cc]# ip rule list 0: from all lookup local 32765: from 10.0.19.24 lookup 4096 32766: from all lookup main 32767: from all lookup default 现在有 4 条路由规则,优先级是怎样的,0 代表最低优先级还是最高优先级 在…

pytest-yaml 测试平台.新增项目和用例

基于pytest-yaml-yoyo 框架写的接口测试平台,在web网页平台上维护yaml测试用例,执行用例,并查看allure报告。 pytest-yaml-yoyo 框架简介 pytest-yaml-yoyo 框架是上海-悠悠 2023年自主开发的pytest结合yaml框架。gitee项目地址https://gite…

综合指南:如何创建有效的知识地图?

知识地图是知识管理中的重要工具,使企业能够有效地利用其资产。它促进了解决问题、新人整合和组织学习。此外,它还提高了生产力,实现了数据驱动的决策,并优化了流程。通过捕获和组织有价值的知识资产,它确保了专业知识…

前后端分离vue+Nodejs社区志愿者招募管理系统

1、首页 1)滑动的社区照片册 使用轮播图,对社区的活动纪念与实时事件宣传。 每个图片附有文字链接,点击跳转对应社区要闻具体页。 2)社区公告栏 日常的社区公告以及系统说明在此区域中进行说明与展示。 2、志愿活动 1)志愿活动发布 想发布需要登录 2)志愿…

kubekey部署k8s

服务器配置 nameipmaster192.168.57.61 node1192.168.57.76 master 安装需要2H4G 磁盘空间至少需要20G node1 安装需要4H4G 磁盘空间至少需要50G 安装k8s环境依赖,在每台服务器执行以下命令 命令:yum install -y socat conntrack ebtables ipset 下载…

【C语言】【堆排序实现TOPK问题】写一个堆排序,并且在一百万个数中找出最大的前K个

1.堆排序的实现: 如果要升序输出,则实现大堆 如果要降序输出,则实现小堆 逻辑:(升序输出) 将堆顶的元素和最后一个元素交换位置,此时左子树和右子树分别仍是大堆的顺序,交换位置后…

保障Adams许可管理数据库安全:备份与恢复的最佳实践

在工程仿真领域,Adams软件是一款广泛应用于动力学分析的工具。然而,随着项目的不断扩大和复杂化,如何备份和恢复Adams许可管理数据库成为了一个重要的问题。为了帮助用户更好地理解和掌握Adams许可管理数据库备份与恢复的最佳实践&#xff0c…

【matlab程序】matlab画螺旋图|旋转图

%% 数学之美====》螺旋线 % 海洋与大气科学 % 20231205 clear;clc;close all; n=10; t=0:0.01:2pin; R=1; xx=nan(length(t),1);yy=nan(length(t),1); for i=1:length(t) xx(i)=Rcos(t(i)); yy(i)=Rsin(t(i)); R=R+1; end figure set(gcf,‘position’,[50 50 1200 1200],‘col…

中文手写数字数据识别

实验环境 python3.7torch1.13.1cu117 torchaudio0.13.1cu117 torchvision0.14.1数据下载地址:Mnist中文手写数字数据集Python资源-CSDN文库 这些汉字包括: 零、一、二、三、四、五、六、七、八、九、十、百、千、万、亿 总共15个汉字,分别…

浅谈ArrayBuffer、Blob和File、FileReader

ArrayBuffer、Blob和File都是JavaScript中处理二进制数据的对象。 ArrayBuffer 用于表示一个通用的、固定长度的原始二进制数据缓冲区。它不能直接操作缓冲区中的数据,而需要通过一个类型化数组TypedArray(如Int8Array、Uint8Array等)或者一…

linux 中crontab 定时任务计划创建时间文件夹示例

1.创建一个sh脚本 /usr/bin/mkdir 是mkdir命令的路径 /usr/bin/chmod 是chmod命令的路径 2.编辑定时任务 crontab -e

爆款开放式耳机哪一款性价比最高?3款热门机型推荐,小白速看

随着生活水平的提升,越来越多的人对蓝牙耳机的需求不再局限于简单的音乐欣赏。他们对耳机的要求越来越高,包括音质表现、舒适度、环境感知等方面也有极大的期待,正是因为这样,开放式耳机应运而生。 身为一个数码测评小博主&#x…

C++ 12.5作业

以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员&…

谈一谈define,枚举,const,内联

define #define命令是C语言中的一个宏定义命令,它用来讲一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义(不带参数的宏定义)&#xff0…

音乐律动效果

先上图 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>音乐律动效果</title><style>* {margin: 0;padding: 0;}li {list-style: none;}.container .img {width: 200px;height: 200…

Git介绍与安装使用

目录 1.Git初识 1.1提出问题 1.2如何解决--版本控制器 1.3注意事项 2.Git安装 2.1Linux-centos安装 2.2Linux-ubuntu安装 2.3Windows安装 3.Git基本操作 3.1创建Git本地仓库 3.2配置Git 4.认识⼯作区、暂存区、版本库 1.Git初识 1.1提出问题 不知道你工作或学习时…