返回顶部
首页 > 资讯 > 后端开发 > Python >2019年,Python工程师必考的6个
  • 721
分享到

2019年,Python工程师必考的6个

工程师Python 2023-01-31 00:01:04 721人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

第1题:python里面如何实现tuple和list的转换? 函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变 list转为tuple: temp_list = [1,2,3,

第1题:python里面如何实现tuple和list的转换?

函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变

list转为tuple:

temp_list = [1,2,3,4,5]

将temp_list进行强制转换:tuple(temp_list)
确定是否转换成功:print(type(temp_list))

函数list(seq)可以把所有的序列和可迭代的对象转换成一个list,元素不变,排序也不变

tuple 转为list:

temp_tuple = (1,2,3,4,5)

方法类似,也是进行强制转换即可:list(temp_tuple)
确定是否转换成功:print(type(temp_tuple))

第2题:Python里面search()和match()的区别?

它们两个都在re模块

  • match()函数是在string的开始位置匹配,如果不匹配,则返回None;
  • search()会扫描整个string查找匹配;

match()

>>> import re
>>> print(re.match('hello','helloworld').span())  # 开头匹配到
(0, 5)
>>> print(re.match('hello','nicehelloworld').span()) # 开头没有匹配到
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    print(re.match('hello','nicehelloworld').span())
AttributeError: 'NoneType' object has no attribute 'span'
>>> 
>>> print(re.search('a','abc'))
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> print(re.search('a','bac').span())
(1, 2)
>>> 

结论:match() 使用限制更多

第3题: 如何用Python删除一个文件?

os模块的使用

os.remove(path)

删除文件 path,删除时候如果path是一个目录, 抛出 OSError错误。如果要删除目录,请使用rmdir()。

remove() 同 unlink() 的功能是一样的

 os.remove('a.txt')

os.removedirs(path)

递归地删除目录。类似于rmdir(), 如果子目录被成功删除, removedirs() 将会删除父目录;但子目录没有成功删除,将抛出错误。

例如, os.removedirs(“a/b/c”) 将首先删除c目录,然后再删除ba, 如果他们是空的话,则子目录不能成功删除,将抛出 OSError异常

os.rmdir(path)
删除目录 path,要求path必须是个空目录,否则抛出OSError错误

第4题: is 和 == 的区别?

hon中对象包含的三个基本要素,分别是:id(身份标识)type(数据类型)value(值)

id 身份标识,就是在内存中的地址

完整的举例

>>> a = 'hello'
>>> b = 'hello'
>>> print(a is b)
True
>>> print(a==b)
True
>>> a = 'hello world'
>>> b = 'hello world'
>>> print(a is b)
False
>>> print(a == b)
True
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> print(a is b)
False
>>> print(a == b)
True
>>> a = [1,2,3]
>>> b = a
>>> print(a is b)
True
>>> print(a == b)
True
>>> 
  • ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等
  • is也被叫做同一性运算符(对象标示符),这个运算符比较判断的是对象间的唯一身份标识,也就是id(内存中的地址)是否相同

我们在检查 a is b 的时候,其实相当于检查 id(a) == id(b)。而检查a == b 的时候,实际是调用了对象 a 的 __eq()__ 方法,a == b 相当于 a.__eq__(b)

这里还有一个问题,为什么 a 和 b 都是 "hello" 的时候,a is b 返回True,而 a 和 b都是 "hello world" 的时候,a is b 返回False呢?

这是因为前一种情况下Python的字符串驻留机制起了作用。对于较小的字符串,为了提高系统性能Python会保留其值的一个副本,当创建新的字符串的时候直接指向该副本即可。

所以 "hello" 在内存中只有一个副本,a 和 b 的 id 值相同,而 "hello world" 是长字符串,不驻留内存,Python中各自创建了对象来表示 a 和 b,所以他们的值相同但 id 值不同。

试一下当a=247,b=247时它们的id还是否会相等。事实上Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。而Python 对小整数的定义是 [-5, 257),只有数字在-5到256之间它们的id才会相等,超过了这个范围就不行了。

>>> a = 247
>>> b = 247
>>> print(a is b)
True
>>> a = 258
>>> b = 258
>>> print(a is b)
False
>>> 

is 是检查两个对象是否指向同一块内存空间,而 ==是检查他们的值是否相等。is比==更加严格

第5题:a=1, b=2, 不用中间变量交换a和b的值?

方法一

>>> a = 5
>>> b = 6
>>> a = a+b
>>> b = a-b
>>> a = a-b

方法二

>>> a = a^b
>>> b = b^a
>>> a = a^b

方法三

a,b = b,a 

第6题:说说你对zen of python的理解,你有什么办法看到它?

Python之禅
import this

python彩蛋

知道就知道了,不知道你现在已经知道了,搜索一下去吧

微信搜索:非本科程序员,关注吧

--结束END--

本文标题: 2019年,Python工程师必考的6个

本文链接: https://lsjlt.com/news/182193.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 2019年,Python工程师必考的6个
    第1题:Python里面如何实现tuple和list的转换? 函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变 list转为tuple: temp_list = [1,2,3,...
    99+
    2023-01-31
    工程师 Python
  • 从苦逼到牛逼!2019年最全最新Linux运维工程师必备技能图谱……
    运维工程师在前期是一个很苦逼的工作,在这期间可能干着修电脑、掐网线、搬机器的活,显得没地位!时间也很碎片化,各种零碎的琐事围绕着你,很难体现个人价值,渐渐的对行业很迷茫,觉得没什么发展前途。这些枯燥无味工作的确会使人匮乏,从技术层面讲这些其...
    99+
    2023-06-05
  • Python研发工程师必备工具合集
    Python研发工程师必备工具合集 1、必备工具 2、常用网站 3、学习路线 4、必备技能 5、书籍推荐 6、进阶学习 一、必备工具: 1.Sublime Text 2.Notepad++ 3.Visual Studio Code 4.At...
    99+
    2023-01-31
    合集 工程师 工具
  • 年薪百万Python工程师讲述:Pyth
    读这篇文章大约需要5分钟。需要学习Python的可以加我QQ群 如何启动Python语言?我记得几年前遇到过这个问题。后来,我才注意到网络有点饿了,开始找一些书来咀嚼它。它觉得很困惑,觉得很辛苦,有许多波折。如果它们能降低初学者的兴趣,...
    99+
    2023-01-31
    年薪 工程师 Python
  • Python工程师面试必备25条Pyth
    1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。 Pyth...
    99+
    2023-01-31
    工程师 Python Pyth
  • python爬虫工程师必备的10个爬虫工具分别是什么
    python爬虫工程师必备的10个爬虫工具分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。爬虫工程师必备的10个爬虫工具爬虫工程师必备的10个爬虫工具!...
    99+
    2023-06-02
  • 一名 IT 工程师的九年工作总结!
    与程序打交道的人生,是简单的人生一次做规划局的项目,规划局的职员很是钦佩地说:“你们真了不起,在电脑上敲敲键盘就能做出软件来。”规划局领导说:“跟电脑打交道是最简单的,难的是跟人打交道。”领导的话很有深意,一语道破了本质,做程序的人,是比较...
    99+
    2023-06-02
  • 30 个数据工程必备的Python 包
    Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言,在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 P...
    99+
    2023-05-14
    数据 Python 编程语言
  • 前端工程师必备的优质工具有哪些
    本篇内容介绍了“前端工程师必备的优质工具有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 远程开发...
    99+
    2024-04-02
  • MySQL常见6个考题在实际工作中的运用
    题目一 MyISAM和InnoDB的区别,什么时候选择MyISAM 参考回答 InnoDB是目前MySQL主流版本(5.6、5.7、8.0)默认的存储引擎,支持事务、外键、行级锁,对于并发条件下要求数据的一致性,适用于对数据准确...
    99+
    2020-09-05
    MySQL常见6个考题在实际工作中的运用
  • 索引工程师必备:掌握 Python 和 Apache 的面试技巧。
    索引工程师必备:掌握 Python 和 Apache 的面试技巧 随着信息技术的不断发展,数据量和数据种类也越来越多。为了方便用户快速地检索到所需的数据,建立索引就成为了一项重要的任务。而索引工程师就是负责设计、开发和维护索引的人员。在面试...
    99+
    2023-08-10
    apache 索引 面试
  • 成为顶尖前端工程师的必修课!
    成为顶尖前端工程师的必修课! 随着互联网的快速发展和普及,前端开发这一行业也变得越来越热门。作为连接用户和产品的纽带,前端工程师在技术领域中扮演着至关重要的角色,他们不仅需要具备扎实的...
    99+
    2024-04-02
  • Java工程师必须掌握的三种工具:Git、NPM、NumPy
    Java是一门广泛使用的编程语言,它的应用范围非常广泛。作为一名Java工程师,你需要掌握各种工具来提高你的效率和生产力。在本篇文章中,我们将介绍三种Java工程师必须掌握的工具:Git、NPM和NumPy。 一、Git Git是一种源代...
    99+
    2023-10-28
    git npm numy
  • python工程师指的是什么
    这篇文章将为大家详细讲解有关python工程师指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语...
    99+
    2023-06-14
  • 优秀的DevOps工程师必须具备的软技能
    年末将至,大批攻城狮与程序猿早已蠢蠢欲动,开始了跳槽涨薪之旅,虽然受社会大形势影响,IT行业虽然无法和前几年的突飞猛进的势头相比,但是对DevOps的热度却只增不减,工程效能团队的普及率正在迅速增长,对DevOps工程师需求量也是呈指数式增...
    99+
    2023-06-04
  • 一个JavaWeb工程师的进阶之路
    大学毕业之后,凭着一点JAVA知识和J2EE知识,顺利的找到了一份不错的工作,从那时起,我就开始了我的JavaWeb工程师之路。今天回顾总结一下这几年我学过的编程知识。一、开发语言Java:从学习Java开...
    99+
    2024-04-02
  • 在未来,软件测试工程师必须熟通这八个技能!
    软件测试工程师是个神奇的职业,他是开发人员与老板之间的传话筒(三夹板),也是开发人员与老板的好帮手;如此一个面面俱到的岗位,他需要具备的技能到底有哪些呢接下来,来和陕西有优就业小编一起看看吧!1.有逆向思维的能力软件的使用者千差万别,软件在...
    99+
    2023-06-05
  • 受Python工程师喜欢的5个可视化工具分别是什么
    这期内容当中小编将会给大家带来有关受Python工程师喜欢的5个可视化工具分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如今,同质化的应用越来越多,应用开发者也开始在用户体验上下功夫,比如数据可...
    99+
    2023-06-02
  • 前端工程师必知的Javascript设计模式有哪些
    本篇文章给大家分享的是有关前端工程师必知的Javascript设计模式有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 前言设计...
    99+
    2024-04-02
  • vue工程师必会封装的埋点指令有哪些
    本篇内容主要讲解“vue工程师必会封装的埋点指令有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue工程师必会封装的埋点指令有哪些”吧!指令基础知识在此之前,先来复习下vue自定义指令吧,...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作