栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python常见的面试题_常见的25个python面试问答?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python常见的面试题_常见的25个python面试问答?

“金三银四”跳槽季近在眼前,给准备跳槽的朋友们准备一份面试指南,希望大家在涨薪和成长的路上多一点指引

Python2 和Python3区别?

Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi')

Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi'

Python2 range(1,10)返回列表,python3中返回迭代器,节约内存

Python2 中使用 ascii 编码,python中使用 utf-8 编码

Python2 中 unicode 表示字符串序列,str 表示字节序列

Python3 中 str 表示字符串序列,byte 表示字节序列

Python2 中为正常显示中文,引入 coding 声明,python3 中不需要

Python2 中是 raw_input() 函数,python3 中是input()函数

Python代码中_args, *_kwargs 含义及用法?

args: arguments 的缩写,表示位置参数

kwargs: keyword arguments 的缩写,表示关键字参数

请阐述同步,异步,阻塞,非阻塞的概念?

同步: 多个任务之间有先后顺序执行,一个执行完下个才能执行。

异步: 多个任务之间没有先后顺序,可以同时执行,有时候一个任务可能要在必要的时候获取另一个同时执行的任务的结果,这个就叫回调!

阻塞: 如果卡住了调用者,调用者不能继续往下执行,就是说调用者阻塞了。

非阻塞: 如果不会卡住,可以继续执行,就是说非阻塞的。

同步异步相对于多任务而言,阻塞非阻塞相对于代码执行而言。

一. Python基础

字典推导式

 
 

d = {key:value for (key,value) in iterable}


反转字符串 "aStr"

 
 

print("aStr"[::-1])


将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}

 
 

 回复:11 str1 = "k:1|k1:2|k2:3|k3:4" def str2dict(str1): dict1 = {} for iterms in str1.split('|'): key,value = iterms.split(':') dict1[key] = value return dict1 #字典推导式 d = {k:int(v) for t in str1.split("|") for k, v in (t.split(":"), )}


下面代码的输出结果将是什么

 
 

list = ['a','b','c','d','e'] print(list[10:])


代码将输出[],不会产生IndexError错误,就像所期望的那样,尝试用超出成员的个数的index来获取某 个列表的成员。例如,尝试获取list[10]和之后的成员,会导致IndexError。然而,尝试获取列表的切 片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。这成为特别让人恶 心的疑难杂症,因为运行的时候没有错误产生,导致Bug很难被追踪到。


给定两个列表,怎么找出他们相同的元素和不同的元素

 
 

list1 = [1,2,3] list2 = [3,4,5] set1 = set(list1) set2 = set(list2) print(set1 & set2) print(set1 ^ set2)

合并两个列表并去除重复元素?

 
 

list1 = ['b','c','c','a','f','r','y','e','e'] list2 = ['t','y','x','y','z','e','f'] def merge_list(*args): s = set() for i in args: s = s.union(i) print(s) return s merge_list(list1,list2)

如何查询和替换一个文本中的字符串?

 
 

tempstr = "hello python,you,me,world" print(tempstr.replace("hello","python")) #还可以使用正则,有个sub() tempstr = "hello python,you,me,world" import re rex = r'(hello|Use)' print(re.sub(rex,"HELLO",tempstr))

对缺省参数的理解

缺省参数指在调用函数的时候没有传入参数的情况下,调用默认的参数,在调用函数的同时赋值时,所 传入的参数会替代默认参数。*args是不定长参数,它可以表示输入参数是不确定的,可以是任意多个。**kwargs是关键字参数,赋值的时候是以键值对的方式,参数可以是任意多对在定义函数的时候 不确定会有多少参数会传入时,就可以使用两个参数


生成器,迭代器的区别

迭代器是遵循迭代协议的对象。用户可以使用 iter() 以从任何序列得到迭代器(如 list, tuple, dictionary, set 等)。另一个方法则是创建一个另一种形式的迭代器 —— generator 。要获取下一个元 素,则使用成员函数 next()(Python 2)或函数 next() function (Python 3) 。当没有元素时,则引 发 StopIteration 此例外。若要实现自己的迭代器,则只要实现 next()(Python 2)或 next ()


生成器(Generator)只是在需要返回数据的时候使用yield语句。每次next()被调用时,生成器会返 回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)


区别生成器能做到迭代器能做的所有事,而且因为自动创建iter()和next()方法,生成器显得特别简 洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序 状态的自动方法,当发生器终结时,还会自动抛出StopIteration异常。

友友们,看完记得点赞哦!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786766.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号