4.简述解释型和编译型编程语言?
编译型语言在程序执行之前,有一个单独的编译过程,把程序编译成为机器语言的文件,以后执行这个程序的时候,就不用再进行翻译了。
解释性语言的程序不需要编译,解释性语言在运行程序的时候才翻译
5.Python解释器种类以及特点?
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器。
Cpython、IPython、PyPy、Jython、IronPython
6.位和字节的关系?
8位(bit) = 1字节(Byte)
7、b、B、KB、MB、GB 的关系?
1KB = 1024B 1B = 8 bit
8、请至少列举5个 PEP8 规范(越多越好)
(1)缩紧。四个空格的缩紧,不要混合使用tap和空格
(2)右括号前不要加空格
(3)函数默认参数使用的赋值符左右省略空格
(4)操作符左右各加一个空格
(5)长数可以使用_来分割,123_456_789
https://www.douban.com/note/134971609/
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地址 a = 456 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.求结果
二进制转换成十进制: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)
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'
17.用一行代码实现数值交换:
a = 1
b = 2
a = (a += b) == -1 ? 0 : (b = a - b) == -1 ? 0 : (a -= b);
18.Python3和Python2中 int 和 long的区别?
Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long
19.xrange和range的区别?
xrange() 函数用法与 range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
在 Python 3 中xrange() 函数都不再存在。
20.文件操作时:xreadlines和readlines的区别?
readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存。