最近接受了一个 python 开发人员的面试,大部分情况下,比方说 60%,一切顺利。但是随着面试的进行越来越深入,我开始收到一些我修改不够、求职期间不需要的问题。
尽管如此,我对这些主题还是有一些想法,所以我设法做到了。而且,我得到了这份工作。
我正在写这篇文章,但将其视为修订说明或指南,在您尝试基于 Python 的面试之前,您应该复习哪些主题。
open() 以 (w(用于写入)、w+(用于写入和读取)、r(用于读取)、r+、a(用于追加)、a+ 等模式打开文件
close() 当你不需要文件时。
寻找(获取光标位置并将光标移动到该位置)
file.tell() 告诉当前光标位置。
try : 块包含可能导致错误的代码
except:包含处理异常的代码
else : 如果没有遇到异常则运行的代码
最后:关闭连接(数据库、文件等)
assert condition, error message — 导致 AssertionError 异常,用于检查某些条件
raise用于引发异常
如何在python中制作抽象类和接口
要创建抽象类,请从abc {抽象基类} 模块导入
使类抽象,使其扩展 ABC 并使用 @abstractmethod 装饰抽象方法
from abc import abstractmethod, ABC class CAR ( ABC ): def __init__ ( self ): #do something pass # 抽象方法 @abstractmethod def drive ( self ): pass def horn ( self ): print ( "making sound!" )
界面
使类的所有方法抽象化,使类成为接口
from abc import abstractmethod, ABC # interface (make all the methods, abstract) class CAR ( ABC ): def __init__ ( self ): #do something pass # 抽象方法 @abstractmethod def drive ( self ): pass @abstractmethod def horn ( self ) ): 通过
用于创建自定义数据序列的方法使用yield返回一个值,该值可以保存它们的状态并从它们停止的地方恢复。
简单的例子
def generateUpto5 (): i = 1 while i<= 5 : yield (i) i+= 1
# 多次调用该函数 generateUpto5() //返回1 generateUpto5() //返回2
用于修饰方法,用于向函数的输出添加一些额外信息
# 定义一个装饰器 def decorAdd5 ( func ): def inner (): result = func() result += 5 return result return inner # 装饰一个函数 @decorAdd5 def returns1 (): return 1
可以应用多个装饰器。
@decorator1 @decorator2 def returns1 (): 返回 1
*args:将可选参数传递给函数
**kwargs:传递关键字可选参数
任意数量的额外参数
GLOBAL 访问全局变量
globals() 返回全局变量的字典
导入系统
sys.argv 是一个列表,其中包含传递给程序的所有参数
具有一个返回语句的简单函数
函数 = λ x: x+1
使用过滤器、地图、减少
import re [代表正则表达式]
match,返回匹配的字符串对象。结果需要调用result.group ()
调用result.group()时搜索返回匹配的字符串结果,
findall返回所有匹配字符串的列表,
split采用正则表达式作为分隔符来拆分字符串,
sub代表替代品: ,
\d 代表任何数字 [单个字符]
\D 代表任何非数字
\s 用于任何空白
\S 代表任何非空白
\w 对于任何字母数字字符
\W 表示任何非字母数字字符
\b 单词周围的空格
\字符串的开头
\Z 字符串结尾
{} 字符出现
特殊字符
\ 转义字符用于转义
. 任何一个角色
^ 字符串的开头
$ 字符串结尾
[…] 值范围
[^…] 匹配提供范围以外的所有字符
() 传递正则表达式
(R|S) 给出两个正则表达式,匹配两者中的任何一个。
标签:Python,编辑,管理,代码,数据,面试,icode9 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。