首页 / 面试 / 面试:python相关基础知识
面试:python相关基础知识
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了面试:python相关基础知识,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3439字,纯文字阅读大概需要5分钟。
内容图文
- 列表list与数组tuple区别
区别对象 | List | tuple |
重编辑 | 可 | 不可 |
速度 | 慢 | 快 |
语法 | 中括号 | 小括号 |
- python与c的区别
python是解释性语言、面向对象、动态语言
c是过程性语言、面向过程、静态语言
pep是什么
是一组python的语法规则、作用是保持代码的最大可读性
- 如何在python管理内存
python有私有堆空间,程序员无法管理,需要核心api才能管理,python解释器富足管理此问题。
- python path是什么
导入库的环境,检查程序员导入库是否存在。
- 什么事导入块,常用有哪些
.py文件。内置有sys,random,math,datatime,jjson
- python是否区分大小写
是的
- 常见的类型转化
int()
float()
Str()
dict()
Tuple()
List()
set()
Ord()
Hex()
- Python 需要缩进
- 什么事__init__
是python的结构或方法,每个类都有,目的是为其分配内存
- 什么事lambda
匿名函数,作用减少单行函数的存在,使代码更加简洁。但不会因此执行效率提高
- python的self是什么
指实例、对象
- [::-1]代表翻转列表{::-1}代表翻转字典
- 怎么随机列表
可以使用shuffle函数进行随机列表元素
- 什么是迭代器
可以遍历、迭代的对象
- 如何生成随机对象
random.random()
random.uniform(a,b)随机返回浮点数
random.range(a,b)随机返回整数
random.normalvariate(mean,sigma)返回正态分布
- range与xfrange区别
range返回静态列表
xrange返回一个生成器,大列表优先考虑这个函数
- pickling与unpickling区别
将任何类型转为字符串为pickling,将字符串解析到原始类型为unpicking
- capitalize()将首字母转为大写
- lower()全部转为小写
- 操作符is,in,not:判断元素是否一样,存在,不存在列表、元组、集合
- Help()查看函数的信息、属性,dir()查看函数定义
- 退出时是否释放所有内存
否,循环引用其他对象或全局对象的不会全部释放,另外饮用c语言也不会释放
- 字典:
由键与键值构成的一对一的关系
- 三元运算
[on_true] if [expression] else [on_false] x
- args,*args,**args区别
args:确定个数变量
*args:不确定变量传入函数,将其打包成元组
**args:不确定个数变量传入函数,将其打包成字典
- split():正则分割字符串到列表
- sub():正则匹配子字符串,用新的字符串代替
- subn():正则匹配子字符串并返回新字符串
- 负指数:代表倒数第几个
- 删除文件:os.remove()
- 内置类型有哪些
int,float,str,boolean
- numpy优点
可以进行矩阵运算,速度快,FFT,线性代数,基本的统计,直方图
- 如何添加数组的元素
append(),insert(index,i),extend()
- 删除数组的元素
pop(),remove()
- 浅拷贝:只拷贝对象的地址,深拷贝:拷贝对象的地址,如果还有父对象,则拷贝父对象存储到另外一个地址。
- 手动实现深拷贝
def deepCopy(src):
if isinstance(src, dict):
dst = {}
for k,v in src.items():
dst[k] = deepCopy(v)
return dst
elif isinstance(src, list or tuple):
dst = []
for i in src:
dst.append(deepCopy(i))
return dst
else:
return src
- new与init区别
new创建实例,继承父对象,需要返回值,至少有一个参数cls
init初始化实例,不需要返回值,至少有一个参数self
- 编码:将字节变成01的码位,解码:将01的码位转成字节
- 装饰器:
将很少改动的函数打包成一个装饰器,供其他函数使用。
- 多进程与多线程区别
多进程:
多进程优点:
1、互相独立,子进程崩溃没关系;
2、通过增加CPU,扩充性能;
3、可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;
4、每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大。
多进程缺点:
1、逻辑控制复杂,需要和主程序交互;
2、需要跨进程边界,多进程调度开销比较大;
3、最好是多进程和多线程结合
多线程:
多线程的优点:
1、无需跨进程边界;
2、程序逻辑和控制方式简单;
3、共享内存和变量
多线程缺点:
1、每个线程与主程序共用地址空间,受限于2GB地址空间;
2、线程之间协调麻烦;
3、线程之间有耦合性;
4、到达一定的线程数程度后,即使再增加CPU也无法提高性能
5、线程能够提高的总性能有限。
-
CPU密集型 vs IO密集型
我们可以把任务分为计算密集型和IO密集型。计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。
内容总结
以上是互联网集市为您收集整理的面试:python相关基础知识全部内容,希望文章能够帮你解决面试:python相关基础知识所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。