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道(附答案)看完面试不愁了相关推荐

  1. python面试题37道(附答案)看完面试不愁了

    1. (1)python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器, ...

  2. 计算机相关专业试题,计算机基础类 模拟试题 计算机相关专业 模拟题 10套 附答案.doc...

    计算机应用类专业综合知识模拟试题(一) 一.单选题(在本题的每一个小题的备选答案中,只有一个答案是正确的,请你把你认为正确的答案的选项填入题干的括号内.每小题2分,共60分) 1.第一台电子计算机是1 ...

  3. 精选大数据面试真题10道(附答案详细解析)

    大数据笔面试系列文章分为两种类型:混合型(即一篇文章中会有多个框架的知识点-融会贯通):专项型(一篇文章针对某个框架进行深入解析-专项演练). 此篇文章为系列文章的第一篇(混合型) 第一题:大数据笔试 ...

  4. 一台微型计算机的处理速度主要取决于,2017年答案计算机等级考试题库「附答案」...

    2017年答案计算机等级考试题库「附答案」 一.单选题 1.世界上首次提出存储程序计算机体系结构的是 A 莫奇莱 B 艾仑·图灵 C 乔治·布尔 D 冯·诺依曼 2.世界上第一台电子计算机诞生于 A ...

  5. 计算机英语b级题库,2017年答案计算机等级考试题库「附答案」

    2017年答案计算机等级考试题库「附答案」 一.单选题 1.世界上首次提出存储程序计算机体系结构的是 A 莫奇莱 B 艾仑·图灵 C 乔治·布尔 D 冯·诺依曼 2.世界上第一台电子计算机诞生于 A ...

  6. Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完不进你找我

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  7. 2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  8. Java常问面试题整理,帮你搞定‘金9银10’(附答案纯干货)

    前言: 工作做螺丝钉,面试造火箭,我想这个是每个程序员比较头疼的事情,但是又有必须经历的流程,尤其是摸不清面试官问的问题,准备不充分,导致面试的时候不知道如何回答.本文是小编个人从几十次面试中挑选的面 ...

  9. 中考计算机vb试题及答案,2017计算机二级VB练习题附答案

    2017计算机二级VB练习题附答案 引导语:全国计算机等级考试有二级VB语言程序设计这一考试项目.为了帮助大家准备计算机二级VB考试,以下是百分网小编分享给大家的2017计算机二级VB练习题附答案,欢 ...

最新文章

  1. 微信第 1 行代码曝光,简陋到让你怀疑人生!
  2. 不用亲手搭建型了!华人博士提出few-shot NAS,效率提升10倍
  3. 5G NGC — 关键技术 — 网络切片 — 切片的选择
  4. 浏览器支持java_为什么我下载了java并提示浏览器不支持j
  5. 新兴短距离无线通信技术ZigBee入门到进阶
  6. FastDFS分布式文件系统工作原理
  7. 抽象类(Abstract)和接口的不同点、共同点(Interface)。
  8. mysql 联合索引的命中规则_可能是全网最好的MySQL重要知识点/面试题总结
  9. 【零基础学Java】—对象数组(十三)
  10. 剑指Offer之复杂链表的复制
  11. Java 如何使用protobuf
  12. 吾智商低,对于VS的char实在是不知所云
  13. Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not b
  14. IE浏览器调用jquery需要注意的小问题
  15. Mongodb模式设计
  16. UCI行为识别——Activity recognition with healthy older people using a batteryless wearable sensor Data Set
  17. Google Chrome 75.0.3770.100 插件丰富且自带翻译的浏览器
  18. 什么是谐波?谐波的危害
  19. verilog中的initial语句
  20. 汉字转拼音,文字转语音tts (语音技术、语音识别),Asr/tts,变声

热门文章

  1. wordpress评论插件:多说
  2. decimal.Round 的区别
  3. mongodb 安装pymongo 驱动
  4. Spark你需要知道这些
  5. 利用Oh-My-Zsh打造你的超级终端---待排版
  6. 基于webuploader.js的单图片上传封装
  7. 20155325 2016-2017-2 《Java程序设计》第3周学习总结
  8. jquery 常见选择器详解3
  9. 一个例子说明如何在DataSnap中使用FireDAC
  10. .Net 基础new关键字的用法