本文搜集、整理了python测试岗位面试常见问题。

1.下列哪个语句在Python中是非法的?

A、x = y = z =1 B、x = (y = z 1)

C、x, y = y, x D、x = y

答案:B

2.关于Python内存管理,下列说法错误的是

A、变量不必事先声明 B、变量无须先创建和赋值而直接使用

C、变量无须指定类型 D、可以使用del释放资源

答案:B. (不先赋值会报错,is not defined)

3、下面哪个不是Python合法的标识符

A、int32 B、40XL C、self D、name

答案:B(合法的标识符不能以数字开头)

4、下列哪种说法是错误的

A、除字典类型外,所有标准对象均可以用于布尔测试

B、空字符串的布尔值是False

C、空列表对象的布尔值是False

D、值为0的任何数字对象的布尔值是False

答案:D (a=0,0, bool(a)为True)

5、下列表达式的值为True的是

A、5 4j >2-3j B、3>2>2

C、(3,2) ‘xyz’

答案:C (在Py2.x版本中正确,在Py3.x运行错误)

6、Python不支持的数据类型有

A、char B、int C、float D、list

答案:A(python里无char型数据,有string字符串类型;但C语言中有char数据类型)

7、关于Python中的复数,下列说法错误的是

A、表示复数的语法是real imagej B、实部和虚部都是浮点数

C、虚部必须后缀j,且必须是小写 D、方法conjugate返回复数的共轭复数

答案:C(复数虚部的后缀也可以是大写的J)

8、关于字符串下列说法错误的是

A、字符应该视为长度为1的字符串

B、字符串以\0标志字符串的结束

C、既可以用单引号,也可以用双引号创建字符串

D、在三引号字符串中可以包含换行回车等特殊字符

答案:B(python因为字符串有长度限制,到了长度就标志字符串的结束)

9、以下不能创建一个字典的语句是

A、dict1 = {} B、dict2 = { 3 : 5 }

C、dict3 ={[1,2,3]: “uestc”} D、dict4 = {(1,2,3): “uestc”}

答案:C(字典的键必须是不变的,而列表是可变的)

10、下列Python语句正确的是:

A、min = x if x< y = y

B、max = x > y ?x:y

C、if (x >y) print x

D、while True :pass

答案:D

python常见的命令行交互自动化模块有哪些?

答案:a)Import module

b) Import module1,module2

c) From module import *

d) Frommodule import m1,m2,m3

e) From module import logger asmodule_logger

12.python的底层网络交互模块有哪些?

答案:socket, urllib,urllib3 , requests, grab, pycurl

13.python网络交互时,二进制打包解包的模块有哪些

打包:pack(), 解包:upk()

14.python的测试框架有哪些?试列出常用的3个或更多

答案:unittest, nose,unittest2, doctest, pytest

15.一行把[1,2,3,1,2,3] 中的重复元素剔除。

答案:list(set([1,2,3,1,2,3]))

16.现在要你使用pyDes(DES加密)和标准库中的namedtuple,假设你之前没有接触过,你如何快速上手?

答案:仔细阅读官方文档中namedtuple库和pyDes的使用。下载pyDes和namedtuple库,借鉴网上的使用教程,摸索实践。

17.Python到底是什么样的语言?你可以比较其他技术或者语言来回答你的问题。

这里是一些关键点:Python是解释型语言。这意味着不像C和其他语言,Python运行前不需要编译。其他解释型语言包括PHP和Ruby。

Python是动态类型的,这意味着你不需要在声明变量时指定类型。你可以先定义x=111,然后 x=”I’m a string”,一点问题也不会有。

Python是面向对象语言,所有允许定义类并且可以继承和组合。Python没有访问访问标识如在C 中的public, private, 这就非常信任程序员的素质,相信每个程序员都是“成人”了~

在Python中,函数是一等公民。这就意味着它们可以被赋值,从其他函数返回值,并且传递函数对象。类不是一等公民。

写Python代码很快,但是跑起来会比编译型语言慢。幸运的是,Python允许使用C扩展写程序,所以瓶颈可以得到处理。Numpy库就是一个很好例子,因为很多代码不是Python直接写的,所以运行很快。

Python使用场景很多 – web应用开发,自动化,科学建模,大数据应用,等等。它也经常被看做“胶水”语言,使得不同语言间可以衔接上。

Python能够简化工作 ,使得程序员能够关心如何重写代码而不是详细看一遍底层实现。

18.Python和多线程,是不是个好主意?列举你觉得可以让Python代码并行运行的方法?

Python实际上不允许多线程。它有一个threading包但是如果你想加快代码运行速度,或者想并行运行,这不是一个好主意。Python有一个机制叫全局解释器锁(GIL)。GIL保证每次只有一个线程在解释器中跑。一个线程获得GIL,之后再交给下一个线程。所以,看起来是多个线程在同时跑,但是实际上每个时刻只有CPU核在跑一个线程,没有真正利用多个CPU核跑多个线程。就是说,多个线程在抢着跑一个CPU核。

但是还是有使用threading包的情况的。比如你真的想跑一个可以线程间抢占的程序,看起来是并行的。或者有很长时间的IO等待线程,这个包就会有用。但是threading包不会使用多核去跑代码。

真正的多核多线程可以通过多进程,一些外部库如Spark和Hadoop,或者用Python代码去调用C方法等等来实现

19.你怎么对你的代码进行跟踪,协同写代码?

使用版本控制:git

20.下面这段代码的输出是什么

def f(x,l=[]):

for i in range(x):

l.append(i*i)

print(l)

f(2)

f(3,[3,2,1])

f(3)1

2

3

4

5

6

7

8

[0, 1]

[3, 2, 1, 0, 1, 4]

[0, 1, 0, 1, 4]

因为Python内存还是存了第一次残留的l值,所以它以0和1开头。

21.猴子补丁是什么?它是不是一个好主意?

猴子补丁是在一个函数或者对象已经存在的基础上,改变它的行为。比如:

import datetime

datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12)1

2

大多数时候这不是一个好主意 – 如果早就设计好,不是更好?一个可以使用猴子补丁的地方是做测试,著名的包mock,就是一个很好的例子。

22.*args, **kwargs是什么东西? 我们为什么会用它?

我们用 args 当我们不知道要有多少个参数传给函数,或者我们想把一个列表或者tuple存起来以后传给函数。我们用**kwargs当我们不知道有多少个关键字参数要传给函数,或者我们想把字典存起来以后传给函数。args 和 kwargs的名字是以前遗留下来的,你用bob 和**billy也没关系但是这样不太好,嘿嘿。

23.@classmethod, @staticmethod, @property都是什么意思?

修饰器的概念要懂。拿到一个函数,返回一个函数,或者拿到一个类,返回另一个类。

@my_decorator

def my_func(stuff):

do_things1

2

3

以上代码相当于:

def my_func(stuff):

do_things

my_func = my_decorator(my_func)1

2

3

你可以在这里找到修饰器的一般用法。

@classmethod, @staticmethod 和 @property修饰器是使用在类中的。

24.简介地描述下Python的垃圾回收机制

这里可以说许多东西,有几个重点你可以提到:

Python在内存中维护对象的引用次数。如果一个对象的引用次数变为0,垃圾回收机制会回收这个对象作为他用。

有时候会有“引用循环”的事情发生。垃圾回收器定期检查回收内存。一个例子是,如果你有两个对象 o1 和 o2,并且o1.x == o2 and o2.x == o1. 如果 o1 和 o2 都没有被其他对象使用,那么它们都不应该存在。但是它们的应用次数都是1,垃圾回收不会起作用。

一些启发算法可以用来加速垃圾回收。比如,最近创建的对象更可能是无用的。用创建时间来度量对象的生命时长,生命越长,越可能是更有用的对象。

CPython的说明文档中有相关解释。

25.python中有哪些基础类型

有5个标准数据库类型:Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典)

26.python里面的深拷贝,浅拷贝

在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。

浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制

深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。

1,深浅拷贝都是对源对象的复制,占用不同的内存空间。

2,不可变类型的对象,对于深浅拷贝毫无影响,最终的地址值和值都是相等的。

3,可变类型:

=浅拷贝: 值相等,地址相等

copy浅拷贝:值相等,地址不相等

deepcopy深拷贝:值相等,地址不相等

27.实现一个字典数据结果的深拷贝

copy浅拷贝

deepcopy深拷贝

from copy import deepcopy

深拷贝和浅拷贝的例子:

data = {'user':'admin','num':[1,2,3]}

data2 = data.copy()

data3 = deepcopy(data)1

2

3

查看结果

data['user']='root'

data['num'].remove(1)

print(data)

print(data2)

print(data3)1

2

3

4

5

输出结果为:

{'user': 'root', 'num': [2, 3]}

{'user': 'admin', 'num': [2, 3]}

{'user': 'admin', 'num': [1, 2, 3]}1

2

3

总结:

如果源拷贝对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象

如果源拷贝对象不止一级目录的话,源对一级目录的子目录做任何改动,都会影响浅拷贝,但不影响深拷贝

28.循环 迭代 遍历 递归

循环 指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。

[ 循环则技能对应集合,列表,数组等,也能对执行代码进行操作。

迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。

[迭代只能对应集合,列表,数组等。不能对执行代码进行迭代。]

遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。

[遍历同迭代一样,也不能对执行代码进行遍历。]

递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。

[线性递归和尾递归。]

29.异常处理机制

捕捉异常可以使用try/except 语句。

try/except 语句用来检测try语句块中的错误,从而让except 语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需要try 捕获里捕获它。

使用以下语法:

try …except …else 的语法

try:

#运行别的代码

except :

#如果在try部份引发了’name’异常

except ,:

#如果引发了’name’异常,获得附加的数据

else:

#如果没有异常发生

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句

30.class类中(self)指的是什么

self 指的是类本身。

31.range 函数的使用,其中有那两个参数

函数语法:

range(start, stop[,step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

python考试怎么过_面试问题整理之python测试相关推荐

  1. python排序算法实现_排序算法整理(Python实现)

    1. 冒泡排序 冒泡排序(Bubble Sort)是稳定排序,其基本思想是:遍历待排序列,依次两两比较,如果顺序错误就交换.如果从头开始遍历,把较大的交换到后面,结果就是越大的数据越往下沉,所以也可以 ...

  2. python excel操作库_超全整理|Python 操作 Excel 库常用操作详解

    来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openpyxl 操作Excel,其实在Python中还有其他可以直接操作 Excel 文件的库 ...

  3. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  4. python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...

    科技行业正以前所未有的速度增长.我们看到市场上发布了新的软件产品. 无论您是初学者还是经验丰富的Python开发人员,机会都是非常多的,如何把握?. 唯一的要求:必须在Python编程面试中使用您的技 ...

  5. python考试怎么过_想准备2021年三月份的Python考试,应该怎么准备呢?

    Python作为编程语言,在近几年大火起来,18年便被列为计算机二级考试科目之一,在计算机二级考试上.很多同学应该会选择python程序设计进行报考,下面分享一下如何准备考试. 具体内容 一.试题类型 ...

  6. python大佬实战教学_阿里大佬整理Python428集+java356集视频教程+100套实战项目福利...

    要说目前最火热的行业一定是java.Python,不仅薪资高,而且企业对这些人才的需求量也很大,所以工作自然是很好找了(前提是你有一定的技术),经过很多人亲身体验,在自学Java.Python三个月后 ...

  7. python处理金融数据_量化投资:用Python实现金融数据的获取与整理

    小编说:数据可以说是量化投资的根本,一切投资策略都是建立在数据基础上的.本文以优矿网为例,带领大家用Python实现金融数据的获取与整理. 本文选自<Python与量化投资:从基础到实战> ...

  8. 全国计算机python考试难吗_计算机二级python考试难吗

    全国计算机等级考试于2018年9月新增计算机二级Python程序设计考试科目,从上次考试情况来看,考试难度不大,特别是考试内容也比较少,所以通过率高达54%(其它科目在30%以下). 那么二级Pyth ...

  9. 有没有可以刷python题的软件_你想要的Python面试都在这里了【315+道题】

    第一部分 Python基础篇(80题) 1.为什么学习Python? 1.python是脚本语言,作为程序员至少应该掌握一本通用脚本语言,因为脚本语言与编译语言的开发测试过程不同,可以极大的提高编程效 ...

最新文章

  1. MySQL的正则表达式
  2. Cocos Creator快速开通联网服务教程
  3. 【OpenCV归纳】4 关于HighGUI
  4. InstallShield Premier版本和Professional版本的功能差异
  5. (转载)关于My97 datepicker与Angular ng-model绑定问题解决。
  6. 计算机网络技术俄罗斯方块,《The Tetris Effect》:这本新书讲述了俄罗斯方块的传奇故事...
  7. 教你正确把加减乘除运用在MySQL里面
  8. Kotlin Weekly 中文周报 —— 16
  9. 天使、A轮、B轮……公司不同阶段估值方法大全
  10. Python拓展dict类
  11. 苹果系统简易音乐播放器
  12. 2023南京信息工程大学计算机考研信息汇总
  13. Python_解一元二次方程
  14. 算法工程师也有35岁危机吗?
  15. Thread优先级之优先级别
  16. tableau 字段去重_Tableau
  17. 计算机如何把文件设为隐藏,电脑的文件、文件夹如何设置隐藏和显示?
  18. iOS开发之Documentation.build/Script-BC552B3A15.sh:
  19. 设计一个算法求象棋这些棋子各代表哪些数字
  20. day01【Object类、常用API】-笔记

热门文章

  1. 【计算机动画】人体动画概览
  2. wkhtmltopdf-实现Html转pdf
  3. 如何让百度网盘的分享死链复活?
  4. 字典 dictionary
  5. 解读FAT32分区文件系统
  6. 服务器端渲染和客户端渲染有什么区别?
  7. 中级前端面试秘籍(含详细答案,15k级别)
  8. No.03 色散补偿 FSM算法 频域离散采样算法 MATLAB Python 代码实现
  9. 好用工具第4期:全能播放器PotPlayer
  10. 常用Word页码设置大全