基础面试题整理

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)变量中,每行作为一个元素,但读取大文件会比较占内存。

猜你喜欢

转载自www.cnblogs.com/chengtianyu/p/9438944.html