当前位置: 首页 > news >正文

【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/文件’]

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

第五题

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

相关文章:

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

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题(str) 请编写一个Python程序,完成以下任务: 去除字符串开头和结尾的空格。使用逗号(","&#…...

C# Nmodbus,EasyModbusTCP读写操作

Nmodbus读写 两个Button控件分别为 读取和写入 分别使用控件的点击方法 ①引用第三方《NModbus4》2.1.0版本 全局 public SerialPort port new SerialPort("COM2", 9600, Parity.None, 8, (StopBits)1); ModbusSerialMaster master; public Form1() port.Open();…...

spark常用参数调优

目录 1.set spark.grouping.sets.reference.hivetrue;2.set spark.locality.wait.rack0s3.set spark.locality.wait0s;4.set spark.executor.memoryOverhead 2G;5.set spark.sql.shuffle.partitions 1000;6.set spark.shuffle.file.buffer 256k7. set spark.reducer.maxSizeInF…...

C#/WinFrom TCP通信+ 网线插拔检测+客服端异常掉线检测

Winfor Tcp通信(服务端) 今天给大家讲一下C# 关于Tcp 通信部分,这一块的教程网上一大堆,不过关于掉网,异常断开连接的这部分到是到是没有多少说明,有方法 不过基本上最多的两种方式(1.设置一个超时时间,2.…...

一篇文章掌握Python爬虫的80%

转载:一篇文章掌握Python爬虫的80% Python爬虫 Python 爬虫技术在数据采集和信息获取中有着广泛的应用。本文将带你掌握Python爬虫的核心知识,帮助你迅速成为一名爬虫高手。以下内容将涵盖爬虫的基本概念、常用库、核心技术和实战案例。 一、Python 爬虫…...

【用户会话信息在异步事件/线程池的传递】

用户会话信息在异步事件/线程池的传递 author:shengfq date:2024-07-29 version:1.0 背景: 同事写的一个代码功能,是在一个主线程中通过如下代码进行异步任务的执行,结果遇到了问题. 1.ThreadPool.execute(Runnable)启动一个子线程执行异步任务 2.applicationContext.publis…...

Java8: BigDecimal

Java8:BigDecimal 转两位小数的百分数-CSDN博客 BigDecimal 先做除法 然后取绝对值 在Java 8中,如果你想要对一个BigDecimal值进行除法操作,并随后取其绝对值,你可以通过组合divide方法和abs方法来实现这一目的。不过,需要注意的…...

苹果推送iOS 18.1带来Apple Intelligence预览

🦉 AI新闻 🚀 苹果推送iOS 18.1带来Apple Intelligence预览 摘要:苹果向iPhone和iPad用户推送iOS 18.1和iPadOS 18.1开发者预览版Beta更新,带来“Apple Intelligence”预览。目前仅支持M1芯片或更高版本的设备。Apple Intellige…...

testRigor-基于人工智能驱动的无代码自动化测试平台

1、testRigor介绍 简单来说,testRigor是一款基于人工智能驱动的无代码自动化测试平台,它能够通过分析应用的行为模式,智能地生成测试用例,并自动执行这些测试,无需人工编写测试脚本。可以用于Web、移动、API和本机桌面…...

hadoop学习(一)

一.hadoop概述 1.1hadoop优势 1)高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可方便扩展数以千计…...

Linux性能监控:sar的可视化方案

在当今的IT环境中,系统性能监控是确保应用程序稳定运行和快速响应问题的关键。Linux作为一种广泛使用的操作系统,拥有多种性能监控工具,其中sar(System Activity Reporter)因其全面性和灵活性被广泛采用。然而&#xf…...

如何录制电脑屏幕视频,5招让您成为电脑录制高手

在今天,屏幕录制成为每个电脑使用者都应掌握的基础技能。不论是教学分享、会议记录还是游戏直播,屏幕录制都能帮你捕捉那些重要的瞬间,将无形的信息转化为有形的视频。那么,如何录制电脑屏幕视频呢?今天,我…...

AI届的新宠:小语言模型(SLM)?

大语言模型(LLM)在过去几年产生了巨大影响,特别是随着OpenAI的ChatGPT的出现,各种大语言模型如雨后春笋般出现,国内如KimiChat、通义千问、文心一言和智谱清言等。 然而,大语言模型通常拥有庞大的参数&…...

PMP模拟题错题本

模拟题A 错题整理 项目经理为一个具有按时完成盈利项目历史记录的组织工作。然而,由于缺乏相关方的支持以及他们未能提供信息,这些项目都经历过问题。若要避免这些问题,项目经理在新项目开始时应该做什么? A. 在启动阶段识别关键…...

Laravel Dusk:点亮自动化测试的明灯

Laravel Dusk:点亮自动化测试的明灯 在Web开发中,确保应用程序的用户体验和功能正确性至关重要。Laravel Dusk是一个强大的浏览器自动化测试工具,它允许开发者模拟用户与应用程序的交互,从而进行端到端的测试。本文将深入探讨Lar…...

Git、Gitlab以及分支管理

分布式版本控制系统 一、Git概述 Git是一种分布式版本控制系统,用于跟踪和管理代码的变更。它由Linus torvalds创建的,最初被设计用于Linux内核的开发。Git 允许开发人员跟踪和管理代码的版本,并且可以在不同的开发人员之间进行协作。 Githu…...

TCP/IP 协议栈介绍

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

香橙派orangepi系统没有apt,也没有apt-get,也没有yum命令,找不到apt、apt-get、yum的Linux系统

以下是一个关于如何在 Orange Pi 上的 Arch Linux 系统中发现缺失包管理器的问题并解决的详细教程。 发现问题 确认系统类型: 使用以下命令检查当前的 Linux 发行版: uname -a cat /etc/os-release如果你看到类似于 “Arch Linux” 的信息,说…...

在invidia jetpack4.5.1上运行c++版yolov8(tensorRT)

心路历程(可略过) 为了能在arm64上跑通yolov8,我试过很多很多代码,太多对库版本的要求太高了; 比如说有一个是需要依赖onnx库的,(https://github.com/UNeedCryDear/yolov8-opencv-onnxruntime-…...

Vue3 接入 i18n 实现国际化多语言

在 Vue.js 3 中实现网页的国际化多语言&#xff0c;最常用的包是 vue-i18n。 第一步&#xff0c;安装一个 Vite 下使用 <i18n> 标签的插件&#xff1a;unplugin-vue-i18n npm install unplugin-vue-i18n # 或 yarn add unplugin-vue-i18n 安装完成后&#xff0c;调整 v…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...