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 = ?

defbian(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、python递归的最大层数?

deffun(n):print(n)

n+= 1fun(n)print(fun(1))

998层,之后就报错了,允许最大数字在3925- 3929之间浮动 ,和计算机的性能有关系。

12、求结果:

v1 = 1 or 3 1v2= 1 and 3 3v3= 0 and 2 and 10

v4= 0 and 2 or 1 1v5= 0 and 2 or 1 or 4 1v6= 0 or Flase and 1 Flase

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

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

Unicode:万国码,能表示多种符号,在PY2中可以指定4字节或2字节表示一个字符,PY3中默认4字节

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

Gbk:中文编码。

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

机器码:是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常难懂,比较难编写, 一般人接触不到。

字节码:是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

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

一行书中写,代码非常精炼,执行效率更高,可以代替if...else这样的流行语句。

16、列举Python2和Python3的区别?

print:

在PY2中,被视为一个语句,而不是一个函数

在PY3中,被显示为一个函数。

整数的除法:

PY2中,整数是强类型的。比如5/2结果是2

PY3中,5/2 结果是2.5Unicode:

PY2中前缀加u代表Unicode。

PY3中默认使用Unicode,如果想让3兼容2,可以通过字符串的前面保留"u’来实现。

后续发展:

PY3和PY2之间最大的区别不是在语法上,而是事实上PY2在2020年后将失去支持,PY3将继续开发更多的功能,和修复更多的错误。

17、用一行代码实现数值交换:

a = 1b= 2a,b= b,a

18、Python3和Python2中int和long的区别?

long整数类型,被PY3废弃,统一使用int。

19、xrange和range的区别?

PY2中的range返回的是列表,xrange返回的是生成器

PY3中的range返回的是迭代器(测试是class)

20、文件操作时:xreadlines和readlines的区别?

返回类型不同。xreadlines返回的是生成器,readlines返回的是列表

21、列举布尔值为False的长简值?

"" , 0, false, [], (), {}

22、字符串、列表、元祖、字典、每个常用的5个方法?

字符串:

.upper()#首字母大写

.lower() #所有字母大写

.strip() #去除首尾空格

.replace() #替换

.split() #分割

列表:

.append()#在列表尾部追加一个值

.inset() #指定位置插入数据

.reverse() #反转

.remove() #删除制定元素

.pop() #删除指定元素

元祖:

.index()#查看元素下标是多少

.len() #计算元祖元素个数

.min() #返回元祖中元素最小值

.max() #返回元祖元素最大值

.tuple() #将列表转换为元祖

字典:

.clear()#删除字典所有项

.get() #获取字典中指定键的值

.keys() #以列表的形式返回字典中所有键

.values() #以列表的形式返回字典中所有值

.items() #以列表的形式返回字典中的键值

23、lambda表达式格式以及应用场景?

lambda x:x + 2应用场景:函数式编程,闭包

24、pass的作用?

1、空格局。2、保证格式完整性。3、语义完整

25、*arg和**kwarg作用?

*arg:接受额外的位置参数**kwarg:接受额外的关键字参数

26、is和==的区别?

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

27、简述Python的深浅拷贝以及应用场景?

浅拷贝:拷贝最外层容器

深拷贝:拷贝的最外层容器,还拷贝容器中的元素

对于不可变元素,使用浅拷贝

28、Python垃圾回收机制?

1、回收计数引用为0的对象,释放其占用空间2、循环垃圾回收器。释放循环引用对象

29、Python的可变类型和不可变类型?

可变类型:list、dict、set、可变集合

不可变类型:string、int、float、tuple、不可变集合

30、求结果v = dict.fromkeys(['k1','k2'],[])v["k1’].append(666)print(v)v["k1’] = 777print(v)

1 、{'k1': [666], 'k2': [666]}2、{'k1': 777, 'k2': [666]}3、因为value是可变对象,并且使用append来添加元素,所有value的对象引用不变。

31、求结果

defnum():return[lambda x:i*x for i in range(4)]print([m(2) for m innum()])#[6,6,6,6]#将return返回生成器表达式就返回[0,2,4,6]

32、列举常见的内置函数?

len、bin、hex、oct、dir、max、min、type

33、filter、map、reduce的作用?

filter:清晰函数

map:对函数里的每个内容,执行方法

reduce:累加函数

配合lambda函数来进行使用

34、一行代码实现9*9乘法表

print(' '.join([' '.join([f'{y} * {x} = {x * y}' for y in range(1, x+1)]) for x in range(1,10)]))

35、如何安装第三方模块?以及用过哪些第三方模块?

使用官方推荐的setuptools的包管理工具,easy --install和pip。

requests模块

36、至少列举8个常用模块都有哪些?

1、sys:用于提供对解释器相关的访问以及维护,并有很强的交互功能2、time: 时间模块3、os:用于提供操作系统模块4、ashlib:用于加密相关的操作5、random:生成随机变量6、pickle:用于python特有的类和pthon的数据类型间进行转换7、datetime:date和time的结合体8、re:正则表达式模块

37、re的match和search区别?

match与search函数功能一样,match匹配字符串开始的第一个位置,search是在字符串全局匹配第一个符合规则的。

38、什么是正则的贪婪匹配?

尽可能的去匹配符合规则的字符,非贪婪模式后面加?(尽可能少的匹配)

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

1、a = [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]2、b = 是生成器表达式(generator)

40、求结果:a. 1 or 2 b. 1 and 2 c. 1 < (2 == 2) d. 1< 2 == 2

a = 1 、 b = 2 、c = false 、d = True

41、def func(a,b=[])这种写法有什么坑?

因为b是可变类型,每次调用这个方法b不会每次都初始化[].而是调用相同的[].

42、如何实现”1,2,3“变成['1', '2', '3']?

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

43、如何实现['1', '2' , '3']变成[1, 2,, 3]?

a = ["1", "2", "3"]

b= [int(x) for x ina]print(list(map(lambda x: int(x), a)))

44、比较:a = [1, 2, 3]和b = [(1), (2), (3)] 以及b2 = [(1,), (2,), (3,)]的区别?

1、a和b相同,因为只有一个元素的元祖需要加,来表示(1,)2、b1表示的列表元素为整数,b2表示的是列表元素是元祖

45、如何用一行代码生成[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]?

print([x ** 2 for x in range(1, 11)])

46、一行代码实现删除列表中重复的值?

使用list(set())

47、如何在函数中设置一个全部变量?

Global变量名

48、logging模块的作用?以及应用场景?

提供了通用的日志系统。

应用场景,做项目的时候打印日志,或者是异常

49、请用代码简答实现stack

#Stack():创建一个新的空栈

classStack():def __init__(self):

self.items=[]#判断栈是否为空

defis_empty(self):return self.items ==[]#添加一个新的元素,item到栈顶

defpush(self, item):

self.items.append(item)#弹出栈顶元素

defpop(self):returnself.items.pop()#返回栈顶元素

defpeek(self):return self.items[len(self.items) - 1]#返回栈的元素个数

defsize(self):return len(self.items)

50、常用字符串格式化有哪几种?

%、format、f

51、简述生成器、迭代器、可迭代对象、以及应用场景?

1、生成器是迭代器的一种,需要时yiled关键字2、迭代器实现了__next__方法3、可迭代对象实现了__iter__,__next__方法4、可迭代对象调用__iter__方法后,返回一个迭代器。

52、用Python实现一个二分查找的函数。

defsearch(datset, find_num):if len(datset) > 1:

mid= int(len(datset) / 2)if datset[mid] ==find_num:print(datset[mid])elif datset[mid] >find_num:returnsearch(datset[0: mid], find_num)else:return search(datset[mid + 1:], find_num)else:if datset[0] ==find_num:print(datset[0])else:print("不好意思,没有这个数字:", find_num)

search(data,20)

View Code

53、谈谈你对闭包的理解?

内层函数引用了外层函数的变量,然后返回内层函数的情况,成为闭包。

54、os和sys模块的作用?

os:系统有关。

sys:解释器有关。

55、如何生成一个随机数?

使用random模块里的random.random。

56、如何使用python删除一个文件?

os.remove(path),删除文件path。如果path是一个目录,抛出osError错误。如果要删除目录,请使用rmdir()方法。

57、谈谈你对面向对象的理解?

体现在三个方面: 封装、继承、多态

继承有两种方式:1、将同一类的方法封装到类中2、将数据封装到对象中

继承:子类拥有父类的所有方法和属性,

好处:抽取重复代码,减少代码冗余。

坏处:耦合性太强。

多态:对于不同的类可以有同名的方法,同名的方法应用到不同的类可以有不同行为。

58、Python面向对象中的继承有什么特点?

1、在继承中基类的构造(__init__()方法)不会被调用,它需要在其派生类的构造亲自调用,有别于C#.

2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量,区别于在类中调用普通函数不需要带上self参数。3、Python总是首先查找对应类型的方法,如果它不能再派生类中找到对应的方法,它才开始到基类中逐个查找。4、Python里边可以继承多个类,C#、 Java不可以多继承(如果继承多个类,继承顺序为从左到右)

59、面向对象深度优先和广度优先是什么?

深度优先:不全部保留节点,占用空间小,有回溯操作(即有入栈/出栈操作),运行速度慢。

广度优先:保留全部节点,占用空间大;无回溯操作(既无入栈、出栈操作)、运行速度快。

60、面向对象中的super的作用?

super()函数是用于调用父类的一个方法。用来解决多重继承问题的。

61、是否使用过functools中的函数?其作用是什么?

用过。

作用:把一个函数的某些参数给固定住,返回一个新的函数,调用这个新函数会更简单。

61、列举面向对象中带双下划线的特殊方法,如:__new__ 、 __init__

__new__:可以调用其它类的构造方法或者直接返回别的对象来作为本类的实例。__init__: 负责类的实例化__call__:对象后边加括号,出发执行__str__:print打印一个对象时。__doc__:类的注释,该属性是无法继承的。__getattr__:在使用调用属性(方式、属性)不存在的时候触发__setattr__:添加/修改属性会触发它的执行__dellattr__:删除属性的时候会触发__delete__:采用del删除属性时,触发

View Code

62、如何判断是函数还是方法?

函数:是封装了一些独立的功能。可以直接调用,python内置了许多函数,同时可以自建函数来使用。

方法:和函数类似,同样封装了独立的功能,但是方法是需要通过对象来调用的,表示针对这个对象要做的操作。

63、静态方法和类方法区别?

1、静态方法:相当于普通函数2、类方法:通过类调用,第一个参数默认是类本身。

64、列举面向对象中的特殊成员以及应用场景

__new__: 可以调用其他类的构造方法或者直接返回别的对象来作为本类的实例。__init__: 负责类的实例化__call__对象后边加括号,触发执行__str__: print打印一个对象时。__doc__: 类的注释,该属性是无法继承的。__getattr__: 在使用调用属性(方式,属性)不存在的时候触发__setattr__ : 添加/修改属性会触发它的执行__dellattr__: 删除属性的时候会触发__delete__ : 采用del删除属性时,触发

View Code

65、1、2、3、4、5能组成多少个互不相同且无重复的三位数

5*4*3

66、什么是反射?以及应用场景?

利用字符串获取对象的属性或方法。

web框架的CBV配置文件获取类

67、metaclass作用?以及应用场景?

metaclass是类的产生类,而并非继承类,

通过它来控制类的产生,以及类实例化的操作。Wtform中实例化自定义form类是执行了其元类的__call__方法。

68、用尽量多的方法实现单例模式。

#使用类

classSingleton(object):

_instance=Nonedef __new__(cls, *args, **kwargs):if notcls._instance:

cls._instance= super(Singleton, cls).__new__(cls, *args, **kwargs)returncls._instance#使用装饰器

from functools importwrapsdefsingleton(cls):

instances={}

@wraps(cls)def getinstance(*args, **kwargs):if cls not ininstances:

instances[cls]= cls(*args, **kwargs)returninstances[cls]returngetinstance

@singletonclassMyClass(object):

a= 1

#使用元类

classSingleton(type):

_instances={}def __call__(cls, *args, **kwargs):if cls not incls._instances:

cls._instances[cls]= super(Singleton, cls).__call__(*args, **kwargs)returncls._instances[cls]class MyClass(metaclass=Singleton)pass

View Code

69、装饰器的写法以及应用场景

from functools importwrapsdefouter(func):

@wraps(func)def inner(*args, **kwargs):"""我就是装饰器里的函数"""func(*args, **kwargs)returninner#应用场景:Django的csrf,缓存,Falsk中的许多装饰器

70、异常处理写法以及如何主动跑出异常(应用场景)

try:"""执行语句"""

except: #异常类型

"""触发异常后执行的语句"""

finally:"""有没有异常都执行的语句"""

#主动抛出异常

raise #异常类实例

71、什么是面向对象的mro

方法查找的顺序

72、isinstance作用以及应用场景?

判断一个对象是不是某个类的实例

73、写代码实现:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example: Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]、

nums = [2, 7, 11, 15]classSolution(object):deftwoSum(self, nums, target):""":param nums: list[int]

:param target: int

:return: List[int]"""

if len(nums) <= 1:returnFalse

buff_dict={}for i inrange(len(nums)):if nums[i] inbuff_dict:return[buff_dict[nums[i]], i]else:

buff_dict[target- nums[i]] = i

View Code

74、json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?

#字符串、字典、列表、数字、布尔值、None、、自定义class类

importjsonimportdatetimeclassMyEncoder(json.JSONEncoder):def default(self, o): #o是数据类型

ifisinstance(o, datetime.datetime)return o.strftime('%Y-%m-%d')else:return super(MyEncoder, self).default(o)

75、什么是断言?应用场景?

断言条件为真时,代码继续执行,负责抛出异常,这个异常通常不会去捕获他,我们设置一个断言目的就是要求必须实现某个条件。

76、有用过with statement吗?它的好处是什么?

文件操作时使用过,with语句下代码完成后调用求值语句返回对象的__exit__方法,可以实现一些操作,比如关闭文件。

77、使用代码实现查看列举目录下的所有文件。

#递归方法

defprint_directory_contents(sPath):importosfor sChild inos.listdir(sPath):

sChildPath=os.path.join(sPath,sChild)ifos.path.isdir(sChildPath):

print_directory_contents(sChildPath)else:print(sChildPath)

78、简述yield和yield from关键字。

yield:生成器函数关键字yield from:相当于 for i in obj : yield i

python第三方库有哪些常用的、请列举15个-python基础面试常见题相关推荐

  1. python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...

    第一部分 Python基础篇(80题) 1.为什么学习Python? 1.python是脚本语言,作为程序员至少应该掌握一本通用脚本语言,因为脚本语言与编译语言的开发测试过程不同,可以极大的提高编程效 ...

  2. python第三方库有哪些常用的、请列举15个-不吹不擂,你想要的Python面试都在这里了【315+道题】...

    来源:Python编程 ID:LovePython 各位大佬暂时先来315道题尝尝吧,后面有时间再继续补充. 有缘人如果看到这些题,不妨留言一下答案,来证明下你到底有多水,哈哈哈哈哈哈哈哈哈哈哈 第一 ...

  3. python第三方库安装最常用的方式是_Python安装第三方库常用方法

    在学习Python过程中,经常要用到很多第三方库,面对各种不同情况,Python为我们提供了多种安装方法: 一.pip安装: pip安装相信大家都不陌生了,在安装第三方库中,pip是最常使用的一种方法 ...

  4. python第三方库中函数调用_Python学习笔记(2)——Python的函数、模块、包和库...

    初识Python,对于没有接触过编程的我,恐怕只能听懂什么是函数,这里介绍一下几个概念,并给出Python在调用方面的独特之处. 函数 理解为数学上的函数就可以了.下载安装完python后,并不是所有 ...

  5. python第三方库有哪些常用的、请列举15个-阿里巴巴Python开发工程师面试题

    作为Python工程师,进入大公司是开启职业新起点的关键,今天达内python培训学院的学员特别分享了其在阿里巴巴面试Python工程师的题目和经历,希望对广大Python工程师的求职者有一个帮助. ...

  6. python基础笔试面试题_python基础面试常见题

    Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一些相关专业的书籍. 3.Pyt ...

  7. python库_计算机二级教程 Python语言程序设计,第10章python第三方库概览

    第十章学习知识导图 考点主要是: 1) 第三方库的获取和安装 2) 脚本程序转变为可执行程序的第三方库 : PyInstaller库(必选) 3) 第三方库: jieba库(必选).wordcloud ...

  8. 用于安装python第三方库的工具是_Python第三方库安装

    Python有一个全球社区:在这里,我们可以搜索Python第三方库的任何话题.PyPI的全称是Python包指数指Python包的指数.它是由PSF (Python软件基金会)和显示全球Python ...

  9. 自动安装第三方库python,python第三方库自动安装脚本

    #python第三方库自动安装脚本,需要在cmd中运行此脚本 #BatchInstall.py import os libs = {"numpy","matplotlib ...

最新文章

  1. 数据库SQL基础select语法
  2. 如何做好仓库管理的工作专业知识
  3. java实用教程——组件及事件处理——处理事件
  4. 不断尝试,终能到达彼岸
  5. Kotlin学习笔记 第四章 解构声明 集合集合的扩展方法 Range 异常 Throw关键字
  6. 程序员高工资是靠汗水和勤奋换来的,想拿高工资入门学习很重要
  7. php 防止不登录进入后台,php后台如何避免用户直接进入方法实例
  8. 【报告分享】2020年618直播带货数据报告.pdf(附下载链接)
  9. 【笔记】android 系统常用user id列表
  10. JavaScript DOM高级程序设计 5动态修改样式和层叠样式表1(源代码)--我要坚持到底!...
  11. 行列式计算程序(基于Python)
  12. C# 25. 获取windows串口号对应的串口(设备)名称
  13. 2021,前端月薪30K已是白菜价?
  14. 基于python的投票系统论文_在线投票系统 毕业论文设计
  15. 2021年G3锅炉水处理考试及G3锅炉水处理最新解析
  16. SLURM 安装与配置
  17. Deep Embedded Clustering with Asymmetric Residual Autoencoder
  18. Unicode字符是什么?
  19. scala 数组集合(思维导图,初级必备)
  20. 从零使用qemu模拟器搭建arm运行环境

热门文章

  1. malloc 初始化_关于内存分配malloc、calloc、realloc的区别
  2. ​Python 3 新特性:类型注解——类似注释吧,反正解释器又不做校验
  3. scikit-learn系列之如何存储和导入机器学习模型
  4. redis 集群 及 管理初步
  5. unicode字符串 转 中文
  6. MySQL Transaction--快照读和当前读
  7. 自建MySQL5.6数据库查询优化
  8. Python 集合的定义以及常用运算及函数
  9. Java经典编程题50道之十七
  10. Groovy - 基本特性