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. 简单计算 新建一个数据表 ...
随机推荐
- idea 编译maven
参考:https://blog.csdn.net/yye894817571/article/details/71681891
- 用华为C8813调试LogCat不显示日志问题解决方法
我用华为C8813调试代码时,Eclipse不输出LogCat日志,用其他Android Pad是正常输出的.找了几种解决方法都不行,最后发现如下的方法,问题解决! 华为Android手机打开Lo ...
- html-webpack-plugin & clean-webpack-plugin
html-webpack-plugin Introduction: The HtmlWebpackPlugin simplifies creation of HTML files to serve y ...
- redis 之redis发布订阅
Redis 通过 PUBLISH . SUBSCRIBE 等命令实现了订阅与发布模式. 一个Publisher,多个Subscriber模型 如下图所示,可以作为消息队列或者消息通道 主要应用: 一个 ...
- redis 之redis持久化rdb与aof
redis是内存型的数据库 重启服务器丢失数据 重启redis服务丢失数据 断电丢失数据 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种 ...
- 设计模式课程 设计模式精讲 2-2 UML类图讲解
1 类图讲解 1 类图讲解 + 公共方法 - private权限 # protected权限 包内和包外继承的子类都能引用 ~ default权限(包权限)只有包内能引用 下划线 静态 Stati ...
- Python - metaclass元类
参考 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319106919 ...
- 1-1SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- sklearn中调用集成学习算法
1.集成学习是指对于同一个基础数据集使用不同的机器学习算法进行训练,最后结合不同的算法给出的意见进行决策,这个方法兼顾了许多算法的"意见",比较全面,因此在机器学习领域也使用地非常 ...
- Jenkins安装 maven插件
Maven Artifact ChoiceListProvider (Nexus)Maven Metadata Plugin for Jenkins CI serverMaven Release Pl ...