Python面试题
快大四了,断断续续看了python也有半年了,尝试着做一下武sir发的Python面试题【315+】
https://www.cnblogs.com/wupeiqi/p/9078770.html
通过网络上的一些答案跟自己的学习及实际情况进行回答,如果有错误请多指正。
第一部分 Python基础
- 为什么学习python? 我的大学专业是偏数据挖掘的,偶然间接触到python,python在科学计算上的功能十分强大,并且爬虫的实现相对容易,近年来十分火热,很多行业对python的需求再增多。
- 通过什么途径学习的Python? 主要是自学,书如《Python核心编程第3版》,看了网络课程,去GitHub看项目。
- Python和Java、PHP、C、C#、C++等其他语言的对比?
- 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候再编译,效率较低;编译型语言在执行前已经编译过一次,运行时不再编译,因此效率较高。
- Python解释器种类以及特点? https://www.cnblogs.com/jackzz/p/9080288.html
- 位和字节的关系? 位是计算机内部数据存储的最小单位,1字节相当于8位。
- b、B、KB、MB、GB 的关系? 1GB=1024MB,1MB=1024KB,1KB=1024B,1B=8b。
- 请至少列举5个 PEP8 规范(越多越好)。 缩进4个空格,import库分开,不要将多个语言写在同一行,操作符左右各加一个空格,命名尽量短小。http://blog.sae.sina.com.cn/archives/4781
- 通过代码实现如下转换:
二进制转换成十进制:v = “0b1111011” print(int("0b1111011",2)) 123
十进制转换成二进制:v = 18 print(bin(18)) 0b10010
八进制转换成十进制:v = “011” print(int("011",8)) 9
十进制转换成八进制:v = 30 print(oct(30)) 0o36
十六进制转换成十进制:v = “0x12” print(int("0x12",16)) 18
十进制转换成十六进制:v = 87 print(hex(87)) 0x57 -
请编写一个函数实现将IP地址转换成一个整数。
如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
View CodeIP = "10.3.9.12" def addr2dec(addr): "将点分十进制IP地址转换成十进制整数" items = [int(x) for x in addr.split(".")] # return sum([items[i] << [24, 16, 8, 0][i] for i in range(4)]) return sum([items[i]*2**[24,16,8,0][i] for i in range(4)]) print(addr2dec(IP)) 167971084
- python递归的最大层数? python默认应该是900多,但是可以通过
import sys sys.setrecursionlimit(100000)
更改
- 求结果:
v1 = 1 or 3 1,or是从左到右计算表达式,返回第一个为真的值。
v2 = 1 and 3 3,and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。
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 Flase - ascii、unicode、utf-8、gbk 区别?
- 字节码和机器码的区别?
- 三元运算规则以及应用场景?
- 列举 Python2和Python3的区别? 对于中文字符的支持。
- 用一行代码实现数值交换:
a = 1
b = 2a, b = b, a
-
Python3和Python2中 int 和 long的区别?
- xrange和range的区别? 在python2中,xrange返回一个生成器对象,range返回一个列表对象。python合并了,range返回生成器对象。
- 文件操作时:xreadlines和readlines的区别?同上一题
- 列举布尔值为False的常见值?
- 字符串、列表、元组、字典每个常用的5个方法?
- lambda表达式格式以及应用场景?
lambda 多个参数:表达式
节约命名空间,或是简单的函数,在def无法使用的地方,快速速写函数。
- pass的作用?保持结构完整性,占位。
- *arg和**kwarg作用? 传入一个或多个参数。
- is和==的区别?is比较的是d(地址),==比较的是value(值),数值型和字符串型的情况下,is和==结果一样,俩个对象值一样时都为True,其他如tuple,list,dict或set型时,is和==不一样。
- 简述Python的深浅拷贝以及应用场景?
- Python垃圾回收机制?


浙公网安备 33010602011771号