当前位置: 首页 > 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;无需服…...

matlab程序中文乱码

不同版本的matlab共存在GBK&#xff08;即&#xff0c;ANSI&#xff09;和UTF-8两种编码方式&#xff0c;因此可能会出现乱码问题。 第一步&#xff1a;在matlab的命令行窗口输入指令&#xff0c;查看当前编码方式 feature(locale) 第二步&#xff1a;用Notepad打开文件&…...

【计算机视觉|语音分离】期望在嘈杂环境中聆听:一个用于语音分离的不依赖于讲话者的“音频-视觉模型”

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for Speech Separation 链接&#xff1a;Looking to listen at the cocktail party: a speaker-in…...

curl 介绍和使用

文章目录 一、介绍1.1 curl 介绍1.2 curl 参数介绍1.3 类似Curl的工具和库 二、使用2.1 curl 下载2.2 curl 示例用法2.3 curl命令使用digest方式验证用户 一、介绍 1.1 curl 介绍 官网&#xff1a;https://curl.se/GitHub源码&#xff1a;https://github.com/curl/curl Curl…...

5、VMWARE安装、MobaXterm SSH连接 、Ubuntu xrdp安装使用

以下是在VMware中安装Ubuntu 22.04的详细步骤&#xff1a; 下载Ubuntu 22.04镜像文件&#xff1a; 前往Ubuntu官方网站或其他可信来源&#xff0c;下载Ubuntu 22.04的镜像文件&#xff08;.iso格式&#xff09;。 创建虚拟机&#xff1a; 打开VMware Workstation软件&#xf…...

Docker dockerfile 案例:centos 支持 vim

创建一个 centos 容器&#xff0c;容器内默认是不支持使用 vim 指令的&#xff0c;只能使用 vi 指令。&#xff08;附&#xff1a;Dockerfile 语法与指令&#xff09; 但想在创建 centos 容器后就支持 vim 指令&#xff0c;需要自定义 centos&#xff0c;编写 dockerfile&…...

Git忽略已经提交过一次的文件 Git忽略文件

1、从未提交过的文件可以用.gitignore 也就是添加之后从来没有提交&#xff08;commit&#xff09;过的文件&#xff0c;可以使用.gitignore忽略该文件 该文件只能作用于未跟踪的文件&#xff08;Untracked Files&#xff09;&#xff0c;也就是那些从来没有被 git 记录过…...

Scala项目找不到或无法加载主类

目录 1&#xff0c;出错背景2&#xff0c;分析与解决 1&#xff0c;出错背景 Scala项目无法创建scale和Java文件。项目没有报错&#xff0c;但执行时项目总是找不到项目下的类&#xff0c;报错信息如下所示&#xff1a; 错误: 找不到或无法加载主类 com.my.memTestCheck但该类…...

八大排序算法--选择排序(动图理解)

选择排序 算法思路 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完 。 选择排序的步骤&#xff1a; 1>首先在未排序序列中找到最小&#xff08;大&#xff09;元素…...

6.s081(Fall 2022)Lab2: system calls

文章目录 前言其他篇章参考链接0. 前置准备1. System call tracing (moderate) 前言 好像没啥前言 其他篇章 环境搭建 Lab1:Utilities 参考链接 官网链接 xv6手册链接&#xff0c;这个挺重要的&#xff0c;建议做lab之前最好读一读。 xv6手册中文版&#xff0c;这是几位先…...

SAMBA 文件分享相关 笔记

目标说明 在Linux 安装Samba&#xff0c;然后在Windows端映射为网络硬盘 流程 Linux 端命令 apt install samba -y 默认情况下软件会询问是否迁移系统网络设置以搭建协议&#xff0c;选择迁移即可修改配置文件 vim /etc/samba/smb.conf Samba 的配置文件中会带一个名为 prin…...