python 面试题(4)

我自己整理牛客网的python 面试题

1.请说明一下python的方法解析顺序

Python的方法解析优先级从高到低为:
1. 实例本身(instance) 
2. 类(class) 
3. super class, 继承关系越近, 越先定义, 优先级越高.

2.请说明一下python中is和==的区别

在python中,一切都是象。
而每一个对象有三部分组成:id(地址)、type(类型)、value(值)。
关键字is比较的是两个对象的id是否一致;==比较的是两个对象的value值。

3.请你简要介绍一下python的生成器是什么

生成器是一种可以动态提供数据的可迭代对象,现用现生成,不占用内存。
可以用next()获取里面的对象。当里面没有数据时,会报错。
可以通过yield或括号里写上for循环创建生成器。

4.请你讲讲python获取输入的方式,以及python如何打开文件

获取输入用input()接收 文件打开方式:
(1)file =open('文件名','打开方式')
最后读写完需要用file.close()关闭文件,且有可能会有异常抛出
(2)用with: with open('文件名',打开方式)as f:比较方便,
不需要再进行关闭文件和担心异常的问题,with都封装好了,
建议使用这种方式打开文件

5.以下Python数据类型中,不可以通过索引访问的是
  A.集合  B.元组  C.列表  D.字典

 答案: AD

6.关于python变量,下列说法正确的是
 A.变量不必事先声明但不区分大小写
 B.变量无须指定类型
 C.可以使用del关键字释放变量
 D.变量无须创建和赋值而直接使用
 `解释:对于python中的函数而已,括号中传递的都是形式参数.
 正确答案:A

7.关于python中的复数,下列说法错误的是?
 A.表示复数的语法是real+image j
 B.实部和虚部都是浮点数
 C.虚部必须后缀j且j不区分大小写
 D.方法conjugate返回复数的共轭复数
 正确答案:A

8.Python如何定义一个函数
 A. class(  arg1, arg2,... argN)
 B. def( arg1, arg2,... argN)
 C. function(arg1,arg2,...argN)
 D. def(arg1,arg2,...argN)
 正确答案:D

9.简述python是如何进行内存管理的

python采用"引用计数"和"垃圾回收"两种机制来管理内存。
引用计数通过记录对象被引用的次数来管理对象。
对对象的引用都会使得引用计数加1,移除对对象的引用,引用计数则会减1,
当引用计数减为0时,对象所占的内存就会被释放掉。
引用计数可以高效的管理对象的分配和释放,但是有一个缺点,就是无法释放引用循环的对象
这个时候就需要垃圾回收机制(garbage collection),来回收循环应用的对象。
垃圾回收机制会根据内存的分配和释放情况的而被调用

10.请问以下是python解释器的是
 A.JPython B.PyPy C.PyPi D.IPython

Python 的解释器 如今有多个语言的实现,包括:
CPython —— 官方版本的 C 语言实现
Jython —— 可以运行在 Java 平台
IronPython —— 可以运行在 .NET 和 Mono 平台
PyPy —— Python 实现的,支持 JIT 即时编译 而 
PyPI—— Python包索引(PyPI)是Python编程语言的软件存储库

正确答案:A B D

11.下列不能用于进行python程序调试的是
 A.assert B.PDB C.GDB D.print

正确答案:B

12.关于python2和python3的区别说法不正确的是
 A.python2的默认编码是ansii
 B.python3的默认编码是utf-8
 C.python2中range()的返回值是列表
 D.python3中range()的返回值是列表

13.关于python2和python3的区别说法不正确的是
 A.python2的默认编码是ansii
 B.python3的默认编码是utf-8
 C.python2中range()的返回值是列表
 D.python3中range()的返回值是列表

python2中的range()返回的是一个列表,而ptython3中的range()返回的是一个可迭代对象.
 正确答案:D

14.下列不属于Python自动化测试框架的是
 A.doctest
 B.nose
 C.unittest
 D.testing
 正确答案:D

15.Python不支持的数据类型有
 A.char
 B.int
 C.float
 D.list
Python 没有 char 或 byte 类型来保存单一字符或 8 比特整数。你可以使用长度为 1 的字符串表示字符或 8 比特整数
 正确答案:A

16.简单解释Python的字符串驻留机制。

字符串驻留定义:

在计算机科学中,字符串驻留一种仅保存一份相同且不可变字符串的方法。
不同的值被存放在字符串驻留池中。

字符串驻留限制:

仅包含下划线(_)、字母和数字的字符串会启用字符串驻留机制驻留。

因为解释器仅对看起来像python标识符的字符串使用intern()方法,
而python标识符正是由下划线、字母和数字组成。
python只会针对整数范围为[-5, 256]的整数启用字符串驻留

字符串驻留机制的优缺点如下: 
优点:能够提高一些字符串处理任务在时间和空间上的性能,
 
缺点:在创建或驻留字符串时的会花费更多的时间。

举例:string1 = “aabbcc”
           string2 =  “aabbcc”

使用id(string1)和id(string2)得到的内存地址是一样的。

17.下列代码输出为:
str = "Hello,Python";
suffix = "Python";
print (str.endswith(suffix,2));
 A.TRUE
 B.FALSE
 C.语法错误
 D.P

suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。

当地第二个参数不元组是,这个相当于(start)字符串中的开始位置,左边0开始。

 正确答案:A

  1. 在Python中,以下哪些写法可以自定义函数
     A.def
     B.function
     C.lambda
     D.method
    我对答案,c有怀疑 ,如果C可以,那D 应该也可以
     正确答案:A C

19.关于Python中的复数,下列说法错误的是()
 A.表是复数的语法是real + image j
 B.实部和虚部都是浮点数
 C.虚部必须后缀j,且必须小写
 D.方法conjugate返回复数的共轭复数
 正确答案:C

20.下面哪个是Python中的不变的数据结构?
 A.set
 B.list
 C.tuple
 D.dict
 正确答案:C

你可能感兴趣的:(python 面试题(4))