我自己整理牛客网的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<name>(<type> arg1,<type> arg2,...<type> argN)
B. def<name>(<type> arg1,<type> arg2,...<type> argN)
C. function<name>(arg1,arg2,...argN)
D. def<name>(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
- 在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
网友评论