Python面试面经-创新互联
excpt:捕获所有异常
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为官渡企业提供专业的成都网站建设、网站制作,官渡网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。excpt:<异常名>:捕获指定异常
excpt:<异常名1, 异常名2>: 捕获异常1或者异常2
excpt:<异常名>,<数据>:捕获指定异常及其附加的数据
excpt:<异常名1, 异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据
2 在 except 中 return 后还会不会执行finally 中的代码?怎么抛出自定义异常?会继续处理finally中的代码
用raise方法可以抛出自定义异常
3 read、readline 和 readlines 的区别?read:读取整个文件
readline:读取下一行,使用生成器方法
readlines:读取整个文件到一个生成器已提供我们遍历
4 请简述对input()函数的理解?input()函数获取用户的输入,不论输入的是什么,获取到的都是字符串类型
5 什么是正则的贪婪匹配?import re
secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'
b = re.findall('xx.*xx',secret_code) # 贪婪匹配
print (b) # ['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']
c = re.findall('xx.*?xx',secret_code) # 非贪婪匹配
print(c) # ['xxIxx', 'xxlovexx', 'xxyouxx']
1、贪婪匹配:总是尝试匹配尽可能多的字符
2、非贪婪匹配:是尝试匹配尽可能少的字符
6 面向对象深度优先和广度优先是什么?在子类继承多个父类时,属性查找方式粉深度优先和广度优先两种
当类是经典类时,多继承情况下,在要查找属性不存在时,会按照深度优先方式查找下去。
当类时新式类时,多继承情况下,在要查找属性不存在时,会按照广度优先方式查找下去。
7 enumerate() 的用法?enumerate()函数用于将一个可遍历的数据对象(列表、元组和字符串)组合为一个索引序列,同时输出数据和数据下标,一般在for循环中使用。
my_list = ['apple', 'banana', 'grapes', 'pear']
for c, value in enumerate(my_list, 1):
print(c, value)
1 apple
2 banana
3 grapes
4 pear
如果是enumerate(my_list) ,输出的下标从0开始。
8 pass语句pass是空语句,为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。
9 主动抛出异常使用raise
def test_raise(n):
if not isinstance(n, int):
raise Exception("not a int type")
else:
print("good")
test_raise(8.9)
Exception Traceback (most recent call last)in---->1 test_raise(8.9)
in test_raise(n)
1 def test_raise(n):
2 if not isinstance(n, int):
---->3 raise Exception("not a int type")
4 else:
5 print("good")
Exception: not a int type
10 简述断言Python的断言就是检测一个条件,如果条件为真,它什么都不做;反之它触发一个带可选错误信息的AssertionError
def testassert(n):
assert n == 2, "n is not 2"
print("n is 2")
testassert(2)
testassert(3)
n is 2
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)in 4
5 testassert(2)
---->6 testassert(3)
in testassert(n)
1 def testassert(n):
---->2 assert n == 2, "n is not 2"
3 print("n is 2")
4
5 testassert(2)
AssertionError: n is not 2
11 什么是异步非阻塞?同步异步指的是调用者与被调用者之间的关系
- 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回,一旦调用返回,就得到了返回值。
- 异步的概念和同步相对,调用在发处之后,这个调用就直接返回了,所以没有返回结果。 当该异步功能完成后,被调用者可以通过状态、通知或回调来通知调用者。
阻塞非阻塞是线程或进程之间的关系
- 阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作)。调用线程只有在得到结果之后才会返回。函数只有在得到结果之后才会将阻塞的线程激活
- 非阻塞和阻塞的概念相对应,非阻塞调用指在不能立刻得到结果之前也会立刻返回,同时该函数不会阻塞当前线程
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享名称:Python面试面经-创新互联
网站URL:http://hbruida.cn/article/dcoish.html