Python面试考题
应届生python面试题
应届生python面试题1. Python是一种高级编程语言,广泛应用于各个领域,尤其在数据科学和人工智能方面具有突出的优势。
作为一名应届生,掌握Python编程技能是非常重要的。
在面试中,常常会遇到与Python相关的问题,下面我将为大家介绍一些常见的Python面试题及其解答。
2. 面试题1:Python中如何实现单例模式?在Python中,可以通过使用装饰器或者元类来实现单例模式。
以下是使用装饰器实现单例模式的示例代码:```pythondef singleton(cls):instances = {}def wrapper(*args, **kwargs):if cls not in instances:instances[cls] = cls(*args, **kwargs)return instances[cls]return wrapper@singletonclass MyClass:def __init__(self, name): = namea = MyClass("instance1")b = MyClass("instance2")print() # 输出:instance1print() # 输出:instance1print(a is b) # 输出:True```通过使用装饰器,在创建类实例时会先检查该类是否已经存在实例对象,如果存在则直接返回该对象,如果不存在则创建新的对象并返回。
3. 面试题2:如何在Python中处理异常?在Python中可以使用try-except语句来处理异常。
以下是一个处理文件读取异常的示例代码:```pythontry:file = open("example.txt", "r")content = file.read()file.close()except FileNotFoundError:print("文件不存在")except Exception as e:print("发生了其他异常:", str(e))```在try代码块中,我们尝试打开一个文件并读取内容。
15个Python面试问题(附答案)
15个Python⾯试问题(附答案)问题1到底什么是Python?你可以在回答中与其他技术进⾏对⽐(也⿎励这样做)。
答案下⾯是⼀些关键点:Python是⼀种解释型语⾔。
这就是说,与C语⾔和C的衍⽣语⾔不同,Python代码在运⾏之前不需要编译。
其他解释型语⾔还包括PHP和Ruby。
Python是动态类型语⾔,指的是你在声明变量时,不需要说明变量的类型。
你可以直接编写类似x=111和x="I'm a string"这样的代码,程序不会报错。
Python⾮常适合⾯向对象的编程(OOP),因为它⽀持通过组合(composition)与继承(inheritance)的⽅式定义类(class)。
Python中没有访问说明符(access specifier,类似C++中的public和private),这么设计的依据是“⼤家都是成年⼈了”。
在Python语⾔中,函数是第⼀类对象(first-class objects)。
这指的是它们可以被指定给变量,函数既能返回函数类型,也可以接受函数作为输⼊。
类(class)也是第⼀类对象。
Python代码编写快,但是运⾏速度⽐编译语⾔通常要慢。
好在Python允许加⼊基于C语⾔编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。
numpy就是⼀个很好地例⼦,它的运⾏速度真的⾮常快,因为很多算术运算其实并不是通过Python实现的。
Python⽤途⾮常⼴泛——⽹络应⽤,⾃动化,科学建模,⼤数据应⽤,等等。
它也常被⽤作“胶⽔语⾔”,帮助其他语⾔和组件改善运⾏状况。
Python让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设计,⽽不⽤处理底层的细节。
为什么提这个问题:如果你应聘的是⼀个Python开发岗位,你就应该知道这是门什么样的语⾔,以及它为什么这么酷。
以及它哪⾥不好。
问题2补充缺失的代码def print_directory_contents(sPath):"""这个函数接受⽂件夹的名称作为输⼊参数,返回该⽂件夹中⽂件的路径,以及其包含⽂件夹中⽂件的路径。
python面试题——框架和其他(132题)
python⾯试题——框架和其他(132题)⼀、框架对⽐(1)django、flask、tornado框架的⽐较?Django:简单的说Django是⼀个⼤⽽全的Web框架,内置了很多组件,ORM、admin、Form、 ModelForm、中间件、信号和缓存等。
给开发者提⾼了超⾼的开发效率。
Flask:微型的⼩⽽精的Web框架,可扩展性强,内置的组件很少,需要引⼊第三⽅组件实现功能业务,如果开发简单的项⽬,使⽤Flask⽐较快速和⽅便。
如果开发⼤型项⽬,需要引⼊⼤量的第三⽅组件,这时Flask会越来越像Django框架。
基于wsgi协议部署,使⽤werkzeug模块实现此协议,模板系统由 Jinja2提供。
Tornado:是⼀个轻量级的Web框架,少⽽精,性能优越,最出名的就是强⼤的异步⾮阻塞和内置WebSocket功能。
两⼤核⼼模块:1.iostraem:对⾮阻塞式的socket进⾏简单的封装2.ioloop:对I/O多路复⽤的封装,它实现了⼀个单例(2)什么是wsgi?Web服务器⽹关接⼝(Web Server Gateway Interface,缩写为WSGI)是Python应⽤程序或框架和Web服务器之间的⼀种接⼝,是⼀种协议。
实现该协议的模块: wsgiref werkzurg uwsgi除了tornado外其他框架都要利⽤wsgi,都没有⾃⼰写socket,都需要利⽤别⼈已经写好的。
⼆、django框架2、视图相关(1)简述什么是FBV和CBV?FBV(function base views)就是在视图⾥使⽤函数处理请求。
CBV(classbase views)就是在视图⾥使⽤类处理请求。
Python是⼀个⾯向对象的编程语⾔,如果只⽤函数来开发,有很多⾯向对象的优点就错失了(继承、封装、多态)。
所以Django在后来加⼊了Class-Based-View。
可以让我们⽤类写View。
精心整理110道Python面试题(附答案)
精⼼整理110道Python⾯试题(附答案)整理了⼀些Python⾯试题和⾯试简历,如果需要,可以参考学习扫描下⽅公众号回复:⾯试,即可获取⾯试题答案程序员资源社区具体⾯试题如下:1、⼀⾏代码实现1--100之和2、如何在⼀个函数内部修改全局变量3、列出5个python标准库4、字典如何删除键和合并两个字典5、谈下python的GIL6、python实现列表去重的⽅法7、fun(*args,**kwargs)中的*args,**kwargs什么意思?8、python2和python3的range(100)的区别8、python2和python3的range(100)的区别9、⼀句话解释什么样的语⾔能够⽤装饰器?10、python内建数据类型有哪些11、简述⾯向对象中__new__和__init__区别12、简述with⽅法打开处理⽂件帮我我们做了什么?13、列表[1,2,3,4,5],请使⽤map()函数输出[1,4,9,16,25],并使⽤列表推导式提取出⼤于10的数,最终输出[16,25]14、python中⽣成随机整数、随机⼩数、0--1之间⼩数⽅法15、避免转义给字符串加哪个字母表⽰原始字符串?16、<div class='nam'>中国</div>,⽤正则匹配出标签⾥⾯的内容(“中国”),其中class的类名是不确定的17、python中断⾔⽅法举例18、数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复⾏,请写sql语句19、10个Linux常⽤命令20、python2和python3区别?列举5个21、列出python中可变数据类型和不可变数据类型,并简述原理22、s = 'ajldjlajfdljfddd',去重并从⼩到⼤排序输出'adfjl'23、⽤lambda函数实现两个数相乘24、字典根据键从⼩到⼤排序25、利⽤collections库的Counter⽅法统计字符串每个单词出现的次数'kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h'26、字符串a = 'not 404 found 张三 99 深圳',每个词中间是空格,⽤正则过滤掉英⽂和数字,最终输出'张三深圳'27、filter⽅法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]28、列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]29、正则plie作⽤30、a=(1,)b=(1),c=('1') 分别是什么类型的数据?31、两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]32、⽤python删除⽂件和⽤linux命令删除⽂件⽅法33、log⽇志中,我们需要⽤时间戳记录error,warning等的发⽣时间,请⽤datetime模块打印当前时间戳 “2018-04-01 11:38:54”34、数据库优化查询⽅法35、请列出你会的任意⼀种统计图(条形图、折线图等)绘制的开源库,第三⽅也⾏36、写⼀段⾃定义异常代码37、正则表达式匹配中,(.*)和(.*?)匹配区别?38、简述Django的orm39、[[1,2],[3,4],[5,6]]⼀⾏代码展开该列表,得出[1,2,3,4,5,6]40、x='abc',y='def',z=['d','e','f'],分别求出x.join(y)和x.join(z)返回的结果41、举例说明异常模块中try except else finally的相关意义42、python中交换两个数值43、举例说明zip()函数⽤法44、a='张明 98分',⽤re.sub,将98替换为10045、写5条常⽤sql语句46、a='hello'和b='你好'编码成bytes类型47、[1,2,3]+[4,5,6]的结果是多少?48、提⾼python运⾏效率的⽅法49、简述mysql和redis区别50、遇到bug如何处理51、正则匹配,匹配⽇期2018-03-2052、list=[2,3,5,4,9,6],从⼩到⼤排序,不许⽤sort,输出[2,3,4,5,6,9]53、写⼀个单列模式54、保留两位⼩数55、求三个⽅法打印结果56、列出常见的状态码和意义57、分别从前端、后端、数据库阐述web项⽬的性能优化58、使⽤pop和del删除字典中的'name'字段,dic={'name':'zs','age':18}59、列出常见MYSQL数据存储引擎60、计算代码运⾏结果,zip函数历史⽂章已经说了,得出[('a',1),('b',2),('c',3),('d',4),('e',5)]61、简述同源策略62、简述cookie和session的区别63、简述多线程、多进程64、简述any()和all()⽅法65、IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常66、python中copy和deepcopy区别67、列出⼏种魔法⽅法并简要介绍⽤途68、C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令⾏启动程序并传参,print(sys.argv)会输出什么数据?69、请将[i for i in range(3)]改成⽣成器70、a = ' hehheh ',去除收尾空格71、举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]72、对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使⽤lambda函数从⼩到⼤排序73、使⽤lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从⼩到⼤,负数从⼤到⼩(传两个条件,x<0和abs(x))74、列表嵌套字典的排序,分别根据年龄和姓名排序75、列表嵌套元组,分别按字母和数字排序76、列表嵌套列表排序,年龄数字相同怎么办?77、根据键对字典排序(⽅法⼀,zip函数)78、根据键对字典排序(⽅法⼆,不⽤zip)79、列表推导式、字典推导式、⽣成器80、最后出⼀道检验题⽬,根据字符串长度排序,看排序是否灵活运⽤81、举例说明SQL注⼊和解决办法82、s='info:xiaoZhang 33 shandong',⽤正则切分字符串输出['info', 'xiaoZhang', '33','shandong']83、正则匹配以结尾的邮箱84、递归求和85、python字典和json字符串相互转化⽅法86、MyISAM 与 InnoDB 区别:87、统计字符串中某字符出现次数88、字符串转化⼤⼩写89、⽤两种⽅法去空格90、正则匹配不是以4和7结尾的⼿机号91、简述python引⽤计数机制92、int('1.4'),int(1.4)输出结果?93、列举3条以上PEP8编码规范94、正则表达式匹配第⼀个URL95、正则匹配中⽂96、简述乐观锁和悲观锁97、r、r+、rb、rb+⽂件打开模式区别98、Linux命令重定向 > 和 >>99、正则表达式匹配出<html><h1></h1></html>100、python传参数是传值还是传址?101、求两个列表的交集、差集、并集102、⽣成0-100的随机数103、lambda匿名函数好处104、常见的⽹络传输协议105、单引号、双引号、三引号⽤法106、python垃圾回收机制107、HTTP请求中get和post区别108、python中读取Excel⽂件的⽅法109、简述多线程、多进程110、python正则中search和match。
python简单面试题
python简单⾯试题 在这个即将进⼊⾦9银10的跳槽季节的时候,肯定需要⼀波⾯试题了,安静总结了⼀些经常遇到的python⾯试题,让我们⼀起撸起来。
python⾯试题1、求出1-100之间的和# coidng:utf-8a = 0for i in range(0,100):a += (i+1)print(a)5050# 也可以使⽤函数sumsum = sum(range(1,101))print(sum)50502、冒泡排序a = [1,6,4,2,67,32]l = len(a)for i in range(l):for j in range(l-1):if a[l-j-1]<a[l-j-2]:a[l-j-1],a[l-j-2] = a[l-j-2],a[l-j-1]for i in range(l):print(a[i])# 代码结果124632673、数字排序⼀看就是冒泡排序。
这次我们⽤函数a = [1,6,4,2,67,32]m = sorted(a)print(m)# 代码结果[1, 2, 4, 6, 32, 67]# 也可通过其他函数a.sort()4、写出常⽤的python库我们做测试的常⽤的肯定是与测试有关的喽requests--接⼝⾃动化selenium--web的UI⾃动化appium--app的UI⾃动化re ---正则表达式5、python的数据类型整型--int字符串--str列表--list元组--tuple字典--dict6、python2与python3的区别安静来看python2和python3的最⼤区别就是编码问题了python2中使⽤ascii编码,python3中使⽤utf-8编码7、python的可变数据类型和不可变数据类型不可变数据类型:数值型、字符串型string和元组tuple不允许变量的值发⽣变化,如果改变了变量的值,相当于是新建了⼀个对象可变数据类型:列表list和字典dict;允许变量的值发⽣变化,即如果对变量进⾏append、+=等这种操作后,只是改变了变量的值,⽽不会新建⼀个对象,变量引⽤的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有⾃⼰的地址,相当于内存中对于同值的对象保存了多份,这⾥不存在引⽤计数,是实实在在的对象。
常见的35个Python面试题及答案
常见的35个Python⾯试题及答案1. Python ⾯试问题及答案作为⼀个 Python 新⼿,你必须熟悉基础知识。
在本⽂中我们将讨论⼀些 Python ⾯试的基础问题和⾼级问题以及答案,以帮助你完成⾯试。
包括Python 开发问题、编程问题、数据结构问题、和 Python 脚本问题。
让我们来深⼊研究这些问题Python ⾯试问题Q.1. Python 的特点和优点是什么?Python 可以作为编程的⼊门语⾔,因为他具备以下特质:1. 解释性2. 动态特性3. ⾯向对象4. 语法简洁5. 开源6. 丰富的社区资源Q.2. 深拷贝和浅拷贝的区别是什么?深拷贝是将对象本⾝复制给另⼀个对象。
这意味着如果对对象的副本进⾏更改时不会影响原对象。
在 Python 中,我们使⽤ deepcopy()函数进⾏深拷贝,使⽤⽅法如下:深拷贝-Python ⾯试问题及答案浅拷贝是将对象的引⽤复制给另⼀个对象。
因此,如果我们在副本中进⾏更改,则会影响原对象。
使⽤ copy()函数进⾏浅拷贝,使⽤⽅法如下:浅拷贝—Python ⾯试问题及答案Q.3. 列表和元祖有什么不同?主要区别在于列表是可变的,元祖是不可变的。
看下⾯的例⼦:会出现以下错误提⽰:TypeError: ‘tuple’ object does not support item assignment2. Python ⾯试基础题Q.4 到 Q.20 是新⼿经常会被问到的⼀些 Python 基础题,有经验的⼈也可以参考这些问题来复习这些概念。
Q.4. 解释 Python 中的三元表达式与 C++不同, 在 Python 中我们不需要使⽤ ? 符号,⽽是使⽤如下语法:[on true] if [expression]else [on false]如果 [expression] 为真, 则 [on true] 部分被执⾏。
如果表⽰为假则 [on false] 部分被执⾏下⾯是例⼦:2HiQ.5. Python 中如何实现多线程?线程是轻量级的进程,多线程允许⼀次执⾏多个线程。
Python面试中可能会被问到的30个问题
Python⾯试中可能会被问到的30个问题第⼀家公司问的题⽬1 简述解释型和编译型编程语⾔?解释型语⾔编写的程序不需要编译,在执⾏的时候,专门有⼀个解释器能够将VB语⾔翻译成机器语⾔,每个语句都是执⾏的时候才翻译。
这样解释型语⾔每执⾏⼀次就要翻译⼀次,效率⽐较低。
⽤编译型语⾔写的程序执⾏之前,需要⼀个专门的编译过程,通过编译系统,把源⾼级程序编译成为机器语⾔⽂件,翻译只做了⼀次,运⾏时不需要翻译,所以编译型语⾔的程序执⾏效率⾼,但也不能⼀概⽽论,部分解释型语⾔的解释器通过在运⾏时动态优化代码,甚⾄能够使解释型语⾔的性能超过编译型语⾔。
2 Python解释器种类以及特点?CPython当从Python官⽅⽹站下载并安装好Python2.7后,就直接获得了⼀个官⽅版本的解释器:Cpython,这个解释器是⽤C语⾔开发的,所以叫CPython,在命名⾏下运⾏python,就是启动CPython解释器,CPython是使⽤最⼴的Python解释器。
IPythonIPython是基于CPython之上的⼀个交互式解释器,也就是说,IPython只是在交互⽅式上有所增强,但是执⾏Python代码的功能和CPython 是完全⼀样的,好⽐很多国产浏览器虽然外观不同,但内核其实是调⽤了IE。
PyPyPyPy是另⼀个Python解释器,它的⽬标是执⾏速度,PyPy采⽤JIT技术,对Python代码进⾏动态编译,所以可以显著提⾼Python代码的执⾏速度。
JythonJython是运⾏在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执⾏。
IronPythonIronPython和Jython类似,只不过IronPython是运⾏在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
在Python的解释器中,使⽤⼴泛的是CPython,对于Python的编译,除了可以采⽤以上解释器进⾏编译外,技术⾼超的开发者还可以按照⾃⼰的需求⾃⾏编写Python解释器来执⾏Python代码,⼗分的⽅便!3 位和字节的关系?bit就是位,也叫⽐特位,是计算机表⽰数据最⼩的单位byte就是字节1byte=8bit1byte就是1B⼀个字符=2字节1KB=1024B字节就是Byte,也是B位就是bit也是b转换关系如下:1)1KB=1024B1B= 8b4 请⾄少列举5个 PEP8 规范(越多越好)。
Python经典面试题详解(共53题)
Python经典⾯试题详解(共53题)Python 经典⾯试题详解(共53题)1. 列表(list)和元组(tuple)有什么区别?在我每⼀次应聘Python数据科学家的⾯试中,这个问题都会被问到。
所以对这个问题的答案,我可以说是了如指掌。
列表是可变的。
创建后可以对其进⾏修改。
元组是不可变的。
元组⼀旦创建,就不能对其进⾏更改。
列表表⽰的是顺序。
它们是有序序列,通常是同⼀类型的对象。
⽐如说按创建⽇期排序的所有⽤户名,如["Seth", "Ema", "Eli"]。
元组表⽰的是结构。
可以⽤来存储不同数据类型的元素。
⽐如内存中的数据库记录,如(2, "Ema", "2020–04–16")(#id, 名称,创建⽇期)。
2. 如何进⾏字符串插值?在不导⼊Template类的情况下,有3种⽅法进⾏字符串插值。
3. “is”和“==”有什么区别?在我的Python职业⽣涯的早期,我认为它们是相同的,因⽽制造了⼀些bug。
所以请⼤家听好了,“is”⽤来检查对象的标识(id),⽽“==”⽤来检查两个对象是否相等。
我们将通过⼀个例⼦说明。
创建⼀些列表并将其分配给不同的名字。
请注意,下⾯的b指向与a相同的对象。
下⾯来检查是否相等,你会注意到结果显⽰它们都是相等的。
但是它们具有相同的标识(id)吗?答案是不。
我们可以通过打印他们的对象标识(id)来验证这⼀点。
你可以看到:c和a和b具有不同的标识(id)。
4. 什么是装饰器(decorator)?这是每次⾯试我都会被问到的另⼀个问题。
它本⾝就值得写⼀篇⽂章。
如果你能⾃⼰⽤它编写⼀个例⼦,那么说明你已经做好了准备。
装饰器允许通过将现有函数传递给装饰器,从⽽向现有函数添加⼀些额外的功能,该装饰器将执⾏现有函数的功能和添加的额外功能。
我们将编写⼀个装饰器,该装饰器会在调⽤另⼀个函数时记录⽇志。
最常见的35个Python面试题及答案
最常见的-35-个-Python-面试题及答案1. Python中的列表和元组有什么区别?答:列表是可变的,可以修改其元素;而元组是不可变的,不能修改其元素。
2. 什么是Python中的切片操作?答:切片操作是指通过指定起始索引和结束索引来获取列表、元组或字符串中的一部分内容。
3. 如何在Python中反转一个字符串?答:可以使用切片操作[:-1]来反转一个字符串。
4. 如何将一个字符串转换为整数?答:可以使用int函数将一个字符串转换为整数。
5. Python中的字典是什么?答:字典是一种无序的数据集合,用于存储键-值对。
6. 如何遍历一个字典?答:可以使用for循环遍历一个字典的键或值,或者使用items方法同时遍历键和值。
7. 如何在Python中打开一个文件并读取其内容?答:可以使用open函数打开一个文件,并使用read方法读取其内容。
8. 如何在Python中写入文本到一个文件?答:可以使用open函数打开一个文件,并使用write方法写入文本内容。
9. Python中的异常处理机制是什么?答:异常处理机制是一种用于捕获和处理程序中可能出现的错误的机制,可以使用try-except语句来实现。
10. 如何在Python中自定义一个异常?答:可以通过继承Exception类来自定义一个异常。
11. 什么是模块和包?答:模块是一个包含Python代码的文件,而包是一个包含多个模块的文件夹。
12. 如何在Python中导入一个模块或包?答:可以使用import语句导入一个模块或包。
13. 如何在Python中定义一个函数?答:可以使用def关键字来定义一个函数。
14. 什么是lambda函数?答:lambda函数是一种匿名函数,可以在一行代码中定义函数。
15. 如何在Python中对列表进行排序?答:可以使用sort方法对列表进行原地排序,或者使用sorted函数创建一个新的排序后的列表。
python常见面试题
python常见面试题Python是一种高级编程语言,近年来在软件开发领域广泛应用。
对于求职者来说,熟练掌握Python相关知识是一项有竞争力的优势。
在面试过程中,常常会涉及到一些与Python相关的面试题。
本文将介绍一些常见的Python面试题,并给出详细的解答。
1. 请简要解释Python的GIL是什么,并说明它的作用。
Python的GIL(Global Interpreter Lock)是Python解释器中的一个特性,它的作用是在同一时间只允许一个线程执行Python字节码。
这意味着在多线程环境下,Python无法同时利用多个CPU核心来执行计算密集型任务。
然而,对于IO密集型任务,GIL不会成为性能瓶颈。
2. 请解释Python中的装饰器是什么,并给出一个具体的示例。
装饰器是一种语法糖,它可以用于修改函数的行为,而无需修改其源代码。
具体而言,装饰器是一个用来修饰函数的函数,它接受一个函数作为参数,并返回一个新的函数。
以下是一个装饰器的示例:```pythondef logger(func):def wrapper(*args, **kwargs):print(f"Calling function: {func.__name__}")return func(*args, **kwargs)return wrapper@loggerdef hello(name):print(f"Hello, {name}!")hello("Alice")```输出结果为:```Calling function: helloHello, Alice!```装饰器`logger`将在调用`hello`函数前打印函数名,从而实现了对`hello`函数的修饰。
3. 请解释Python中的生成器是什么,并给出一个具体的示例。
生成器是一种特殊的迭代器,它可以以惰性的方式生成数据,从而减少内存消耗。
python面试题目及答案
python面试题目及答案1. 介绍Python的特点及其优缺点Python是一种高级、通用、解释型的编程语言,具有以下特点: - 简单易学:Python语法简洁清晰,易于上手学习。
- 开源免费:Python使用者可以免费获取到源代码并进行修改和发布。
- 跨平台:Python可以在各种操作系统上运行,包括Windows、MacOS、Linux等。
- 面向对象:Python支持面向对象编程的方法,提供了类、继承、多态等特性。
- 强大的标准库:Python拥有丰富的标准库和第三方库,可用于各种开发需求。
- 动态性:Python是一种动态语言,变量无需声明类型,可随时修改和使用。
Python的优点包括语法简洁清晰、生态系统丰富、开发效率高等;缺点则包括性能较低、全局解释器锁(GIL)对多线程性能有一定影响等。
2. 什么是Python中的GIL?GIL(Global Interpreter Lock,全局解释器锁)是Python解释器中的一个机制,用于保护Python解释器内部的数据结构,以防止多线程并发访问时出现不一致的情况。
由于GIL的存在,同一时刻只能有一个线程在解释器中执行字节码指令,这限制了Python在多核CPU上的并行性能。
因此,对于CPU 密集型的任务,Python多线程并不能真正实现并行加速,但对于I/O密集型任务,多线程可以提高执行效率。
最新版本的Python中引入了全局解释器锁的替代方案,即GIL的改进,以提升多线程性能。
3. Python中如何实现多线程?在Python中实现多线程的主要方式有两种:使用threading模块和使用concurrent.futures模块。
- 使用threading模块:```pythonimport threadingdef task():# 线程执行的任务逻辑# 创建线程t = threading.Thread(target=task)# 启动线程t.start()# 等待线程执行完毕t.join()```- 使用concurrent.futures模块(适用于Python3版本):```pythonfrom concurrent.futures import ThreadPoolExecutordef task():# 线程执行的任务逻辑# 创建线程池executor = ThreadPoolExecutor(max_workers=5)# 提交任务给线程池future = executor.submit(task)# 获取任务结果result = future.result()```4. 解释一下Python中的装饰器是什么,如何使用?装饰器是Python中的一种语法糖,通过在不修改被装饰函数源代码的情况下,为函数添加额外的功能或者修改其行为。
最常见的 35 个 Python 面试题及答案
最常见的35 个Python 面试题及答案(2018 版)1. Python 面试问题及答案作为一个Python 新手,你必须熟悉基础知识。
在本文中我们将讨论一些Python 面试的基础问题和高级问题以及答案,以帮助你完成面试。
包括Python 开发问题、编程问题、数据结构问题、和Python 脚本问题。
让我们来深入研究这些问题Python 面试问题Q.1. Python 的特点和优点是什么?Python 可以作为编程的入门语言,因为他具备以下特质:1. 解释性2. 动态特性3. 面向对象4. 语法简洁5. 开源6. 丰富的社区资源实际上Python 的优点远不止这些,更详细的介绍可以阅读Introduction to Python (https://data-flair.training/blogs/python-tutorial/)Q.2. 深拷贝和浅拷贝的区别是什么?深拷贝是将对象本身复制给另一个对象。
这意味着如果对对象的副本进行更改时不会影响原对象。
在Python 中,我们使用deepcopy()函数进行深拷贝,使用方法如下:深拷贝-Python 面试问题及答案浅拷贝是将对象的引用复制给另一个对象。
因此,如果我们在副本中进行更改,则会影响原对象。
使用copy()函数进行浅拷贝,使用方法如下:浅拷贝—Python 面试问题及答案Q.3. 列表和元祖有什么不同?主要区别在于列表是可变的,元祖是不可变的。
看下面的例子:会出现以下错误提示:TypeError: ‘tuple’ object does not support item assignment关于列表和元祖的更多内容参考Tuples vs Lists (https://data-flair.training/blogs/python-tuples-vs-lists/)2. Python 面试基础题Q.4 到Q.20 是新手经常会被问到的一些Python 基础题,有经验的人也可以参考这些问题来复习这些概念。
面试题-Python高级
⾯试题-Python⾼级元类1. Python 中类⽅法、类实例⽅法、静态⽅法有何区别?类⽅法:是类对象的⽅法,在定义时需要在上⽅使⽤“@classmethod”进⾏装饰,形参为cls,表⽰类对象,类对象和实例对象都可调⽤;类实例⽅法:是类实例化对象的⽅法,只有实例对象可以调⽤,形参为self,指代对象本⾝;静态⽅法:是⼀个任意函数,在其上⽅使⽤“@staticmethod”进⾏装饰,可以⽤对象直接调⽤,静态⽅法实际上跟该类没有太⼤关系。
2. Python 中如何动态获取和设置对象的属性?1. if hasattr(Parent,'x'):2. print(getattr(Parent,'x'))3. setattr(Parent,'x',3)4. print(getattr(Parent,'x'))内存管理与垃圾回收机制1. Python 的内存管理机制及调优⼿段?内存管理机制:引⽤计数、垃圾回收、内存池。
引⽤计数:引⽤计数是⼀种⾮常⾼效的内存管理⼿段,当⼀个Python 对象被引⽤时其引⽤计数增加1,当其不再被⼀个变量引⽤时则计数减1. 当引⽤计数等于0 时对象被删除。
垃圾回收:1. 引⽤计数引⽤计数也是⼀种垃圾收集机制,⽽且也是⼀种最直观,最简单的垃圾收集技术。
当Python 的某个对象的引⽤计数降为0 时,说明没有任何引⽤指向该对象,该对象就成为要被回收的垃圾了。
⽐如某个新建对象,它被分配给某个引⽤,对象的引⽤计数变为1。
如果引⽤被删除,对象的引⽤计数为0,那么该对象就可以被垃圾回收。
不过如果出现循环引⽤的话,引⽤计数机制就不再起有效的作⽤了2. 标记清除如果两个对象的引⽤计数都为1,但是仅仅存在他们之间的循环引⽤,那么这两个对象都是需要被回收的,也就是说,它们的引⽤计数虽然表现为⾮0,但实际上有效的引⽤计数为0。
所以先将循环引⽤摘掉,就会得出这两个对象的有效计数。
python面试题目(3篇)
第1篇一、面试背景随着Python语言的不断发展,其在数据分析、人工智能、Web开发等领域的应用越来越广泛。
为了更好地选拔具备Python高级编程能力的人才,我们特制定以下面试题目。
本题目分为理论知识和项目实战两部分,旨在考察应聘者的Python基础知识、编程能力、问题解决能力和项目经验。
二、面试题目第一部分:理论知识1. 请简述Python语言的特点和优势,以及Python在哪些领域应用广泛。
2. 解释Python中的变量、数据类型、运算符、表达式和赋值的概念。
3. 请列举Python中的几种基本数据类型,并说明它们的区别。
4. 解释Python中的列表、元组、字典和集合的区别及使用场景。
5. 请说明Python中的函数定义、调用、参数传递和作用域的概念。
6. 解释Python中的模块、包和import语句的作用。
7. 请简述Python中的异常处理机制,包括try、except、finally等关键字的使用。
8. 解释Python中的多线程和多进程的概念,以及它们在Python中的应用。
9. 请说明Python中的装饰器的作用和实现方式。
10. 解释Python中的面向对象编程(OOP)的概念,包括类、对象、继承、多态等。
11. 请简述Python中的文件操作,包括文件的打开、读取、写入和关闭等。
12. 解释Python中的正则表达式的概念和使用方法。
13. 请说明Python中的列表推导式、生成器、迭代器和with语句的作用。
14. 解释Python中的元类(metaclass)的概念和使用场景。
15. 请简述Python中的动态类型和静态类型的概念。
第二部分:项目实战1. 项目背景:设计一个简单的图书管理系统,实现以下功能:a. 添加图书信息:包括书名、作者、出版社、ISBN、价格等。
b. 删除图书信息:根据ISBN或书名删除图书。
c. 查询图书信息:根据书名、作者、出版社等关键字查询图书。
Python中文件操作的面试题
Python中文件操作的面试题1. Python中如何打开一个文件?A. 使用open()函数,并指定文件名和打开模式。
B. 使用os模块的open()函数,并指定文件名和打开模式。
C. 使用file()函数,并指定文件名和打开模式。
D. 使用open()方法,并指定文件名和打开模式。
正确答案:A和D。
在Python中,你可以使用内置的open()函数或者文件对象的open()方法来打开一个文件。
两者都需要指定文件名和打开模式。
2. Python中如何写入文件?A. 使用write()方法,将内容写入文件。
B. 使用writelines()方法,将内容写入文件。
C. 使用writefile()方法,将内容写入文件。
D. 使用print()函数,将内容写入文件。
正确答案:A。
在Python中,你可以使用文件的write()方法来将内容写入文件。
3. Python中如何读取文件?A. 使用read()方法,读取文件内容。
B. 使用readline()方法,读取文件内容。
C. 使用readlines()方法,读取文件内容。
D. 使用print()函数,读取文件内容。
正确答案:A、B和C。
在Python中,你可以使用文件的read()、readline()或readlines()方法来读取文件内容。
4. Python中如何关闭一个文件?A. 使用close()方法关闭文件。
B. 使用closefile()方法关闭文件。
C. 使用closeline()方法关闭文件。
D. 使用closeall()方法关闭文件。
正确答案:A。
在Python中,你可以使用文件的close()方法来关闭一个文件。
5. Python中如何使用with语句来处理文件?A. with语句可以自动关闭文件,无需调用close()方法。
B. with语句只能用于读取文件,不能用于写入文件。
C. with语句只能用于写入文件,不能用于读取文件。
python面试题及答案
1. Python是如何进展存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三存池机制一、对象的引用计数机制python部使用引用计数,来保持追踪存中的对象,所有对象都有引用计数。
引用计数增加的情况:1,一个对象分配一个新名称2,将其放入一个容器中〔如列表、元组或字典〕引用计数减少的情况:1,使用del语句对对象别名显示的销毁2,引用超出作用域或被重新赋值sys.getrefcount( )函数可以获得对象的当前引用计数多数情况下,引用计数比你猜想得要大得多。
对于不可变数据〔如数字和字符串〕,解释器会在程序的不同局部共享存,以便节约存。
二、垃圾回收1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。
2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。
然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。
〔从而导致存泄露〕。
为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。
三、存池机制Python提供了对存的垃圾收集机制,但是它将不用的存放到存池而不是返回给操作系统。
1,Pymalloc机制。
为了加速Python的执行效率,Python引入了一个存池机制,用于管理对小块存的申请和释放。
2,Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象那么使用系统的malloc。
3,对于Python对象,如整数,浮点数和List,都有其独立的私有存池,对象间不共享他们的存池。
也就是说如果你分配又释放了大量的整数,用于缓存这些整数的存就不能再分配给浮点数。
2. 什么是lambda函数?它有什么好处?答:lambda 表达式,通常是在需要一个函数,但是又不想费心去命名一个函数的场合下使用,也就是指匿名函数lambda函数:首要用途是指点短小的回调函数lambda [arguments]:expression>>> a=lambdax,y:x+y>>> a(3,11)3. Python里面如何实现tuple和list的转换?答:直接使用tuple和list函数就行了,type()可以判断对象的类型4. 请写出一段Python代码实现删除一个list里面的重复元素答:1,使用set函数,set(list)2,使用字典函数,>>>a=[1,2,4,2,4,5,6,5,7,8,9,0]>>> b={}>>>b=b.fromkeys(a)>>>c=list(b.keys())>>> c5. 编程用sort进展排序,然后从最后一个元素开场判断a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]a.sort()last=a[-1]for i inrange(len(a)-2,-1,-1):if last==a[i]:del a[i]else:last=a[i]print(a)6. Python里面如何拷贝一个对象?〔赋值,浅拷贝,深拷贝的区别〕答:赋值〔=〕,就是创立了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
Python面试考题
一,中文单项选择题(30分,每个3分)•1.下列哪个语句在Python中是非法的?A、x = y = z = 1B、x = (y = z + 1)C、x, y = y, xD、x += y•2.关于Python存管理,下列说法错误的是A、变量不必事先声明B、变量无须先创建和赋值而直接使用C、变量无须指定类型D、可以使用del释放资源•3、下面哪个不是Python合法的标识符A、int32B、40XLC、selfD、name•4、下列哪种说法是错误的A、除字典类型外,所有标准对象均可以用于布尔测试B、空字符串的布尔值是FalseC、空列表对象的布尔值是FalseD、值为0的任何数字对象的布尔值是False•5、下列表达式的值为True的是A、5+4j > 2-3jB、3>2>2C、(3,2)< ('a','b')D、’abc’ > ‘xyz’•6、Python不支持的数据类型有A、charB、intC、floatD、list•7、关于Python中的复数,下列说法错误的是A、表示复数的语法是real + image jB、实部和虚部都是浮点数C、虚部必须后缀j,且必须是小写D、方法conjugate返回复数的共轭复数•8、关于字符串下列说法错误的是A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符•9、以下不能创建一个字典的语句是A、dict1 = {}B、dict2 = { 3 : 5 }C、dict3 = {[1,2,3]: “uestc”}D、dict4 = {(1,2,3): “uestc”}•10、下列Python语句正确的是A、min = x if x < y = yB、max = x > y ? x : yC、if (x > y) print xD、while True : pass二,英文单项选择题(30分)• 1.what gets printed? Assuming python version 2.x()print type(1/2)A.<type 'int'>B.<type 'number'>C.<type 'float'>D.<type 'double'>E.<type 'tuple'>• 2. What gets printed?()nums = set([1,1,2,3,3,3,4])print len(nums)A.1B.2C.4D.5E.7• 3. What gets printed?()•counter = 1••def doLotsOfStuff():•• global counter•• for i in (1, 2, 3):• counter += 1••doLotsOfStuff()••print counterA.1B.3C.4D.7E.none of the above• 4. What gets printed?()print r"\nwoow"A.new line then the string: woowB.the text exactly like this: r"\nwoow"C.the text like exactly like this: \nwoowD.the letter r and then newline then the text: woowE.the letter r then the text like this: nwoow• 5. Which numbers are printed?()for i in range(2):print ifor i in range(4,6):print iA.2, 4, 6B.0, 1, 2, 4, 5, 6C.0, 1, 4, 5D.0, 1, 4, 5, 6, 7, 8, 9E.1, 2, 4, 5, 6• 6. What gets printed by the code snippet below?()import mathprint math.floor(5.5)A.5B.5.0C.5.5D.6E.6.0•7. Assuming the filename for the code below is /usr/lib/python/person.py and the program is run as: python /usr/lib/python/person.pyWhat gets printed?()class Person:def __init__(self):passdef getAge(self):print __name__p = Person()p.getAge()A.PersonB.getAger.lib.python.personD.mainE.An exception is thrown•8. What gets printed?()•names1 = ['Amir', 'Barry', 'Chales', 'Dao']••if 'amir' in names1:• print 1•else:• print 2A.1B.2C.An exception is thrown•9. What gets printed?()•numbers = [1, 2, 3, 4]••numbers.append([5,6,7,8])••print len(numbers)A.4B.5C.8D.12E.An exception is thrown•10. What gets printed?()•kvps = { '1' : 1, '2' : 2 }•theCopy = kvps.copy()••kvps['1'] = 5••sum = kvps['1'] + theCopy['1']•print sumA.1B.2C.6D.10E.An exception is thrown三,shell笔试题(15分)文件如下:# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinusbmuxd:x:113:113:usbmuxd user:/:/sbin/nologinvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinrpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologinrtkit:x:499:497:RealtimeKit:/proc:/sbin/nologinavahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologingdm:x:42:42::/var/lib/gdm:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinapache:x:48:48:Apache:/var/:/sbin/nologinsaslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinpulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologinneil:x:500:500::/home/neil:/bin/bashtest:x:501:501::/home/test:/bin/bashyulian:x:503:503::/home/yulian:/bin/bashpuppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinjboss:x:504:504::/home/jboss:/bin/bashmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashrelease:x:505:505::/home/release:/bin/bashredis:x:496:493:Redis Server:/var/lib/redis:/sbin/nologinmongodb:x:184:492:MongoDB Database Server:/var/lib/mongodb:/sbin/nologinfang:x:506:506::/home/fang:/bin/bashroundup:x:495:491:Roundup Issue Tracker:/var/lib/roundup:/sbin/nologinexim:x:93:93::/var/spool/exim:/sbin/nologindial:x:507:507::/home/dial:/bin/bashshare:x:508:508::/home/share:/bin/bash请打印出用户目录在/home下面的的用户目录,如下/home/neil/home/test/home/yulian/home/jboss/home/release/home/fang/home/dial/home/share建议一行搞定。
python的基础面试问题
python的基础面试问题Here are some basic Python interview questions along with their translations into Chinese:1.What is Python? Python是什么?2.What are the key features of Python? Python的主要特性是什么?3.What is PEP 8? PEP 8是什么?4.Explain the difference between == and is in Python. 解释一下Python中==和is的区别。
5.What are the different data types in Python? Python中有哪些不同的数据类型?6.What is the difference between lists and tuples inPython? Python中列表和元组的区别是什么?7.How do you handle exceptions in Python? 你如何在Python中处理异常?8.Explain the concept of inheritance in Python. 解释一下Python中的继承的概念。
9.What is a lambda function in Python? Python中的lambda函数是什么?10.How do you open and close a file in Python? 你如何在Python中打开和关闭文件?11.What is the difference between append() and extend()methods for lists in Python? 在Python中,append()和extend()方法在列表中有什么区别?12.Explain the use of decorators in Python. 解释一下Python 中装饰器的用法。
python高级面试题
python高级面试题1. 面试题一:解释Python中的深拷贝和浅拷贝的区别。
在Python中,深拷贝和浅拷贝是用于复制对象的不同方法。
浅拷贝是创建一个新的对象,但它只是复制了对象的引用。
这意味着当我们修改原始对象时,浅拷贝也会受到影响。
浅拷贝使用`copy()`函数来实现,或者使用切片操作符[:]。
深拷贝是创建一个完全独立的新对象,包括其所有嵌套的对象。
这意味着当我们修改原始对象时,深拷贝不会受到影响。
深拷贝使用`deepcopy()`函数来实现,该函数在`copy`模块中。
2. 面试题二:解释Python中的GIL(全局解释锁)。
GIL是Python解释器中的一个机制,它限制了同一时间只能有一个线程执行Python字节码的能力。
这实际上意味着在多线程的情况下,Python无法实现真正的并行。
GIL是由于CPython解释器的设计决策而产生的。
CPython是Python的参考实现,因此在CPython中,GIL是默认启用的。
但是,其他Python解释器(如Jython和IronPython)可以在没有GIL的情况下实现真正的并行。
GIL在处理IO密集型任务时通常没有太大影响,但在处理CPU密集型任务时,GIL可能会成为性能的瓶颈。
为了充分利用多核处理器,可以考虑使用多进程、多线程(并发)或者使用其他Python解释器。
3. 面试题三:解释Python中的装饰器是什么,以及它们的作用。
装饰器是Python中一种特殊的语法结构,用于修改、扩展或包装函数或类的功能。
装饰器允许我们在不修改原始函数或类代码的情况下,添加额外的功能。
在Python中,装饰器是通过在定义函数或类之前使用@符号,后跟装饰器函数或类来实现的。
装饰器函数接受一个函数或者类作为参数,并返回修改后的函数或类。
装饰器的作用有很多,例如:- 实现日志记录功能,记录函数或类的调用日志;- 实现性能分析功能,测量函数或类的执行时间;- 实现权限控制功能,只允许有特定权限的用户访问某些函数或类;- 实现缓存功能,提高函数或类的执行效率等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一,中文单项选择题(30分,每个3分)•1.下列哪个语句在Python中是非法的?A、x = y = z = 1B、x = (y = z + 1)C、x, y = y, xD、x += y•2.关于Python存管理,下列说法错误的是A、变量不必事先声明B、变量无须先创建和赋值而直接使用C、变量无须指定类型D、可以使用del释放资源•3、下面哪个不是Python合法的标识符A、int32B、40XLC、selfD、name•4、下列哪种说法是错误的A、除字典类型外,所有标准对象均可以用于布尔测试B、空字符串的布尔值是FalseC、空列表对象的布尔值是FalseD、值为0的任何数字对象的布尔值是False•5、下列表达式的值为True的是A、5+4j > 2-3jB、3>2>2C、(3,2)< ('a','b')D、’abc’ > ‘xyz’•6、Python不支持的数据类型有A、charB、intC、floatD、list•7、关于Python中的复数,下列说法错误的是A、表示复数的语法是real + image jB、实部和虚部都是浮点数C、虚部必须后缀j,且必须是小写D、方法conjugate返回复数的共轭复数•8、关于字符串下列说法错误的是A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符•9、以下不能创建一个字典的语句是A、dict1 = {}B、dict2 = { 3 : 5 }C、dict3 = {[1,2,3]: “uestc”}D、dict4 = {(1,2,3): “uestc”}•10、下列Python语句正确的是A、min = x if x < y = yB、max = x > y ? x : yC、if (x > y) print xD、while True : pass二,英文单项选择题(30分)• 1.what gets printed? Assuming python version 2.x()print type(1/2)A.<type 'int'>B.<type 'number'>C.<type 'float'>D.<type 'double'>E.<type 'tuple'>• 2. What gets printed?()nums = set([1,1,2,3,3,3,4])print len(nums)A.1B.2C.4D.5E.7• 3. What gets printed?()•counter = 1••def doLotsOfStuff():••global counter••for i in (1, 2, 3):•counter += 1••doLotsOfStuff()••print counterA.1B.3C.4D.7E.none of the above• 4. What gets printed?()print r"\nwoow"A.new line then the string: woowB.the text exactly like this: r"\nwoow"C.the text like exactly like this: \nwoowD.the letter r and then newline then the text: woowE.the letter r then the text like this: nwoow• 5. Which numbers are printed?()for i in range(2):print ifor i in range(4,6):print iA.2, 4, 6B.0, 1, 2, 4, 5, 6C.0, 1, 4, 5D.0, 1, 4, 5, 6, 7, 8, 9E.1, 2, 4, 5, 6• 6. What gets printed by the code snippet below?()import mathprint math.floor(5.5)A.5B.5.0C.5.5D.6E.6.0•7. Assuming the filename for the code below is /usr/lib/python/person.py and the program is run as: python /usr/lib/python/person.pyWhat gets printed?()class Person:def __init__(self):passdef getAge(self):print __name__p = Person()p.getAge()A.PersonB.getAger.lib.python.personD.mainE.An exception is thrown•8. What gets printed?()•names1 = ['Amir', 'Barry', 'Chales', 'Dao']••if 'amir' in names1:•print 1•else:•print 2A.1B.2C.An exception is thrown•9. What gets printed?()•numbers = [1, 2, 3, 4]••numbers.append([5,6,7,8])••print len(numbers)A.4B.5C.8D.12E.An exception is thrown•10. What gets printed?()•kvps = { '1' : 1, '2' : 2 }•theCopy = kvps.copy()••kvps['1'] = 5••sum = kvps['1'] + theCopy['1']•print sumA.1B.2C.6D.10E.An exception is thrown三,shell笔试题(15分)文件如下:# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinusbmuxd:x:113:113:usbmuxd user:/:/sbin/nologinvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinrpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologinrtkit:x:499:497:RealtimeKit:/proc:/sbin/nologinavahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologingdm:x:42:42::/var/lib/gdm:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinapache:x:48:48:Apache:/var/:/sbin/nologinsaslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinpulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologinneil:x:500:500::/home/neil:/bin/bashtest:x:501:501::/home/test:/bin/bashyulian:x:503:503::/home/yulian:/bin/bashpuppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinjboss:x:504:504::/home/jboss:/bin/bashmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashrelease:x:505:505::/home/release:/bin/bashredis:x:496:493:Redis Server:/var/lib/redis:/sbin/nologinmongodb:x:184:492:MongoDB Database Server:/var/lib/mongodb:/sbin/nologin fang:x:506:506::/home/fang:/bin/bashroundup:x:495:491:Roundup Issue Tracker:/var/lib/roundup:/sbin/nologinexim:x:93:93::/var/spool/exim:/sbin/nologindial:x:507:507::/home/dial:/bin/bashshare:x:508:508::/home/share:/bin/bash请打印出用户目录在/home下面的的用户目录,如下/home/neil/home/test/home/yulian/home/jboss/home/release/home/fang/home/dial/home/share建议一行搞定。