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

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}

我们来逐条分析:

  1. ^\w+\.\w+\-\w+\.\w+$

    • 匹配形式为word1.word2-word3.word4的字符串,其中每个word由一个或多个\w(字母、数字或下划线)组成。
    • 不匹配"www.tencent-inc.com"。
  2. [w]{0,3}.[a-z\-]*.[a-z]+

    • 匹配任意长度的w(小写字母"w")后跟一个任意字符、一个由小写字母和连字符("-")组成的字符串,再后跟一个由小写字母组成的字符串。
    • 不匹配"www.tencent-inc.com"。
  3. [c-w.]{3,10}[.][c-w.][.][a]

    • 匹配由cw范围内的字符、点号(".")、再由cw范围内的字符、点号(".")、再匹配一个字母a
    • 不匹配 "www.tencent-inc.com"。
  4. [w][w][w][tencent-inc]+[com]+

    • 匹配由3个连续的小写字母w、一个或多个连续的"tencent-inc"、一个或多个连续的"com"组成的字符串,但是没有匹配到"."。
    • 不匹配 "www.tencent-inc.com"。
  5. ^\w.*com$

    • 匹配以字母、数字或下划线开头,且以"com"结尾的字符串。^表示字符串的开始,$表示字符串的结尾。
    • 匹配"www.tencent-inc.com"。
  6. [w]{3}.[a-z\-]{11}.[a-z]{3}

    • 匹配由3个连续的小写字母w、一个由小写字母和连字符("-")组成的11字符字符串、再后跟由小写字母组成的3字符字符串。
    • 不匹配 "www.tencent-inc.com"。

因此,能够匹配到"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的面试题&#xff0c;题目比较简单&#xff0c;时间控制在一个小时之内。以下是面试的题目跟答案&#xff0c;答案不代表最优解&#xff0c;只是当时所想到的一些思路&#xff0c;接下来将分享给大家。 目录 1. 给出下面打印结果 2.字典如何删除键、如何…...

Rocky(centos) jar 注册成服务,能开机自启动

概述 涉及&#xff1a;1&#xff09;sh 无法直接运行java命令&#xff0c;可以软连&#xff0c;此处是直接路径 2&#xff09;sh脚本报一堆空格换行错误&#xff1a;需将转成unix标准格式&#xff1b; #切换到上传的脚本路径 dos2unix 脚本文件名.sh 2&#xff09;SELINUX …...

科大讯飞-鸟类分类挑战赛-测试【1】

科大讯飞-鸟类分类挑战赛-测试【1】 1. 比赛说明2. EfficientNet测试2.1 **模型搭建:**2.2 **模型训练:**2.3 训练过程可视化2.4 一些报错解决:1. 比赛说明 背景: 随着生态环境的不断变化和人类对自然资源的过度开发,世界各地的鸟类数量和种类正在发生着巨大的变化。为了更…...

两行CSS让页面提升渲染性能

content-visibility是CSS新增的属性&#xff0c;主要用来提高页面渲染性能&#xff0c;它可以控制一个元素是否渲染其内容&#xff0c;并且允许浏览器跳过这些元素的布局与渲染。 content-visibility: hidden的效果与display: none类似其区别在于&#xff1a; content-visibi…...

UniApp中tabbar设置了position: fixed以及bottom:0后出现一条缝隙,看到了后面的内容

问题描述 解决方法 直接将bottom设置成-2px即可...

设计模式行为型——责任链模式

目录 什么是责任链模式 责任链模式的实现 责任链模式角色 责任链模式类图 责任链模式举例 责任链模式代码实现 责任链模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是责任链模式 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;又叫职…...

Xamarin.Android中Intent的使用

目录 1、说明2、使用方法2.1 常用方法2.2 调用系统应用 3、参考资料 1、说明 在Android开发中常常会用到Intent进行不同活动启动&#xff0c;整理资料如下 2、使用方法 2.1 常用方法 1、一般情况而言&#xff0c;都是使用如下的方式进行调用 Intent intent new Intent(th…...

matplotlib绘制方波圆周分解动画

1 方波的圆周分解 在学习傅里叶变换的时候&#xff0c;有一个经典的示例是方波的分解。我们知道&#xff0c;方波可以分解为无数个正弦波的叠加。而正弦波&#xff0c;又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情&#xff0c;恐怕大家也花了不少时间。 学…...

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&#xff1a;200&#xff0c; 2&…...

【Python】5分钟了解11个最佳的Python编译器和解释器

11个最佳Python编译器和解释器 1. Brython2. Pyjs3. WinPython4. Skulpt5. Shed Skin6. Active Python7. Transcrypt8. Nutika9. Jython10. CPython11. IronPython结论原文链接 Python是一门初学者的编程语言。它是一种高级语言&#xff0c;非常灵活、解释性和面向对象的语言。…...

如何安装、部署、启动Jenkins

一、测试环境 Linux系统 Centos 7 二、安装步骤&#xff1a; 1、安装jdk 我安装的是jdk8&#xff0c;此处就不多说了&#xff0c;自己百度哈&#xff0c;很简单 2、安装jenkins 首先依次执行如下三个命令&#xff1a; 2.1、导入镜像&#xff1a; [rootcentos7 ~]# sudo …...

sqlalchemy flask长时间未使用 导致数据库连接失效

临时解决方案&#xff1a;在正式运行定时任务之前&#xff0c;先跑一个session.query()&#xff0c;相当于唤醒连接。 参考 https://blog.csdn.net/sinat_42483341/article/details/103723691...

Ubuntu 20.04 系统或图像界面卡死或完全无响应处理方法

Ubuntu 20.04 系统或图像界面卡死或完全无响应处理方法 问题背景无需重启方法安全重启方法 问题背景 Ubuntu 20.04在安装驱动程序时系统突然无响应&#xff0c;终端也无法运行&#xff1b;考虑到尽量不破坏系统&#xff0c;不希望强制上下电重启机器&#xff0c;以免损坏文件系…...

Linux编辑器 - vim使用

1.vim的基本概念 Vim是一个广泛使用的文本编辑器&#xff0c;它是在Unix和Linux系统中常用的命令行文本编辑器之一。 vim的主要三种模式 ( 其实有好多模式&#xff0c;目前掌握这 3 种即可 ), 分别是 命令模式 &#xff08; command mode &#xff09;、 插入模式 &#xff0…...

【Windows】磁盘快捷修复

【Windows】磁盘快捷修复 1、背景2、关于Chkdsk3、示例 1、背景 前段时间使用U盘拷贝文件过程中&#xff0c;突然发现U盘无法读取了&#xff0c;U盘里面存储的数据也无法获取。 然后使用windows系统的chkdsk命令进行修复。 chkdsk全称&#xff1a;checkdisk&#xff0c;即磁盘…...

Java 线程的多种状态

前言 在前文中详细介绍了线程的启动、中断、休眠、等待。本文详细介绍线程的多种状态。 获取线程的当前状态代码是&#xff1a; 线程对象.getState(); 目录 前言 一、NEW 二、RUNNABLE 三、BLOCKED 四、WAITNG 五、TIMED_WAITNG 六、TERMINATED 结语 一、NEW Thread 对…...

AI绘画| 迪士尼风格|可爱头像【附Midjourney提示词】

Midjourney案例分享 图片预览 迪士尼风格&#xff5c;可爱头像 高清原图及关键词Prompt已经放在文末网盘&#xff0c;需要的自取 在数字艺术的新时代&#xff0c;人工智能绘画已经迅速崭露头角。作为最先进的技术之一&#xff0c;AI绘画结合了艺术和科学&#xff0c;开启了一…...

【浪费了我两个小时时间】Microsoft store无法加载页面0x80131500

绕的圈&#xff0c;踩的坑 谷歌搜索&#xff0c; newbing搜索都叫我清理缓存&#xff0c;重新安装等方法。 还被这篇文章误导了一下&#xff1a;微软应用商店错误代码0x80072EFD怎么办&#xff1f;&#xff08;已解决&#xff09; 加上重启电脑各种试不行。 最后想到要去改代…...

【动态规划】子序列系列

文章目录 动态规划&#xff08;子序列系列&#xff09;1. 最长递增子序列2. 摆动序列3. 最长递增子序列的个数4. 最长数对链5. 最长定差子序列6. 最长的斐波那契子序列的长度7. 最长等差数列8. 等差数列划分 || - 子序列 动态规划&#xff08;子序列系列&#xff09; 1. 最长递…...

URL存储解锁数据管理的新思路,重新定义数据传输与共享(@vue/repl)

Thinking系列&#xff0c;旨在利用10分钟的时间传达一种可落地的编程思想。 近日&#xff0c;在了解 vue/repl 相关内容&#xff0c;其通过 URL 进行数据存储&#xff0c;感觉思路惊奇&#xff0c;打开了新方式。 首先&#xff0c;通过 URL 存储最大的便利是&#xff1a;无需服…...

测试右移的复仇:上线后bug如何让公司赔光融资

当质量防线在“最后一公里”失守在软件交付的终点线前&#xff0c;测试团队常被一种“虚假的安全感”所笼罩。测试环境用例全绿&#xff0c;性能压测数据达标&#xff0c;验收报告签字盖章&#xff0c;一切似乎都指向一个平稳的上线。然而&#xff0c;当代码被部署到生产环境&a…...

惠普tank 2606,开机报错 ER-08 ,加了碳粉还是报错ER08,黄灯闪烁成像鼓接近寿命期限,别被维修店坑了,这个软件专门维修这个错误,软件运行一下2分钟搞好。

下载地址&#xff1a;链接:https://pan.baidu.com/s/1J7PN4m4fbIzku9DqBFg_nw?pwd0000 提取码:0000 备用下载&#xff1a;下载 惠普tank 2606系列&#xff0c;tank1005系列&#xff0c;打印机提示错误代码 er-08 &#xff0c;加了粉还是报错er08,提示没粉&#xff0c;闪黄灯…...

项目7-5 单表数据记录查询—— 任务7.6.6 查询结果不重复、7.6.7 范围查询、7.6.8 字符匹配查询(二)

项目7-4 单表数据记录查询—— 任务7.6.6 查询结果不重复、7.6.7 范围查询、7.6.8 字符匹配查询(二) 一、教学目标【2分钟】 **二、课程导入【4分钟】** **三、核心内容讲解** **【第一部分:概念讲解】用大白话理解三个关键字** **【第二部分:实操演示】** **四、课堂小结与…...

数据仓库进阶:缓慢变化维度(SCD)完全解析

数据仓库进阶&#xff1a;缓慢变化维度&#xff08;SCD&#xff09;完全解析1. 缓慢变化维度概述1.1 什么是SCD&#xff1f;1.2 为什么需要SCD&#xff1f;2. SCD处理流程图3. 常见SCD类型详解3.1 Type 0&#xff1a;保持不变&#xff08;Retain Original&#xff09;3.2 Type …...

【光学】基于matlab偏振光线追迹【含Matlab源码 15265期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…...

实测Claude 4.5 Opus重构“屎山”代码:手把手教你用AI给遗留项目做外科手术(附前后对比与单元测试生成)

实测Claude 4.5 Opus重构“屎山”代码&#xff1a;手把手教你用AI给遗留项目做外科手术&#xff08;附前后对比与单元测试生成&#xff09; 接手一个满是"祖传代码"的老旧项目&#xff0c;就像被丢进一座迷宫——变量命名像密码&#xff0c;函数逻辑像意大利面&…...

3步掌握PinWin效率工具:让窗口置顶操作效率提升10倍

3步掌握PinWin效率工具&#xff1a;让窗口置顶操作效率提升10倍 【免费下载链接】PinWin Pin any window to be always on top of the screen 项目地址: https://gitcode.com/gh_mirrors/pin/PinWin 你是否曾在视频会议时手忙脚乱地寻找被覆盖的会议窗口&#xff1f;在多…...

三自由度机械手-工业机器人(说明书+CAD图纸)

三自由度机械手作为工业机器人领域的典型代表&#xff0c;其核心作用在于通过三个独立运动轴的协同控制&#xff0c;实现末端执行器在三维空间内的精准定位与灵活操作。这种结构通过旋转、俯仰与伸缩三个方向的复合运动&#xff0c;能够覆盖工作空间内的任意目标点&#xff0c;…...

Java调用动态库总崩溃?从SIGSEGV日志反向定位到C端ABI兼容性缺陷——一线故障复盘(含GDB+Java Core联合调试全流程)

第一章&#xff1a;Java调用动态库总崩溃&#xff1f;从SIGSEGV日志反向定位到C端ABI兼容性缺陷——一线故障复盘&#xff08;含GDBJava Core联合调试全流程&#xff09;某金融风控系统在JDK 17 Alpine Linux&#xff08;musl libc&#xff09;环境下频繁触发 JVM Crash&#…...

实战指南:利用快马ai为django项目生成开箱即用的vscode python开发环境

作为一个长期使用Python开发Django项目的程序员&#xff0c;我深知配置开发环境是个既基础又容易踩坑的环节。最近尝试用InsCode(快马)平台生成配置方案&#xff0c;发现能省去大量重复劳动。下面分享我的实战经验&#xff1a; 项目结构规范化 平台生成的Django项目骨架严格遵循…...