python面试题及答案-Python面试题10道(附答案)看完面试不愁了
1. python多线程
(1)python下多线程的限制以及多进程中传递参数的方式
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。
多进程间共享数据,可以使用 multiprocessing.Value 和 multiprocessing.Array
(2)python多线程与多进程的区别
在UNIX平台上,当某个进程终结之后,该进程需要被其父进程调用wait,否则进程成为僵尸进程(Zombie)。所以,有必要对每个Process对象调用join()方法 (实际上等同于wait)。对于多线程来说,由于只有一个进程,所以不存在此必要性。
多进程应该避免共享资源。在多线程中,我们可以比较容易地共享资源,比如使用全局变量或者传递参数。在多进程情况下,由于每个进程有自己独立的内存空间,以上方法并不合适。此时我们可以通过共享内存和Manager的方法来共享资源。但这样做提高了程序的复杂度,并因为同步的需要而降低了程序的效率。
2.Python是如何进行内存管理的?
Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放
内存池(memory pool)的概念:
当 创建大量消耗小内存的对象时,频繁调用new/malloc会导致大量的内存碎片,致使效率降低。内存池的概念就是预先在内存中申请一定数量的,大小相等 的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
内存池的实现方式有很多,性能和适用范围也不一样。
python中的内存管理机制——Pymalloc:
python中的内存管理机制都有两套实现,一套是针对小对象,就是大小小于256bits时,pymalloc会在内存池中申请内存空间;当大于256bits,则会直接执行new/malloc的行为来申请内存空间。
关于释放内存方面,当一个对象的引用计数变为0时,python就会调用它的析构函数。在析构时,也采用了内存池机制,从内存池来的内存会被归还到内存池中,以避免频繁地释放动作。
3.什么是lambda函数?它有什么好处?
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。lambda 函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。
4.如何用Python输出一个Fibonacci数列?
1 a,b = 0, 1
2 while b
3 print (b),
4 a, b = b, a+b
5.介绍一下Python中webbrowser的用法?
webbrowser模块提供了一个高级接口来显示基于Web的文档,大部分情况下只需要简单的调用open()方法。
webbrowser定义了如下的异常:
exception webbrowser.Error, 当浏览器控件发生错误是会抛出这个异常
webbrowser有以下方法:
webbrowser.open(url[, new=0[, autoraise=1]])
这个方法是在默认的浏览器中显示url, 如果new = 0, 那么url会在同一个浏览器窗口下打开,如果new = 1, 会打开一个新的窗口,如果new = 2, 会打开一个新的tab, 如果autoraise = true, 窗口会自动增长。
webbrowser.open_new(url)
在默认浏览器中打开一个新的窗口来显示url, 否则,在仅有的浏览器窗口中打开url
webbrowser.open_new_tab(url)
在默认浏览器中当开一个新的tab来显示url, 否则跟open_new()一样
webbrowser.get([name]) 根据name返回一个浏览器对象,如果name为空,则返回默认的浏览器
webbrowser.register(name, construtor[, instance])
注册一个名字为name的浏览器,如果这个浏览器类型被注册就可以用get()方法来获取。
6.解释一下python的and-or语法
http://www.kuqin.com/diveinto_python_document/apihelper_andor.html
与C表达式 bool ? a : b类似,但是bool and a or b,当 a 为假时,不会象C表达式 bool ? a : b 一样工作
应该将 and-or 技巧封装成一个函数:
def choose(bool, a, b):
return (bool and [a] or [b])[0]
因为 [a] 是一个非空列表,它永远不会为假。甚至 a 是 0 或 '' 或其它假值,列表[a]为真,因为它有一个元素。
7.how do I iterate over a sequence in reverse order
for x in reversed(sequence):
… # do something with x..
如果不是list, 最通用但是稍慢的解决方案是:
for i in range(len(sequence)-1, -1, -1):
x = sequence[i]
8.Python是如何进行类型转换的?
1 函数 描述
2 int(x [,base ]) 将x转换为一个整数
3 long(x [,base ]) 将x转换为一个长整数
4 float(x ) 将x转换到一个浮点数
5 complex(real [,imag ]) 创建一个复数
6 str(x ) 将对象 x 转换为字符串
7 repr(x ) 将对象 x 转换为表达式字符串
8 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
9 tuple(s ) 将序列 s 转换为一个元组
10 list(s ) 将序列 s 转换为一个列表
11 chr(x ) 将一个整数转换为一个字符
12 unichr(x ) 将一个整数转换为Unicode字符
13 ord(x ) 将一个字符转换为它的整数值
14 hex(x ) 将一个整数转换为一个十六进制字符串
15 oct(x ) 将一个整数转换为一个八进制字符串
9.Python里面如何实现tuple和list的转换?
1>>>l = tuple(iplist)
2>>>print l
3('217.169.209.2:6666','192.227.139.106:7808','110.4.12.170:83','69.197.132.80:7808','205.164.41.101:3128','63.141.249.37:8089','27.34.142.47:9090')
4>>>t = list(l)
5>>>print t
6['217.169.209.2:6666','192.227.139.106:7808','110.4.12.170:83','69.197.132.80:7808','205.164.41.101:3128','63.141.249.37:8089','27.34.142.47:9090']
10.请写出一段Python代码实现删除一个list里面的重复元素
1>>>l = [1,1,2,3,4,5,4]
2>>>list(set(l))
3[1,2,3,4,5]
4或者
5d = {}
6forxinmylist:
7d[x] =1
8mylist = list(d.keys())
python面试题及答案-Python面试题10道(附答案)看完面试不愁了相关推荐
- python面试题37道(附答案)看完面试不愁了
1. (1)python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器, ...
- 计算机相关专业试题,计算机基础类 模拟试题 计算机相关专业 模拟题 10套 附答案.doc...
计算机应用类专业综合知识模拟试题(一) 一.单选题(在本题的每一个小题的备选答案中,只有一个答案是正确的,请你把你认为正确的答案的选项填入题干的括号内.每小题2分,共60分) 1.第一台电子计算机是1 ...
- 精选大数据面试真题10道(附答案详细解析)
大数据笔面试系列文章分为两种类型:混合型(即一篇文章中会有多个框架的知识点-融会贯通):专项型(一篇文章针对某个框架进行深入解析-专项演练). 此篇文章为系列文章的第一篇(混合型) 第一题:大数据笔试 ...
- 一台微型计算机的处理速度主要取决于,2017年答案计算机等级考试题库「附答案」...
2017年答案计算机等级考试题库「附答案」 一.单选题 1.世界上首次提出存储程序计算机体系结构的是 A 莫奇莱 B 艾仑·图灵 C 乔治·布尔 D 冯·诺依曼 2.世界上第一台电子计算机诞生于 A ...
- 计算机英语b级题库,2017年答案计算机等级考试题库「附答案」
2017年答案计算机等级考试题库「附答案」 一.单选题 1.世界上首次提出存储程序计算机体系结构的是 A 莫奇莱 B 艾仑·图灵 C 乔治·布尔 D 冯·诺依曼 2.世界上第一台电子计算机诞生于 A ...
- Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完不进你找我
进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...
- 2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!
进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...
- Java常问面试题整理,帮你搞定‘金9银10’(附答案纯干货)
前言: 工作做螺丝钉,面试造火箭,我想这个是每个程序员比较头疼的事情,但是又有必须经历的流程,尤其是摸不清面试官问的问题,准备不充分,导致面试的时候不知道如何回答.本文是小编个人从几十次面试中挑选的面 ...
- 中考计算机vb试题及答案,2017计算机二级VB练习题附答案
2017计算机二级VB练习题附答案 引导语:全国计算机等级考试有二级VB语言程序设计这一考试项目.为了帮助大家准备计算机二级VB考试,以下是百分网小编分享给大家的2017计算机二级VB练习题附答案,欢 ...
最新文章
- 微信第 1 行代码曝光,简陋到让你怀疑人生!
- 不用亲手搭建型了!华人博士提出few-shot NAS,效率提升10倍
- 5G NGC — 关键技术 — 网络切片 — 切片的选择
- 浏览器支持java_为什么我下载了java并提示浏览器不支持j
- 新兴短距离无线通信技术ZigBee入门到进阶
- FastDFS分布式文件系统工作原理
- 抽象类(Abstract)和接口的不同点、共同点(Interface)。
- mysql 联合索引的命中规则_可能是全网最好的MySQL重要知识点/面试题总结
- 【零基础学Java】—对象数组(十三)
- 剑指Offer之复杂链表的复制
- Java 如何使用protobuf
- 吾智商低,对于VS的char实在是不知所云
- Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not b
- IE浏览器调用jquery需要注意的小问题
- Mongodb模式设计
- UCI行为识别——Activity recognition with healthy older people using a batteryless wearable sensor Data Set
- Google Chrome 75.0.3770.100 插件丰富且自带翻译的浏览器
- 什么是谐波?谐波的危害
- verilog中的initial语句
- 汉字转拼音,文字转语音tts (语音技术、语音识别),Asr/tts,变声