python面试题【题目+答案】
最近遇到了一份python的面试题,题目比较简单,时间控制在一个小时之内。以下是面试的题目跟答案,答案不代表最优解,只是当时所想到的一些思路,接下来将分享给大家。
目录
1. 给出下面打印结果
2.字典如何删除键、如何合并两个字典
3. 下列正则表达式可以匹配 www.tencent-inc.com 的有哪些
4. 有一些文件,路径如下图
module_x.py想引用module_y.py的方法,该如何写
module_z.py想引用module_y.py的方法,该如何写
5. 请指出下列程序是否会有报错
6. 写出一段Python代码实现删除一个list里面的重复元素
7. 给定一组由小到大的数字0,1,2...,n,从中找出一个丢失的数字。
8.给定一个字符串,里边可能包含“()”、"{}"两种括号,请编写程序检查该字符串的括号是否成对出现。
9.请编写代码实现一个【单例】类MoreFun,要求该类的__init__函数只能被调用一次
10.编写代码实现方法get_time_in_range
11.给定一个整数数组nums和一个目标值target,请你再该数组中找出和为目标值的那两个证书,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组同一个元素不能使用两遍。编辑
1. 给出下面打印结果

答案:
12.0
6.0
这道题很简单,定义了两个函数,并将x作为参数分别调用两个函数并输出结果。
两个函数都判断了传入列表是否为空,funcA函数将列表中每一个元素用float()方法转化为浮点数,并返回列表中的最大值。因此,输出12.0。
funcB也是将列表中每一个元素用float转化为浮点数,返回时先将列表用sum()方法求和再除以列表的长度。因此,输出6.0
2.字典如何删除键、如何合并两个字典
答:
删除键:1、可以使用del关键字来从字典中删除指定的键
如,从dictA中删除key为“a”,可以用del dictA[‘a’]
2、可以使用pop()方法来删除指定键,这个方法可以返回该键对应的值,如果键不存在,则可以提供一个默认值作pop()方法的第二个参数。
如,result = dictA.pop(‘a’,None)
合并字典:1、可以使用update()方法来合并字典。
如,dictA.update(dictB)。此时dictA则是已经合并了dictB。
2、使用dict()构造函数
如,dictA(dictA,**dictB)
3. 下列正则表达式可以匹配 www.tencent-inc.com 的有哪些
^\w+\.\w+\-\w+\.\w+$
[w]{0,3}.[a-z\-]*.[a-z]+
[c-w.]{3,10}[.][c-w.][.][a]
[w][w][w][tencent-inc]+[com]+
^\w.*com$
[w]{3}.[a-z\-]{11}.[a-z]{3}
我们来逐条分析:
-
^\w+\.\w+\-\w+\.\w+$- 匹配形式为
word1.word2-word3.word4的字符串,其中每个word由一个或多个\w(字母、数字或下划线)组成。 - 不匹配"www.tencent-inc.com"。
- 匹配形式为
-
[w]{0,3}.[a-z\-]*.[a-z]+- 匹配任意长度的
w(小写字母"w")后跟一个任意字符、一个由小写字母和连字符("-")组成的字符串,再后跟一个由小写字母组成的字符串。 - 不匹配"www.tencent-inc.com"。
- 匹配任意长度的
-
[c-w.]{3,10}[.][c-w.][.][a]- 匹配由
c到w范围内的字符、点号(".")、再由c到w范围内的字符、点号(".")、再匹配一个字母a。 - 不匹配 "www.tencent-inc.com"。
- 匹配由
-
[w][w][w][tencent-inc]+[com]+- 匹配由3个连续的小写字母
w、一个或多个连续的"tencent-inc"、一个或多个连续的"com"组成的字符串,但是没有匹配到"."。 - 不匹配 "www.tencent-inc.com"。
- 匹配由3个连续的小写字母
-
^\w.*com$- 匹配以字母、数字或下划线开头,且以"com"结尾的字符串。
^表示字符串的开始,$表示字符串的结尾。 - 匹配"www.tencent-inc.com"。
- 匹配以字母、数字或下划线开头,且以"com"结尾的字符串。
-
[w]{3}.[a-z\-]{11}.[a-z]{3}- 匹配由3个连续的小写字母
w、一个由小写字母和连字符("-")组成的11字符字符串、再后跟由小写字母组成的3字符字符串。 - 不匹配 "www.tencent-inc.com"。
- 匹配由3个连续的小写字母
因此,能够匹配到"www.tencent-inc.com"的正则表达式是:
[w][w][w][tencent-inc]+[com]+^\w.*com$
4. 有一些文件,路径如下图

-
module_x.py想引用module_y.py的方法,该如何写
答:import moudule_y
-
module_z.py想引用module_y.py的方法,该如何写
答:相对导入:在package创建一个空的__init__.py文件,
可使用from..subpackage1 import module_y 来导入module_y的方法
绝对路径导入:from my_package.subpackage1 import y
5. 请指出下列程序是否会有报错
url='http://www.qq.com'
def func():
print(url)
url = url.split(".")[1]
print(url)
if __name__=='__main__':
func()
答:程序会报错。url是全局变量,在func()函数内部中尝试去修改全局作用域的变量会导致报错。在函数中使用global关键字声明url是全局变量可以避免报错,如:
url='http://www.qq.com'def func():global urlprint(url)url = url.split(".")[1]print(url)if __name__=='__main__':func()
6. 写出一段Python代码实现删除一个list里面的重复元素
答:可以使用python内置函数set()来实现,set()是集合,集合中不允许存在重复元素。如:
def func(list):
return list(set(list))
7. 给定一组由小到大的数字0,1,2...,n,从中找出一个丢失的数字。
例如,给定nums = [0, 0, 1, 3, 4]返回2。
答:先获取最大的数字,然后生成一个从小到大的数列,对比两者即可得到丢失数字。
def func(nums):
num_range = list(range(nums[-1])) #生成从小到大的数列
return set(num_range)-set(nums)
8.给定一个字符串,里边可能包含“()”、"{}"两种括号,请编写程序检查该字符串的括号是否成对出现。
输出:
true:代表括号成对出现并且嵌套正确,或字符串无括号字符。
false:未正确使用括号字符。
答:count可以统计字符串中的某一字符出现次数
def func(str):
if (str.count('(') != str.count(')')) or (str.count('{') != str.count('}')):
return False
else:
return True
9.请编写代码实现一个【单例】类MoreFun,要求该类的__init__函数只能被调用一次
答:
class MoreFun:_instance = None # 类变量,用于保存类的唯一实例def __new__(cls, *args, **kwargs):if cls._instance is None:cls._instance = super().__new__(cls)return cls._instancedef __init__(self):if not hasattr(self, '_initialized'):self._initialized = True# 在这里进行初始化操作,确保__init__函数只被调用一次
10.编写代码实现方法get_time_in_range
输入:字符串形式的时间起/止节点
输出:两个时间节点间的所有整数小时节点,左闭右开
>>get_time_in_range( “2018/11/12 21:01:01”, “2018/11/13 01:01:01”)
>>[“2018/11/12/21/”, “2018/11/12/22/”, “2018/11/12/23/”, “2018/11/13/00/” , “2018/11/13/01/” ]
答:
def get_time_in_range(start_time, end_time):time_format = "%Y/%m/%d %H:%M:%S"start_datetime = datetime.strptime(start_time, time_format)end_datetime = datetime.strptime(end_time, time_format)time_in_range = []current_datetime = start_datetimewhile current_datetime < end_datetime:time_in_range.append(current_datetime.strftime("%Y/%m/%d/%H/"))current_datetime += timedelta(hours=1)return time_in_range
11.给定一个整数数组nums和一个目标值target,请你再该数组中找出和为目标值的那两个证书,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组同一个元素不能使用两遍。
答 :
def func(nums , target):n = [] #定义已使用过的元素容器for i in range(len(nums)):#如果该元素使用过则跳过此次循环if nums[i] in n:continuefor j in range(len(nums)):if nums[i]+nums[j] == target:print(nums[i],nums[j])n.append(nums[i])n.append(nums[j])
#验证
nums = [2,4,6,8,10,12]
target = 12
func(nums,target)
对待面试题的时候我们可以先猜一下这道题的考点是什么,答出面试官想要的答案。
以上就是今日份的面试题,祝同学们早日找到合适的工作,事业有成~
如果此博客反响好的话我会考虑专门出个python面试专栏来解答童鞋们的疑惑哦,让我们一起进步吧!
相关文章:
python面试题【题目+答案】
最近遇到了一份python的面试题,题目比较简单,时间控制在一个小时之内。以下是面试的题目跟答案,答案不代表最优解,只是当时所想到的一些思路,接下来将分享给大家。 目录 1. 给出下面打印结果 2.字典如何删除键、如何…...
Rocky(centos) jar 注册成服务,能开机自启动
概述 涉及:1)sh 无法直接运行java命令,可以软连,此处是直接路径 2)sh脚本报一堆空格换行错误:需将转成unix标准格式; #切换到上传的脚本路径 dos2unix 脚本文件名.sh 2)SELINUX …...
科大讯飞-鸟类分类挑战赛-测试【1】
科大讯飞-鸟类分类挑战赛-测试【1】 1. 比赛说明2. EfficientNet测试2.1 **模型搭建:**2.2 **模型训练:**2.3 训练过程可视化2.4 一些报错解决:1. 比赛说明 背景: 随着生态环境的不断变化和人类对自然资源的过度开发,世界各地的鸟类数量和种类正在发生着巨大的变化。为了更…...
两行CSS让页面提升渲染性能
content-visibility是CSS新增的属性,主要用来提高页面渲染性能,它可以控制一个元素是否渲染其内容,并且允许浏览器跳过这些元素的布局与渲染。 content-visibility: hidden的效果与display: none类似其区别在于: content-visibi…...
UniApp中tabbar设置了position: fixed以及bottom:0后出现一条缝隙,看到了后面的内容
问题描述 解决方法 直接将bottom设置成-2px即可...
设计模式行为型——责任链模式
目录 什么是责任链模式 责任链模式的实现 责任链模式角色 责任链模式类图 责任链模式举例 责任链模式代码实现 责任链模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是责任链模式 责任链模式(Chain of Responsibility Pattern)又叫职…...
Xamarin.Android中Intent的使用
目录 1、说明2、使用方法2.1 常用方法2.2 调用系统应用 3、参考资料 1、说明 在Android开发中常常会用到Intent进行不同活动启动,整理资料如下 2、使用方法 2.1 常用方法 1、一般情况而言,都是使用如下的方式进行调用 Intent intent new Intent(th…...
matplotlib绘制方波圆周分解动画
1 方波的圆周分解 在学习傅里叶变换的时候,有一个经典的示例是方波的分解。我们知道,方波可以分解为无数个正弦波的叠加。而正弦波,又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情,恐怕大家也花了不少时间。 学…...
vue3+ts 实现枚举
首先 index.ts 中定义枚举 export const fruit [{key:1,name:苹果,},{key:11,name:草莓},{key:5,name:香蕉,},{key:51,name:葡萄,},{key:6,name:橙子},{key:7,name:哈密瓜},{key:10,name:西瓜}, ]; 接口返给的数据是一个对象 feeMap{ 1:200, 2&…...
【Python】5分钟了解11个最佳的Python编译器和解释器
11个最佳Python编译器和解释器 1. Brython2. Pyjs3. WinPython4. Skulpt5. Shed Skin6. Active Python7. Transcrypt8. Nutika9. Jython10. CPython11. IronPython结论原文链接 Python是一门初学者的编程语言。它是一种高级语言,非常灵活、解释性和面向对象的语言。…...
如何安装、部署、启动Jenkins
一、测试环境 Linux系统 Centos 7 二、安装步骤: 1、安装jdk 我安装的是jdk8,此处就不多说了,自己百度哈,很简单 2、安装jenkins 首先依次执行如下三个命令: 2.1、导入镜像: [rootcentos7 ~]# sudo …...
sqlalchemy flask长时间未使用 导致数据库连接失效
临时解决方案:在正式运行定时任务之前,先跑一个session.query(),相当于唤醒连接。 参考 https://blog.csdn.net/sinat_42483341/article/details/103723691...
Ubuntu 20.04 系统或图像界面卡死或完全无响应处理方法
Ubuntu 20.04 系统或图像界面卡死或完全无响应处理方法 问题背景无需重启方法安全重启方法 问题背景 Ubuntu 20.04在安装驱动程序时系统突然无响应,终端也无法运行;考虑到尽量不破坏系统,不希望强制上下电重启机器,以免损坏文件系…...
Linux编辑器 - vim使用
1.vim的基本概念 Vim是一个广泛使用的文本编辑器,它是在Unix和Linux系统中常用的命令行文本编辑器之一。 vim的主要三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是 命令模式 ( command mode )、 插入模式 ࿰…...
【Windows】磁盘快捷修复
【Windows】磁盘快捷修复 1、背景2、关于Chkdsk3、示例 1、背景 前段时间使用U盘拷贝文件过程中,突然发现U盘无法读取了,U盘里面存储的数据也无法获取。 然后使用windows系统的chkdsk命令进行修复。 chkdsk全称:checkdisk,即磁盘…...
Java 线程的多种状态
前言 在前文中详细介绍了线程的启动、中断、休眠、等待。本文详细介绍线程的多种状态。 获取线程的当前状态代码是: 线程对象.getState(); 目录 前言 一、NEW 二、RUNNABLE 三、BLOCKED 四、WAITNG 五、TIMED_WAITNG 六、TERMINATED 结语 一、NEW Thread 对…...
AI绘画| 迪士尼风格|可爱头像【附Midjourney提示词】
Midjourney案例分享 图片预览 迪士尼风格|可爱头像 高清原图及关键词Prompt已经放在文末网盘,需要的自取 在数字艺术的新时代,人工智能绘画已经迅速崭露头角。作为最先进的技术之一,AI绘画结合了艺术和科学,开启了一…...
【浪费了我两个小时时间】Microsoft store无法加载页面0x80131500
绕的圈,踩的坑 谷歌搜索, newbing搜索都叫我清理缓存,重新安装等方法。 还被这篇文章误导了一下:微软应用商店错误代码0x80072EFD怎么办?(已解决) 加上重启电脑各种试不行。 最后想到要去改代…...
【动态规划】子序列系列
文章目录 动态规划(子序列系列)1. 最长递增子序列2. 摆动序列3. 最长递增子序列的个数4. 最长数对链5. 最长定差子序列6. 最长的斐波那契子序列的长度7. 最长等差数列8. 等差数列划分 || - 子序列 动态规划(子序列系列) 1. 最长递…...
URL存储解锁数据管理的新思路,重新定义数据传输与共享(@vue/repl)
Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想。 近日,在了解 vue/repl 相关内容,其通过 URL 进行数据存储,感觉思路惊奇,打开了新方式。 首先,通过 URL 存储最大的便利是:无需服…...
避坑指南:iMX6ULL上RTL8723BU模块的WiFi延迟与蓝牙扫描问题分析与优化
iMX6ULL平台RTL8723BU模块WiFi/蓝牙深度调优实战 当iMX6ULL开发板遇上RTL8723BU这款高性价比的WiFi蓝牙二合一模块,不少开发者会发现:虽然基础功能能跑通,但实际应用中WiFi延迟飙高、蓝牙设备扫描不稳定等问题频频出现。这就像买了一辆能启动…...
当流程图XML“损坏”时:手把手教你用Activiti API解析与修复BPMN文件
当BPMN文件遭遇“数据灾难”:Activiti深度修复实战指南 凌晨三点,服务器警报突然响起——核心业务流程引擎拒绝加载最新上传的BPMN文件。这不是简单的格式错误,而是一个从老旧系统迁移来的、经过多次手工编辑的流程定义文件。作为技术负责人&…...
【限时解密】Perplexity未公开的历史资料检索协议v2.3:仅开放给前500名深度用户的私有搜索语法手册
更多请点击: https://codechina.net 第一章:Perplexity历史资料搜索的起源与协议演进脉络 Perplexity 作为面向知识密集型任务的下一代搜索代理,并非起源于传统搜索引擎架构,而是植根于大语言模型(LLM)推理…...
告别黑框!树莓派4B远程桌面完整指南:从VNC配置到RealVNC/XRDP方案选择与优化
树莓派4B远程桌面终极方案:告别黑框与卡顿的实战指南 对于许多树莓派开发者而言,那个令人沮丧的黑色方框已经成为远程连接体验的代名词。当你满怀期待地输入IP地址,等待的却是一个无法操作的空白界面,这种挫败感足以让任何人抓狂。…...
不止于测试:用GStreamer打造你的树莓派低成本视频监控/图传系统
树莓派视频监控实战:用GStreamer构建低成本图传系统 树莓派搭配普通USB摄像头能做什么?大多数人可能只想到简单的视频采集测试。但如果你掌握GStreamer这个多媒体框架的进阶用法,就能将它变成一套功能完整的视频监控或无线图传系统。本文将彻…...
【条件对抗生成网络】从理论到实践:CGAN如何实现可控图像生成
1. 条件对抗生成网络(CGAN)是什么? 想象一下,你正在教一个小朋友画画。普通GAN(生成对抗网络)就像让小朋友随意涂鸦,画出来的内容完全随机;而CGAN则像是你给小朋友一个明确的主题&am…...
别再死记命令了!用ENSP模拟企业网,手把手教你配置VRRP+MSTP实现网关和链路双备份
企业网络高可用实战:用ENSP构建VRRPMSTP双冗余架构 刚接触企业网络设计的工程师常陷入一个误区:把网络设备配置等同于命令记忆。我曾见过一位学员能完整背诵VRRP的配置指令,却在真实网络故障时手足无措——因为他从未理解这些命令背后的网络逻…...
为什么你的DeepSeek在GCP延迟飙高2000ms?揭秘GPU实例选型、CUDA版本与A100/A100-80GB混部的底层冲突
更多请点击: https://codechina.net 第一章:DeepSeek GCP部署指南 在Google Cloud Platform上部署DeepSeek系列大语言模型(如DeepSeek-V2、DeepSeek-Coder)需兼顾计算性能、存储效率与网络低延迟。本指南基于GCP最新稳定API&…...
Camunda并行会签实战:从BPMN设计到数据库状态变化的完整追踪
Camunda并行会签实战:从BPMN设计到数据库状态变化的完整追踪 在复杂业务流程自动化领域,并行会签是一种常见但实现难度较高的模式。当三个部门主管需要同时审批一份采购申请时,传统串行审批会导致效率低下,而并行处理又面临状态同…...
高性能自动化网页信息提取工具实战指南:大规模目标扫描与安全检测技术方案
高性能自动化网页信息提取工具实战指南:大规模目标扫描与安全检测技术方案 【免费下载链接】URLFinder 一款快速、全面、易用的页面信息提取工具,可快速发现和提取页面中的JS、URL和敏感信息。 项目地址: https://gitcode.com/gh_mirrors/ur/URLFinder…...
