Python面试题
1.简述列举了解的编程语言及语言间的区别?
C、C++、GO属于静态编译型语言,一次性翻译,优点:运行速度快,缺点:翻译时间长
Python、JavaScript、PHP属于动态解释型语言,一行一行翻译,优点:开发效率高,缺点:运行速度慢
JAVA、C# 属于混合型语言
2.列举python2和python3 的区别?
python2 | python3 |
---|---|
源码不统一,源码重复 | 源码统一,源码不重复 |
range打印的是一个列表 | range打印的是本身 |
默认使用ASCII码 | 默认使用UTF-8 |
input获取的值是原类型 | input获取的值是字符串类型 |
分为整型和长整型 | 全部是整型 |
print不需要括号 | print需要括号 |
没有线程池 | 有线程池 |
除法返回小数 | 除法返回整数 |
python2.2之前是经典类,之后出现是新式类 | 不管继不继承只有新式类 |
3.看代码写结果
知识点:
and:都为真取后边,都为假取前边,有假取假
or:都为真取前边,都为假取后边,有真取真
v1 = 1 or 2
v2 = 3 and 7 or 9 and 0
结果:1 7
4.比较以下值有什么不同?
v1 = [1,2,3]
v2 = [(1),(2),(3)]
v3 = [(1,),(2,),(3,)]
结果:v1输出的元素是字符串,v2输出的元素是集合,v3输出的元素是集合
5.用一行代码实现数值交换
a = 1
b = 2
结果:a,b = b,a
6.python中单引号、双引号、三引号?
单引号:字符串里可包含双引号,当然不能包含单引号
双引号:字符串里可以包含单引号,字符串都只能有一行
三引号:多行注释,包含多行字符串
7.is和==的区别?
is判断两边地址是否相同,==判断两边值是否相同
8.python里如何实现tuple和list的转化?
type()
9.如何实现字符串 name='老男孩'
的反转?
name[::-1]
10.两个set如何获取交集、并集、差集?
$ | -
11.那些情况下, y != x - (x-y)会成立?
12.Python中如何拷贝一个对象?
采用赋值、深拷贝或浅拷贝
13.简述 赋值、浅拷贝、深拷贝的区别?
赋值:将多个变量名指向同一个内存地址就是赋值
浅拷贝:只拷贝第一层元素的地址,只有修改拷贝的数据第一层的时候源数据不受影响,给可变数据类型进行添加的时候源数据受影响
深拷贝:不可变数据类型内存地址共用,可变数据类型新开辟空间,不管嵌套多深
14.pass的作用?
在代码中占一行,起占位作用
15.阅读代码写结果。
import copy
a = [1,2,4,5,['b','c']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('d')
print(b)
print(c)
print(a)
16.用Python实现9 * 9 乘法表。
result = 0
for i in range(1,10):
for j in range(1,i+1):
result = i * j
print("%d * %d = %d"%(i,j,result), end=' ')
print()
17.用Python显示一个斐波那契数列。
def fibonacci(n):
if a == 1:
return n
if a > 1:
return fibonacii(n-1) + fibonacii(n-2)
for i in range(1,20):
print(fibonacii(i),end=' ')
18.如何删除列表中重复的值?
使用set,集合具有去重作用
19.一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?
with open("elt_log.txt",r,encode='utf-8') as f:
f.read()
20.a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?
{"a":1,"b":2,"c":3,"d":4,"e":5}
21.lambda关键字的作用?
一行代码实现函数功能
22.*arg
和**kwarg
作用?
*arg :动态位置参数,接收列表
**kwarg:动态关键字参数,接收字典
23.如何在函数中设置一个全局变量 ?
在函数的内部,通过global声明一个全局变量