python最全的面试题集

1、为什么学习Python?

人生苦短,我学python…哈哈,自己想吧!!!

2、通过什么途径学习的Python?

官网、网上视频、学习网站

3、Python和Java、PHP、C、C#、C++等其他语言的对比?

1、python代码,简介,明确,优雅,简单易懂
2、开发效率高
3、可扩展性强

4、简述解释型和编译型编程语言?

解释型:在执行程序时,计算机才一条一条的将代码解释成机器语言给计算机来执行。
编译型:是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样计算机运行该程序时可以直接以机器语言来运行此程序,运行速度很快。

5、Python解释器种类以及特点?

Cpython,IPython,Jpython,pypy,Ironpython
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:

CPython:当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。
IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。
PyPy:PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代进行动态编译,所以可以显著提高Python代码的执行速度。
Jython:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器, 可以直接把Python代码编译成.Net的字节码。

在Python的解释器中,使用广泛的是CPython,对于Python的编译,除了可以采用以上解释器
进行编译外,技术高超的开发者还可以按照自己的需求自行编写Python解释器来执行Python代码,十分的方便!

6、位和字节的关系?

一个字节=8位

7、b、B、KB、MB、GB 的关系?

1B(字节) = 8b(位)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB

8、请至少列举5个 PEP8 规范

1、缩进:每一级4个缩进。连续跨行应该使用圆括号或大括号或者使用悬挂缩进。
2、代码长度约束
一行列数:PEP8 规定最大为79列,如果拼接url很容易超限
一个函数:不可以超过30行;直观来讲就是完整显示一个函数一个屏幕就够了,不需要上下拖动
一个类:不要超过200行代码,不要超过10个方法
一个模块:不要超过500行
3、import
不要在一句import中引用多个库
4、命名规范
5、注释
总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释!

9、通过代码实现如下转换:

答案: 二进制转换成十进制:v = “0b1111011”
print(int(‘0b1111011’,2))
十进制转换成二进制:v = 18
print(bin(18))
八进制转换成十进制:v = “011”
print(int(‘011’,8))
十进制转换成八进制:v = 30
print(oct(30))
十六进制转换成十进制:v = “0x12”
print(int(‘0x12’,16))
十进制转换成十六进制:v = 87
print(hex(87))

10、请编写一个函数实现将IP地址转换成一个整数。

如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
答案:
def func(x):
lis = x.strip().split(’.’)
li = [bin(int(i)) for i in lis]
li2 = [i.replace(‘0b’,(10-len(i))*‘0’) for i in li]
return int(’’.join(li2),2)
ret = func(‘10.3.9.12’)
print(ret)

11、python递归的最大层数?

一般计算机默认的最大递归深度在1000左右,python最大递归深度一般在4000左右,跟计算机的性能有关系,这个数不是一个定数,可通过一下方式测试
import sys
print(sys.getrecursionlimit())`
print(sys.setrecursionlimit(10000))

12、求结果:

v1 = 1 or 3 -------------->1
v2 = 1 and 3-------------->3
v3 = 0 and 2 and 1-------->0
v4 = 0 and 2 or 1--------->1
v5 = 0 and 2 or 1 or 4---->1
v6 = 0 or Flase and 1----->False

13、ascii、unicode、utf-8、gbk 区别?

ASCII码:使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号 ,只有256个字符。
Unicode:能够表示全世界所有的字节
GBK:是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。
UTF-8:是一种针对Unicode的可变长度字符编码,又称万国码。

14、字节码和机器码的区别?

机器码:是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂
字节码:是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

15、三元运算规则以及应用场景?

规则:为真时的结果 if 判定条件 else 为假时的结果
```应用场景:在赋值变量的时候,可以直接加判断,然后赋值`

16、列举 Python2和Python3的区别?

1、默认编码:2–>ascii,3–>utf-8
2、print的区别:python2中print是一个语句,不论想输出什么,直接放到print关键字后面即可。python3里,print()是一个函数,
像其他函数一样,print()需要你将要输出的东西作为参数传给它。
3、input的区别:
python2有两个全局函数,用在命令行请求用户输入。第一个叫input(),它等待用户输入一个python表达式(然后返回结果)。
第二个叫做raw_input(),用户输入什么他就返回什么。python3 通过input替代了他们。
4、字符串:python2中有两种字符串类型:Unicode字符串和非Unicode字符串。Python3中只有一种类型:Unicode字符串。
5、xrange()
python2里,有两种方法获得一定范围内的数字:range(),返回一个列表,还有xrange(),返回一个迭代器。
python3 里,range()返回迭代器,xrange()不再存在。
更多不同:https://www.cnblogs.com/weikunzz/p/6857971.html

17、用一行代码实现数值交换:

a = 1
b = 2

答案:a = 1
b = 2
a,b = b,a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值