python面试总结知识点
1.python中is和==的区别
Python中对象包含的三个基本要素,分别是:id(身份标识) 、type(数据类型)和value(值)。
‘==’比较的是value值
‘is’比较的是id
2.简述read、readline、readlines的区别
read读取整个文件
readline读取下一行数据
readlines读取整个文件到一个迭代器以供我们遍历(读取 到一个list中,以供使用,比较方便)
3.举例说明创建字典的至少两种方法
# way1
dict1 = {key1:v1,key2:v2}
# way2
dict2 = {}
dict2[key1] = v1
dict2[key2] = v2
# way3
dict3 = dict(key1=v1,key2=v2)
4.*args,**kwargs的作用是什么?如何使用?
*args和**kwargs通常使用在函数定义里. *args 用来将参数打包成tuple给函数体调用。
**kwargs 打包关键字参数成dict给函数体调用
5.python中match()和search()的区别?
match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回None。search()函数会在整个字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象。也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。
import re
print(re.match("func", "function"))
print(re.match("func", "function").span())
print(re.match("func1", "function"))
print(re.search("tion", "function"))
6.什么是lambda函数?他有什么好处?
lambda函数是匿名函数;使用lambda函数能够创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤; 例:
f = lambda x, y, z :x+y+z
print f(1,2,3) #6
7.python中如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}
深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}
import copy
a = [1,2,3,4,['a','b']] #定义一个列表a
b = a #赋值
c = copy.copy(a) #浅拷贝
d = copy.deepcopy(a) #深拷贝
a.append(5)
print(a)
#[1, 2, 3, 4, ['a', 'b'], 5] #a添加一个元素5
print(b)
#[1, 2, 3, 4, ['a', 'b'], 5] #b跟着添加一个元素5
print(c)
#[1, 2, 3, 4, ['a', 'b']] #c保持不变
print(d)
#[1, 2, 3, 4, ['a', 'b']] #d保持不变
a[4].append('c')
#print(a)
[1, 2, 3, 4, ['a', 'b', 'c'], 5] #a中的list(即a[4])添加一个元素c
#print(b)
[1, 2, 3, 4, ['a', 'b', 'c'], 5] #b跟着添加一个元素c
#print(c)
#[1, 2, 3, 4, ['a', 'b', 'c']] #c跟着添加一个元素c
print(d)
#[1, 2, 3, 4, ['a', 'b']] #d保持不变
#说明如下:
#1.外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。
#2.无论原列表a如何变化,深拷贝d都保持不变。
#3.赋值对象随着原列表一起变化
8.你对多线程和多进程的理解。
一个程序至少有一个进程,一个进程至少有一个线程; 线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高; 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率 ; 线线程不能够独立执行,必须依存在进程中;
优缺点:线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反
9.Python 字典(Dictionary) items()
函数以列表返回可遍历的(键, 值) 元组数组.
10.请随机输出一个大于0小于1的数;请随机输出一个100以内的整数
import random
print(random.random()) # 0<1
print(random.randint(1,100)) # 100以内整数
11.函数式编程的介绍
以map函数为例。首先介绍一下函数式编程是定义:将函数作为参数传递进去.
map() #会根据提供的函数对指定序列做映射。
map(function, iterable, ...)
#第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
#function -- 函数
#iterable -- 一个或多个序列
python面试总结知识点的更多相关文章
- Python 面试中 8 个必考问题(转载)
Python 面试中 8 个必考问题 1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return list ...
- Python面试简介及并行并发
今天的分享内容大体如下: 一. 面试 1. 什么是面试 2. 优秀的面试 二. Python综述 1. Python设计哲学及版本变迁 2. Python发展现状及其他语言使用场景 3. GIL 4. ...
- Python 面试问题
Python 面试问题 最近正在团队内部普及 Python 语言,有些刚接触 Python 语言的工程师在概念上有很多混淆的地方,刚好看到这篇文章:Python面试问题,里面列举的问题都是关于 Pyt ...
- Python面试常问的10个问题
很多人想找Python工作,面试往往在基础知识点采坑了 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试 ...
- Python面试真题答案或案例
Python面试真题答案或案例如下: 请等待. #coding=utf-8 #1.一行代码实现1--100之和 print(sum(range(1,101))) #2.如何在一个函数内部修改全局变量 ...
- python遇到的知识点
python遇到的知识点,记录一下.方便学习. 文件相关操作 查了资料,关于open()的mode参数: 'r':读 'w':写 'a':追加 'r+' == r+w(可读可写,文件若不存在就报错(I ...
- Python数据分析--Pandas知识点(三)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...
- Python面试 【315+道题】
Python面试 [315+道题] 第一部分 Python基础篇(80题) 为什么学习Python? 因为看到python的发展趋势,觉得需要与时俱进,第一点,python开发速度极快,能快速完成一个 ...
- Python数据分析--Pandas知识点(二)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...
随机推荐
- tomcat中servlet冲突问题
在启动tomcat以后,控制台发现“Offending class: javax/servlet/Servlet.class”信息: 信息: validateJarFile(E:\code\MyApp ...
- 设计模式课程 设计模式精讲 20-2 解释器模式coding
1 代码演练 1.1 代码演练1(解释器模式coding) 1.2 代码演练如何应用了解释器模式 1 代码演练 1.1 代码演练1(解释器模式coding)(该案例运用了栈的先进先出的特性) 需求: ...
- 设计模式课程 设计模式精讲 8-2 单例设计模式-懒汉式及多线程Debug实战
1 主要内容 1.1 多线程debug 1.2 synchronized同步锁的调用 1.3 懒加载的应用 2 代码演练 2.1 单线程调用 2.2 多线程调用 2.3 锁的调用 1 主要内容 1.1 ...
- pycharm安装PyQt框架
首先需要安装必要插件 File --> Settings --> Project Interpreter 如果出现以下这种情况:请升级pip,参考:https://www.cnbl ...
- Windows驱动开发-Device结构体
每个驱动程序会创建一个或多个设备对象,每个设备对象都会有一个指针指向下一个设备对象 Device结构体源码 typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATIO ...
- div 浮动
浮动 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <titl ...
- mind map 思维导图
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- selenium+chrome抓取淘宝宝贝-崔庆才思路
站点分析 源码及遇到的问题 在搜索时,会跳转到登录界面 step1:干起来! 先取cookie step2:载入cookie step3:放飞自我 关于phantomJS浏览器的问题 源码 站点分析 ...
- vagrant的使用介绍
()添加镜像到本地仓库 vagrant box add bt_centos6.6_zouke centos-6.6-x86_64.box )初始化 vagrant init ()启动vm vagran ...
- 【高软作业4】:Tomcat 观察者模式解析 之 Lifecycle
一. 预备 如果你是Windows用户,使用Eclipse,并且想自行导入源码进行分析,你可能需要:Eclipse 导入 Tomcat 源码 如果你已遗忘 观察者模式,那么你可以通过该文章回顾:设计模 ...