python第一部分基础题1-80题

各位Python的第一部分1-80道基础题已经整理好了,希望面试的时候能用的上。

1、为什么学习Python? 

Python是目前市面上,我个人认为是最简洁、最优雅、最有前途、最全能的编程语言,没有之一。

2、通过什么途径学习的Python?

通过自学,包括网上查看一些视频,购买一些相关专业的书籍。

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

Python:轻量级、易学、自由/开放源码软件、可移植性、支持面向对象、丰富的库、规范的代码。
Java:优点:开源性,功能强大,库多
         缺点:编译速度 比较慢,不完全
PHP:优点:性能很强,配合简单,稳定,容易部署。
         缺点:函数命名不规范,驼峰法和下划线,传参位置不一。
C:    优点:能操纵底层,能细粒度优化性能。
         缺点:1、是面向过程的,2、运行时类型检查不可用,3、不提供命名空间功能,4、构        
         造函数和析构函数不可用。        
C#:  优点: 强大的.NET Framework托管代码集合类,较简单的语言特性。WEB应用程序    
         开发速度快。
         缺点:底层和高性能不合适,Windows平台以外支持有限。
C++: 优点:性能比较高,可进化型。
         缺点: 难学,门槛高

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

解释性语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是在执行的时候才能编译,这样解释型语言每执行一次就要编译一次,效率比较低。
编译型语言:执行代码之前,有一个专门的编译过程。把源高级程序编译成一个机器语言,只做一个翻译,运行时不需要编译,所以编译型语言执行效率比较高。

5、Python解释器种类以及特点? 

1、Cpython:最常用的官方版本,使用C语言实现。使用最为广泛。
2、Jpython:Python的Java实现,Jpython会将Python代码动态编译成Java字节码,然后在JVM上运行。
3、IronPython:Python的C#实现,IronPython将Python代码编译成C#字节码,然后再CLR运行(与Jpython类似)
4、PYPY(特殊): Python实现的Python,将Python的字节码再编译成机器码。

6、位和字节的关系?

1byte等于8bit

7、b、B、KB、MB、GB的关系?

1bytes(B) = 8bits(b)字节
1KB = 1024Bytes = 2的10次方Bytes
1MB = 1024KB = 2的20次方Bytes
1GB = 1024MB = 2的30次方Bytes

8、请至少列举5个PEP8规范(越多越好)

1、缩进,4个空格的缩进(编译器都可以完成此功能),不适用Tab,更不能混合使用Tab和空格
2、每行最大长度为79,换行可以使用反斜杠。最好使用圆括号,换行点再操作符的后边敲回车。
3、不要再一句import中多个库。比如import os,sys(不推荐)
4、模块命名尽量短小,使用全部小写的方式,可以使用下划线。
5、包命名尽量短小,使用全部小写的方式。不可以使用下划线
6、类的命名使用CapWords的方式,模块内部使用的类采用--CapWords的方式。
7、函数命名使用全部小写的方式,可以使用下划线。
8、异常命名使用CapWords+Error后缀的方式。
9、常量命名使用全部大写的方式,可以使用下划线。
10、类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。
11、类方法第一个参数必须是self,而静态方法第一个参数必须是cls。

9、通过代码实现如下转换:

二进制转换成十进制:v = “0b1111011”

 

先将V变成字符串,然后print(int("0b1111011",2)),结果是123

 

十进制转换为二进制:v = 18

Print(bin(v)):0b10010

八进制转换为十进制:v = "011"

Print(int(v,8)) 结果是:9

十进制转换成八进制:v = 30

Print(oct(v))结果是:0o36

十六进制转换成十进制:v = ”0x12“

v = "0x12"
s = str(v)
print(int(s,16))
#18

十进制转换成十六禁止:v = 87

v = 87
print(hex(v))
#0x57

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

 

10.3.9.12 转换规则为:

10   00001010

3    00000011

9    00001001

12   00001100

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

def bian(number):
    a = str(bin(number))[2:]
    if len(a) % 8:
        b = ['0' for _ in range(8 - len(a) % 8)]
        b.append(a)
        return ''.join(b)

a = bian(10)
b = bian(10)
c = bian(10)
d = bian(10)

d = int(a + b + c + d, 2)
print(d)
#168430090

11、

猜你喜欢

转载自www.cnblogs.com/chengdajing/p/9250400.html