Python面试题

1.列出5个python标准库

OS:提供了不少与操作系统相关联的函数

sys:通常用于命令行参数

re:正则匹配

datetime:处理日期时间

math:数学运算

2.位和字节的关系

位(bit),数据存储是以"字节"(byte)为单位,数据传输是大多是以位为单位来传输的,一个位就代表一个0或1(即二进制),没8个位(bit)组成一个字节,是最小一级的信息单位,是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符

3.b、B、KB、MB、GB 的关系?

b是位,B是字节,KB是千比特,MB是兆比特,GB是吉比特

1B=8b,1KB=1024B ,1MB=1024KB, 1GB=1014MB

4.进制转换

bin()十进制转换为二进制

oct()十进制转换为8进制

hex()十进制转换为十六进制

其他进制向十进制转换时,需要用int(变量, 进制)

5、Python和Java、PHP、C、C#、C++等其他语言相比

python:轻量级,易学,开源,可移植性,支持面向对象

Java:优点:开源性,功能强大,哭多

缺点:编译速度比较慢,不完全

PHP:优点:性能很强,配合简单,稳定,容易部署

缺点:函数命名不规范,驼峰法和下划线,传参位置不一

C: 优点:能操作底层,能细粒度优化性能

缺点:面向过程, 3,运行时类型检查不可用,不提供命名空间功能

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

解释性语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是在执行的时候才能编译 ,这样的解释性语言每执行一次就要编译一次,效率比较低

编译型语言:执行代码之前,有一个专门的编译过程.把源高级程序编译成一个机器语言,只做一个翻译,运行时不需要解释,所以编译型语言执行效率比较高

7、python递归的最大层数?

def fun(n):
    print(n)
    n += 1
    fun(n)
    ptint(fun(n))

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

如 10.3.9.12 转换规则为:

10 00001010

3 00000011

9 00001001

12 00001100

再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

def fun(num):
a=str(bin(num))[2:]
if len(a) % 8:
	b=['0' for _ in range(8-len(a) % 8)]
	b.append(a)
	return ''.jion(b)
	a=fun(10)
	b=fun(10)
	c=fun(10)
	d=fun(10)
    q=int(a+b+c+d,2)
    print(q)

9.求结果

v1 = 1 or 3      1   #or 一真为真,返回第一个
v2 = 1 and 3     3   #or 全为真才是真,否则是假
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

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

ASCII:早期编码,只支持英文字母和一些符号

Unicode:万国码,能表示多种符号,在python2中可以指定四字节挥着2字节,跑一趟红中4个字节

utf-8 用最短的方式表示unicode,一个英文字符占一字节

gbk 中文编码

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

机器码:是电脑直接读取运行的机器指令,运行速度比较快.但是非常难懂,比较难编写

字节码:是一种中间状态码,是二进制,需要直译器转译后才能成为机器码

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

一行书写,代码简洁,执行效率高,可以替代if else这样的语句

13、pass的作用?

空格局 函数式编程 闭包

14、is和==的区别?

is判断的是IP地址 ==是数值

15、Python垃圾回收机制?

1.回收计数引用为0的对象,释放其占用空间

2.循环垃圾回收器,释放循环引用的对象

16、求结果

v = dict.fromkeys(['k1','k2'],[])
v[‘k1’].append(666)
print(v)
v[‘k1’] = 777
print(v) 

17、求结果

def num():
    return[lambda x:i*x for i in range(4)]
 print([m(2) for m in num()])

18求结果:a.[i % 2 for i in range(10)] b.(i % 2 for i in range(10))

a=[0,1,0,1,0,1,0,1,0,1]
b是生成器表达式

21如何实现”1,2,3“变成[‘1’, ‘2’, ‘3’]?

a = "1, 2, 3"
a.split(",")

22、如何实现[‘1’, ‘2’ , ‘3’]变成[1, 2, 3]?

a = ["1", "2", "3"]
b = [int(x) for x in a]
#或者
print(list(map(lambda x: int(x), a)))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值