【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://xiahunao.cn/news/3267614.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

kotlin示例

以下代码是我写的练习程序,更好的代码可以从这里查看:代码 生日卡片 package com.example.happybirthdayimport android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity…

使用echo写入多行文字到文件时换行的处理

目标 想使用echo写入如下内容到文件program.c里 #include<stdio.h> int main(){printf("hello!\n"); } 需要处理 1、如何处理行换 2、代码中的换行如何处理 实际例子 创建文件夹 mkdir test cd test chmod 777 . 创建文件写入内容 查看 cat -n program.c…

Flink入门(更新中)

目录 一、Flink 1.1 基本概念 1.1.1 flink简介 1.2 flink编程模版 1.3 常用概念 1.2.1 datastream 1.2.2 算子、Task 1.2.3 多流操作 1.2.6 时间语义 二、Flink编程实战(Java) 2.1 wordcount 一、Flink 1.1 基本概念 1.1.1 flink简介 1.图片介绍 性能&#xff1a…

[练习]如何使用递归算法?

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 递归概述 2.汉诺塔问题 题目描述​编辑 题解 代码实现 3…

package.json中对peerDependencies的理解

peerDependencies只要是用来限制依赖的&#xff0c;最近在开发的时候有遇到这样的问题&#xff0c;所以研究了一下 "peerDependencies": {"vue/composition-api": "^1.0.5","vue/runtime-core": "^3.0.0","echarts&q…

【Android】Activity生命周期与五种启动模式

文章目录 生命周期返回栈Activity状态生命周期方法 启动模式standard模式singleTask模式singleTop模式singleInstance模式singleInstancePerTask模式配置方式 生命周期 返回栈 每个Activity的状态由它在Activity栈&#xff08;又叫“回退栈back stack”&#xff09;中的位置决…

【ACM出版】2024年教育人工智能国际学术会议(ISAIE 2024,9月6-8)

2024年教育人工智能国际学术会议&#xff08;ISAIE 2024&#xff09;将于2024年9月6-8日在中国西安举行。本届会议由西京学院主办。 会议主要围绕人工智能在教育领域的最新研究成果展开&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提…

windows安装redis设置密码、修改端口、提供外部访问

windows安装redis设置密码、修改端口、提供外部访问 一、前言1. 设置密码2. 修改端口3. 允许外部访问4. 注意事项 一、前言 设置Redis在Windows上设置密码、修改端口以及允许外部访问&#xff0c;需要进行以下步骤&#xff1a; 下载地址 https://github.com/tporadowski/redi…

快速入门Jupyter notebook

快速入门 Jupyter notebook 一、前言&#xff08;一&#xff09;优点&#xff08;二&#xff09;特点&#xff08;三&#xff09;调用运行&#xff08;四&#xff09;新建 二、认识界面快捷键&#xff08;一&#xff09;三种模式&#xff08;1&#xff09;蓝色模式&#xff1a;…

中国森林地上和地下生物量碳变化数据集(2002-2021年)

中国森林地上和地下生物量碳变化数据集&#xff08;2002-2021年&#xff09; 数据介绍 为了量化中国近期全国性恢复工作的生态后果&#xff0c;过去20年森林生物量碳储量变化的空间显性信息至关重要。然而&#xff0c;在全国范围内进行长期生物量追踪仍然具有挑战性&#xff0c…

203、移除链表元素

1、题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a; 输…

基于迁移学习的手势分类模型训练

1、基本原理介绍 这里介绍的单指模型迁移。一般我们训练模型时&#xff0c;往往会自定义一个模型类&#xff0c;这个类中定义了神经网络的结构&#xff0c;训练时将数据集输入&#xff0c;从0开始训练&#xff1b;而迁移学习中&#xff08;单指模型迁移策略&#xff09;&#x…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

状态机 XState 使用

状态机 一般指的是有限状态机&#xff08;Finite State Machine&#xff0c;FSM&#xff09;&#xff0c;又可以称为有限状态自动机&#xff08;Finite State Automation&#xff0c;FSA&#xff09;&#xff0c;简称状态机&#xff0c;它是一个数学模型&#xff0c;表示有限个…

硬核科普:什么是网络准入控制系统|网络准入控制系统四大品牌介绍

网络准入控制系统&#xff08;Network Access Control, NAC&#xff09;是一种用于确保只有授权设备和用户才能接入网络的安全技术。 本文将介绍几种常用的网络准入控制系统&#xff0c;帮助您更好地了解如何选择适合您企业的NAC系统。 网络准入控制的重要性和作用 网络准入控…

java学习--练习题

在类中this.属赋值&#xff0c;则外部创建对象调用其值也会随之一样 package com.test01;/* author:我与java相爱相杀---c语言梦开始的地方 今天又是努力学习的一天&#xff01;&#xff01;&#xff01;&#xff01; */ /*1. 在Frock类中声明私有的静态属性currentNum[int类型…

idm软件最新破解版下载 idm永久激活码 IDM中文绿色特别版 idm下载器汉化版

在互联网时代&#xff0c;下载管理软件成为了我们日常使用电脑不可或缺的工具之一。说起下载工具&#xff0c;大家的第一反应可能是网盘、迅雷。但在PC端其实还有一个可以对标他们的软件——IDM&#xff0c;这是一个口碑炸裂的多线程下载工具。 Internet Download Manager&…

让你的设计更出色:10个最受欢迎的3D画图工具盘点

随着渲染工具的发生和客户对立体效果的要求越来越高&#xff0c;设计师应该能够及时用设计风格解释空间界面&#xff0c;全面使用3D画图工具进行展览设计。3D画图工具在建筑、工程、产品设计等行业使用不同的算法&#xff0c;为图像添加色调、质感等细节。不同类型的3D画图工具…

鸿蒙HarmonyOS【应用开发五、组件介绍】

✍️作者简介&#xff1a;小北编程&#xff08;专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a; 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&#x1f…

Java之 jvm

jvm之管理内存 程序计数器&#xff1a;当前线程所执行的字节码的行号指示器。程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域&#xff0c;它的生命周期随着线程的创建而创建&#xff0c;随着线程的结束而死亡。Java虚拟机栈 方法调用 一个方法调用都会有对应的栈帧…