71、异常处理写法以及如何主动跑出异常(应用场景)
try:
pirnt('123')
except:
print('456')
通过raise 异常对象
主动抛出异常
72、什么是面向对象的mro
Method Realtion Order 用来制作一个继承关系的列表
MRO列表的制作原则:
1.子类永远在父类的前面
2.如果继承了多个父类,那么按照()中的顺序在列表中摆放
3.如果多个类同时继承了一个父类,孙子类中只会选取第一个父类中的父类的该方法
73、isinstance作用以及应用场景?
检测一个数据是否由指定的类型创建
74、写代码并实现:
给定一个由编码器组成的数组,返回两个数字的索引,使它们加起来成为一个特定的目标。你可以假设每一个输入都会
只有一个解决方案,您可能不会使用相同的元素两次。
例子:
给定nums =[2,7,11,15],目标= 9,
因为nums[0] + nums[1] = 2+ 7= 9,
返回[0,1]
In [102]: def nums(lists,n):^M
...: if isinstance(lists,list):^M
...: for i in range(len(lists)):^M
...: for v in lists:^M
...: if lists[i]+v == n:^M
...: print(i,lists.index(v))^M
...: break
...: nums([1,2,3,4,5],9)
...:
3 4
4 3
75、json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?
可以处理数组、对象
定制datetime类型
In [107]: import json
In [108]: class ComplexEncoder(json.JSONEncoder):
...: def default(self, obj):
...: if isinstance(obj, datetime):
...: return obj.strftime('%Y-%m-%d %H:%M:%S')
...: elif isinstance(obj, date):
...: return obj.strftime('%Y-%m-%d')
...: else:
...: return json.JSONEncoder.default(self, obj)
...:
In [109]: json.dumps({'now':datetime.now()},cls=ComplexEncoder)
Out[109]: '{"now": "2018-07-10 18:12:31"}'
76、json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?
json.dumps(jsonData,ensure_ascii=False);
77、什么是断言?应用场景?
在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
78、有用过with statement吗?它的好处是什么?
with语句的作用是通过某种方式简化异常处理
自动管理文件关闭
79、使用代码实现查看列举目录下的所有文件。
import os
In [119]: for i in os.listdir():
...: print(i)
...:
80、简述 yield和yield from关键字。
yield 的作用就是把一个函数变成一个生成器, 带有yield的函数不再是一个普通的函数。python解释器会将其视为一个generator