【Python面试题收录】Python编程基础练习题①(数据类型+函数+文件操作)

本文所有代码打包在Gitee仓库中icon-default.png?t=N7T8https://gitee.com/wx114/Python-Interview-Questions 

一、数据类型

第一题(str)

请编写一个Python程序,完成以下任务:

  1. 去除字符串开头和结尾的空格。
  2. 使用逗号(",",不带空格)将字符串中的电子邮件地址分割成一个列表。
  3. 遍历列表中的每个电子邮件地址,将其域名部分(即"@"符号之后的部分)转换为小写。
  4. 使用逗号加空格(", ")作为分隔符,将修改后的电子邮件地址列表重新连接成一个字符串。
  5. 输出转换后的字符串,并打印出转换前后字符串的长度差。

示例输入:

emails = "  example@EXAMPLE.COM, anotherEmail@Domain.com , Third.Email@example.NET  "

期望输出(注意:实际输出中的电子邮件地址顺序可能与示例不同,因为题目没有要求保持原始顺序):

转换后的字符串: example@example.com, anotheremail@domain.com,third.email@example.net  

转换前后字符串长度差: -14

【注】长度差可能为正数、负数或零,这取决于原始字符串中额外空格和大小写转换的影响。

第二题(str)

将一个URL转换成对应的格式

示例输入:

string = “https://www.baidu.com/s?wd=feapder&pn=10”

期望输出:

url = "https://www.baidu.com/s"

params = {

    "wd": "feapder",

    "pn": "10"

}

第三题(list)

        你有一个包含整数的列表,你需要对这个列表执行一系列操作,以得到一个新的列表,并计算操作前后列表的元素总和之差。具体操作如下:

  1. 去除列表中所有的负数元素。
  2. 将剩余的每个元素乘以2。
  3. 使用列表推导式(list comprehension)筛选出所有偶数元素。
  4. 将筛选出的偶数元素按照从大到小的顺序排序。
  5. 计算原列表和新列表的元素总和之差。

示例输入:

numbers = [1, -2, 3, -4, 5, 6, -7, 8, 9, -10]

期望输出(注意:由于示例输入中的负数被去除,并且所有元素都乘以了2,然后又筛选出了偶数,最后还进行了排序,所以实际输出可能与直接计算的总和差有所不同,但这里给出的是按照题目要求操作后的逻辑结果):

操作后的列表: [16, 12, 10, 8]  

操作前后列表元素总和之差: -36

【注】期望输出中的操作后列表是根据示例输入和题目要求操作后得到的实际结果,而总和之差则是通过计算原列表元素总和与操作后列表元素总和之间的差值得到的。

第四题(dict)

你是一家书店的IT部门员工,书店的库存信息以字典的形式存储,其中字典的键是书籍的ISBN号(假设为字符串类型),值是一个包含书籍详细信息的字典,这个详细信息字典包括书名(title)、作者(author)、库存数量(stock)和价格(price)。现在,请根据以下要求编写Python代码来完成任务:

  1. 创建一个包含三本书籍信息的库存字典。
  2. 查询并打印出ISBN为"978-1234567890"的书籍的详细信息。
  3. 假设我们要更新ISBN为"978-1234567890"的书籍的库存数量,将其增加10本。
  4. 打印出所有书籍的ISBN和它们的价格。
  5. 使用get()方法尝试获取ISBN为"978-0987654321"的书籍的库存数量,如果不存在,则返回"书籍未找到"。
  6. 移除ISBN为"978-1112223334"的书籍(假设它存在于库存中),并打印出移除后的库存字典。

示例库存字典(仅作为参考,实际创建时请使用自己的ISBN和书籍信息):

inventory = {  

    "978-1234567890": {"title": "Python编程从入门到实践", "author": "埃里克·马瑟斯", "stock": 50, "price": 39.99},  

    "978-2345678901": {"title": "算法导论", "author": "托马斯·科尔曼", "stock": 20, "price": 59.99},  

    "978-3456789012": {"title": "代码大全", "author": "史蒂夫·迈克康奈尔", "stock": 35, "price": 49.99}  

}

第五题(set)

        你有一个公司员工的ID集合,以及一个参加特定培训课程的员工ID集合。现在,你需要根据这些集合来完成以下任务:

  1. 创建一个包含所有员工ID的集合(假设有10个不同的员工ID,你可以自己定义这些ID)。
  2. 创建一个包含参加培训课程的员工ID的集合(假设有5个员工参加了培训,这些员工ID可以是前面10个员工ID中的任意5个)。
  3. 计算并打印出没有参加培训课程的员工ID集合。
  4. 假设又有一个新的员工ID集合,表示最近加入公司的员工。请将这个新集合中的员工ID添加到原始员工ID集合中,并打印出更新后的员工ID集合。
  5. 找出既参加了培训又是新加入公司的员工ID(假设有这样的员工存在)。

二、函数

第一题

        将上述“数据类型”中的五道题,分别用五个函数来封装。

第二题

        设计一个函数实现在“数据类型”的五道题中切换。

        示例输入:

        选择第n题(n=1到5,按0退出)

        期望输出:对应题目的答案。

第三题

        编写一个Python程序,该程序包含以下几个部分:

  1. 定义一个函数 calculate_area,该函数接受两个参数:length 和 width,分别代表一个矩形的长和宽。函数的功能是计算并返回该矩形的面积。
  2. 定义一个函数 describe_rectangle,该函数接受一个字典作为参数,该字典包含键 'length' 和 'width',对应的值分别为矩形的长和宽。函数的功能是首先调用 calculate_area 函数来计算并获取矩形的面积,然后打印出矩形的长、宽和面积。
  3. 在程序中调用 describe_rectangle 函数,并传入一个包含矩形长和宽的字典作为参数。

示例输出(假设传入的字典是 {'length': 10, 'width': 5}):{'length': 10, 'width': 5}

期望输出:

矩形的长为: 10  

矩形的宽为: 5  

矩形的面积为: 50

第四题

        编写一个Python函数,该函数接受任意数量的位置参数(即不限制参数的数量),并计算这些参数的平均值。然后,在程序中调用这个函数,传入几个数字作为参数,并打印出这些数字的平均值。

要求:

  1. 使用*args语法来接收任意数量的位置参数。
  2. 确保函数能够处理没有传入任何参数的情况,并优雅地处理这种情况(例如,打印一条消息表示没有参数传入,并返回None或0作为平均值)。
  3. 计算平均值时,需要确保传入的参数中至少有一个是数字(为了简化,我们不考虑字符串等非数字类型作为参数的情况,但在实际应用中可能需要添加类型检查)。

第五题

        编写一个Python函数,该函数接受任意数量的关键字参数(即不限制参数名和数量的参数),并返回一个包含所有传入关键字参数及其值的字典。然后,在程序中调用这个函数,传入几个关键字参数,并打印出该函数返回的字典。

要求:

  1. 使用**kwargs语法来接收任意数量的关键字参数。
  2. 确保函数能够处理没有传入任何关键字参数的情况,并返回一个空的字典。
  3. 在返回的字典中,关键字参数名应作为键,对应的值作为值。

三、文件

        请注意,下面的五个题目都要封装成函数。

第一题

        用OS模块,创建一个名为“Python基础练习day01”的文件夹。(要包含同名检测和异常处理功能)

第二题

        在刚刚创建好的“Python基础练习day01”文件下,创建三个子文件夹“数据类型”、“函数”、“文件”。

第三题

        依次删除刚刚创建好的三个目录,删除前需要输入‘y’来确认。

第四题

        第二题中的创建三个文件夹的函数的传参是若是一个列表

        [‘Python基础练习day01/数据类型’, ’Python基础练习day01/函数’, ’Python基础练习day01/文件’]

        该怎么实现第二题中的功能?

第五题

        如何删除一个有文件的文件夹?(递归删除目录)

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

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

相关文章

axios请求大全

本文讲解axios封装方式以及针对各种后台接口的请求方式 axios的介绍和基础配置可以看这个文档: 起步 | Axios中文文档 | Axios中文网 axios的封装 axios封装的重点有三个,一是设置全局config,比如请求的基础路径,超时时间等,第二点是在每次…

kafka服务介绍

kafka 安装使用管理 Kafka Apache Kafka 是一个开源的分布式事件流平台,主要用于实时数据传输和流处理。它最初由 LinkedIn 开发,并在 2011 年成为 Apache 基金会的顶级项目。Kafka 设计的目标是处理大规模的数据流,同时提供高吞吐量、低延迟…

【前端】Vue2.0和Vue3.0 的一些主要区别

Vue2.0和Vue3.0的主要区别 Vue2.0Vue3.0API类型Option(选项式)Composition(组合式)响应式系统基于Object defineProperty,有一定的局限性基于ES6 Proxy,能够更好地支持动态添加属性和删除属性声明响应式变量需在data声明使用ref,reactive声明生命周期beforeCreate、…

Java语言程序设计——篇八(1)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 Java常用核心类 主要内容Object: 终极父类toString( )方法equals( )方法getClass( )方法hashCode( )方法clone( )方法finalize( )方法实战演练 …

8. kubernetes资源——ingress

kubernetes资源——ingress 一、ingress介绍1、作用2、实现方式3、核心组件 二、部署ingress1、下载ingress_1.9.6.yaml文件2、事先导入镜像3、部署ingress 三、通过ingress发布k8s中的服务1、创建服务2、创建ingress规则发布服务3、测试访问 一、ingress介绍 1、作用 ingres…

postman请求JSON格式,后台@RequestBody实体类接收不到数据

转载自:https://blog.csdn.net/m0_66490875/article/details/134551126 我的是全大写的字段,传到后台RequestBody接收到的字段全是null 博主说的对 两种解决方式: 1.在实体类上加上 JsonProperty(value" ") 注解 2.修改实体类名&am…

【vue3】表格导出简单使用方法

安装依赖 npm install xlsx创建工具文件exportToExcel.ts import * as XLSX from xlsx;interface TableData {[key: string]: any; }type MappingFunction (row: TableData) > { [key: string]: any };export const exportToExcel (data: TableData[],fileName: string,…

Android SurfaceFlinger——缓冲区入队回调(三十四)

在 Android 的 SurfaceFlinger 中,生产者/消费者模型主要用于处理缓冲区(Buffer)的管理和交换,以支持高效的图形渲染和显示。在这个模型中,“生产”和“消费”的对象是缓冲区(Buffer),更具体地说,就是 GraphicBuffer 对象,它们包含了实际的图像数据。 一、基础介绍 生…

若依+AI项目开发(二)

后端代码分析 二次开发 开始执行 生成成功 创建子模块

docker安装jenkins,并配置jdk、node和maven

拉取jenkins镜像 docker pull jenkins/jenkins:2.468-jdk21 创建一个文件夹,用于二次打包jenkins镜像 mkdir -p /data/jenkins cd /data/jenkins 提前准备好jdk和maven,并放到/data/jenkins下 由于3.8.x以上版本的maven只支持https协议,我们…

深入理解SQL中的INNER JOIN操作

本文介绍了INNER JOIN的定义、使用场景、计算方法及与其他JOIN的比较。INNER JOIN是关系数据库中常用的操作,用于返回两个表中匹配的行,只有在连接条件满足时才返回数据。本文详细解释了INNER JOIN的语法及其在一对多、多对多关系中的应用,通…

TCP/IP 协议栈介绍

TCP/IP 协议栈介绍 1. 引言 TCP/IP(传输控制协议/互联网协议)是一组用于数据网络中通信的协议集合,它是互联网的基础。本文将详细介绍TCP/IP协议栈的各个层次、工作原理以及其在网络通信中的作用。 2. TCP/IP 协议栈的层次结构 TCP/IP协议…

Redis实战---分布式锁

1. 什么是Redis分布式锁? 分布式锁,顾名思义,就是分布式系统中使用的锁,在单体应用中我们使用synchronized、ReentrantLock来解决线程时间的共享资源的访问问题,而在分布式系统中,资源贡献问题已经由线程之…

关于ABB机器人欧拉角转四元数计算方式 C++ C# Python

ABB是一家全球领先的工业自动化和电气设备公司,具有广泛的产品和解决方案组合。它致力于为工业客户和公共设施提供创新的技术和解决方案,以提高效率、灵活性和可持续性。 在使用ABB机器人时我们时常会碰到四元数和机器人欧拉角的转换,四元数和…

【Ubuntu】安装 Snipaste 截图软件

Snipaste 下载安装并使用 Snipastefor more information报错解决方案每次启动软件需要输入的命令如下添加开机自启动 下载 下载地址 安装并使用 Snipaste 进入终端输入命令 # 1、进入到 Snipaste-2.8.9-Beta-x86_64.AppImage 所在目录(根据自己的下载目录而定&…

C语言之柔性数组

一、柔性数组概念 C99中,结构体中的最后一个元素允许是未知大小的数组,这叫做柔性数组成员。 struct S {char c;int n;int arr[];//柔性数组 }; 有些编译器会报错,可以修改为: struct S {char c;int n;int arr[0];//柔性数组 };…

Corsearch 用 ClickHouse 替换 MySQL 进行内容和品牌保护

本文字数:3357;估计阅读时间:9 分钟 作者:ClickHouse Team 本文在公众号【ClickHouseInc】首发 Chase Richards 自 2011 年在初创公司 Marketly 担任工程负责人,直到 2020 年公司被收购。他现在是品牌保护公司 Corsear…

JAVA笔记十六

十六、异常Exception 1.概念 异常:非正常情况,包括空的引用、数组下标越界、内存溢出等 Java提供了异常对象描述这类异常情况。 Java提供了异常机制来进行处理,通过异常机制来处理程序运行期间出现的错误,可以更好地提升程序的…

波特率和比特率的区别联系【理解】

波特率(Baud rate):表示单位时间内载波调制状态变化的次数 ,单位为波特(Baud); 【值得注意的是】单位“波特”本身就已经是代表每秒的调制数,不能用“波特每秒”(Baud per second)为…