Python试题

Python试题

最近看到好几个公众号上面都推荐了Python面试题315道,看了下题的内容,自己争取都掌握完。
题目有点多,一天做上10道左右,并且有的也没掌握还要边学边做。

从第五题开始做。
题目有问题的可以讨论下。

5-15题

5、Python解释器种类以及特点?
CPython:官方解释器,用C语言开发的,使用最广
IPython:交互式解释器
PyPy、Jython、
6、位和字节的关系
8位(bit) = 1字节(Byte)
7、b、B、KB、MB、GB 的关系?
1KB = 1024B 1B = 8 bit
8、请至少列举5个 PEP8 规范(越多越好)。
1、缩紧。四个空格的缩紧,不要混合使用tap和空格
2、右括号前不要加空格
3、函数左括号前不要加控股。Fun(n)
4、函数默认参数使用的赋值符左右省略空格
5、操作符左右各加一个空格
6、长数可以使用_来分割,123_456_789
9、通过代码实现如下转换:
二进制转换成十进制:v = “0b1111011”	# int(v,2)
十进制转换成二进制:v = 18 	# bin(v)
八进制转换成十进制:v = “011” 		# int(v, 8)
十进制转换成八进制:v = 30 	# oct(v)
十六进制转换成十进制:v = “0x12” 	# int(v, 16)
十进制转换成十六进制:v = 87		# hex(v)
10、请编写一个函数实现将IP地址转换成一个整数。
IP地址转换为整数
a = '10.3.9.12'
a = [int(x) for x in a.split('.')]
result = sum(a[i] << [24, 16, 8, 0][i] for i in range(4))
整数转换为IP地址
print('.'.join([str(a >> x & 0xff) for x in [24, 16, 8, 0]]))
11、python递归的最大层数?
import time
def fun(n):
	time.sleep(0.01)
	print(n)
	try:
		fun(n+1)
	except:
		print('error:',n)
fun(1)
写程序运行的是997应该加上本身是998层,尾递归优化。
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 False and 1	# False
and第一个为真返回第二个,第一个为假返回第一个
or第一个为真返回第一个,第一个为假返回第二个
1 and a or b 	模拟C语言中的三目运算
0 and a or b 	
13、ascii、unicode、utf-8、gbk 区别?
ASCII码大小是1个字节,范围是英文字母和数字和特殊符号,只有256个字符
Unicode大小是2个字节(生僻字4个字节),所有语言
UTF-8(1-6个字节,英文1个字节,中文3个字节,生僻字4-6个字节),所有语言(ascii可以看成是UTF-8的一部分)
GBK是编码汉字的,使用双字节编码
14、字节码和机器码的区别?
字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码(CPU可直接解读的数据)。
15、三元运算规则以及应用场景?
x = 1
b = 'a' if x == 1 else 'b'
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值