白塔IT教育信息网

白塔IT教育信息网

最常见的Python面试题及答案分享

1.http协议与https协议的区别?

http是超文本传输协议在互联网上应用最为广泛的一种网络协议,所有www文件都必须遵守这个标准,基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)连接。

https是超文本传输安全协议,是一种网络安全传输协议。http协议传输的数据都没有加密,一些私密的信息不安全,https经由超文本传输协议(http)进行通信,利用SSL/TLS来加密数据包,https开发的主要目的就是为了保护数据传输的安全性。

HTTPS和HTTP的区别:

1)https协议要申请证书到ca,需要一定经济成本

2)http是明文传输,https是加密的安全传输

3)连接的端口不一样,http是80,https是443

4)http连接很简单,没有状态;https是ssl加密的传输,身份认证的网络协议,相对http传输比较安全

2.Python解释器

当我们编写好了的Python代码的时,一.py为扩展名的文件,运行代码的时候,需要python解释器。解释器在执行的程序时,一条一条的解释成机器语言给计算机来执行。因为计算机只能识别机器语言(以二进制的形式)

3.字典推导式和列表推导式

列表推导式:

格式:[变量for变量in列表]

普通的字典内涵

变量={key:valueforkey,valuein字典.items()}

4.Python2和python3在使用super时区别:

5.python列表去重(数组)的几种方法

方法1:用if语句判断,用append函数追加

输出结果:

方法二:

用set集合:

输出的结果:

6.列举您使用过的python网络爬虫所用到的解析数据包

BeautifulSoup、pyquery、Xpath、lxml

7.python常用内置函数:

dir(对象名):返回一个列表,列出该对象所有的属性和方法

help(函数名、方法名或对象):查看函数、方法或对象的帮助文档

type(对象名):查看该对象的类型

isinstance(对象,类型):判断该对象是否是该类型,返回True或False

range、input、print等不用多说了

以上几个使用频率应当是最高的;更多函数,请导入模块”importbuiltins”,dir(builtins)查看

8.python中的and、or、not逻辑运算符:

and、or、not两边的值会被放到布尔环境下,作比较

and运算如xandy:

x和y都为True时,那么返回最后一个值y

否则返回两个值中的第一个布尔值为假的值,从左往右运算

or运算如xory:

只要有一个为真值,就返回第一个布尔值为真的值

如果都为假,返回最后一个布尔值为假的值,从左往右运算

not运算如notx:

当x的布尔值为True,返回False

²当x的布尔值为False,返回True

9.参数按值传递和引用传递是怎样实现的?

Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法被改变。但是如果一个对象是可以被修改的,你可以改动对象。

10.python内置的数据类型有哪些?

list:链表,有序的项目,通过索引进行查找,使用方括号"[]"

dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序,使用大括号"{}"

str:字符串,用单或双引号括起来表示字符串

tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找,使用括号"()"

set:集合,无序,元素只出现一次,使用"set([])",可实现列表快速去重,不过注意返回的是一个集合

int:整数,如3

float:浮点数,如2.3

complex:复数,如complex(1,2)=>1+2j

可迭代(遍历)对象:list、dict、tuple、set、str

可变类型:list、dict、set,其余为不可变类型

list、tuple、str可通过索引获取当中的元素

²set不支持索引查找,因为数据只出现一次,它只关心数据是否出现,不关心其位置

11.python中search()和match()的区别

match从起始位置开始往后查找,返回第一个符合规则的

search任何位置开始往后查找,返回第一个符合规则的

12.redis中常用的5中数据类型?

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。

13.请描述一下try……except……else……finally执行的顺序?

try:

#尝试实现某个操作,

#如果没出现异常,任务就可以完成

#如果出现异常,将异常从当前代码块扔出去尝试解决异常

except异常类型1:

#解决方案1:用于尝试在此处处理异常解决问题

except异常类型2:

#解决方案2:用于尝试在此处处理异常解决问题

else:

#如果没有出现任何异常,将会执行此处代码

finally:

#管你有没有异常都要执行的代码

14.什么样的字段适合建立索引?

唯一、不为空、经常被查询的字段,

15.Xrange和range的区别是什么?

xrange用法与range完全相同,所不同的是,xrange生成的不是一个list对象,而是一个生成器。

以上就是千锋python开发培训老师列举总结的部分面试题。目前,python开发应用广泛,对于拥有python开发技术的程序员来说,职业道路的选择十分的宽广,行业前景之广阔都是可以预见。成为一名python开发程序员可以有这么多的方向可以,但是前提是必须要有过硬的python技术。

分享