Python面试中一些常见的问题及其答案

  • 时间:
  • 浏览:1

Q 19. Python 中的标识符长度能有多长?

10

2

31

4

52

6

74

8

95

10

116

Q 23. Python 中的闭包是有哪些?

当另另有几个 嵌套函数在其内部内部结构区域引用了另另有几个 值时,该嵌套函数后后另另有几个 闭包。其意义后还可以 记录这些值。

1>>> def A(x):

2 def B():

3 print(x)

4 return B

5>>> A(7)()

结果:

同样地,执行取幂运算。ab 会返回 a 的 b 次方。

Q 2:深拷贝和浅拷贝之间的区别是有哪些?

Q 7. 有哪些是 Flask?

1>>> myname='Ayushi'

2>>> Myname

3Traceback (most recent call last):

4File "", line 1, in

运行结果:

首先大家来看解封装:

1Hi, Monkey

1>>> import copy

2>>> help(copy.copy)

运行结果为:

1>>> import os

2

3>>> os.chdir('C:\Users\lifei\Desktop')

4>>> with open('Today.txt') as today:

5 count=0

6 for i in today.read():

7 if i.isupper():

8 count+=1

9print(count)

运行结果:

1‘ Ayushi’

否则 Python 并这么私有变量的概念,所以约定速成以下划线为开头来声明另另有几个 变量为私有。所以否则你你会让变量私有,就不须使用下划线开头。

Python 中的 GIL(全局解释器锁)确保一次执行单个程序运行池。另另有几个 程序运行池保存 GIL 并在将其传递给下个程序运行池完后 执行一点操作,这会让大家产生并行运行的错觉。但实际上,后后程序运行池在 CPU 上轮流运行。当然,所有的传递会增加程序运行池池执行的内存压力。

1[on true] if [expression] else [on false]

另外,使用 isupper() 和 islower() 辦法 检查字符串是是否是全为大写或小写。

1>>> b=copy.copy(a)

1>>> 'hi'<'Hi'

2False

另外,后还可以 释放 C 库保留的内存每段。

1>>> 'me' in 'disappointment'

2True

3

4>>> 'us' not in 'disappointment'

5True

Q 29. 解释一下 Python 中的身份运算符

1>>> 13%7

26

3>>> 3.5%1.5

40.5

Q 24. 在 Python 带有有几个种运算符?解释一下算数运算符。

Q 9. 解释 Python 中的 help() 和 dir() 函数

1//运算符执行地板除法(向下取整除),它会返回整除结果的整数每段。

2

3>>> 7//2

43

这里整除总要返回 3.5。

1[3, 4, 8, 0, 5, 7, 6, 2, 1]

通过成员运算符‘in’和‘not in’,大家都要能确认另另有几个 值是是否是另另另有几个 值的成员。

字典是 C++ 和 Java 等编程语言中所这么的东西,它具有键值对。

● 可解释

● 具有动态价值形式

● 面向对象

● 简明简单

● 开源

● 具有强大的社区支持

当然,实际上 Python 的优点远不止这么,都要能阅读该文档,删剪了解:

1>>> 3.0<=3

2True

Q 13. 请解释使用 args 和 *kwargs 的含义

区分大小写

关系运算符用于比较另另有几个 值。

运行结果:

运行结果为:

1>>> 10 is '10'

2False

3

4>>> True is not False

5True

Q 30. 讲讲 Python 中的位运算符

Q 24. 解释一下 Python 中的 //,% 和 运算符 **

Python 带有 3 个逻辑运算符:and,or,not。

在 Python 中,标识符能是是否是任意长度。此外,大家在命名标识符时还都要遵守以下规则:

结果:

10

2

31

4

52

最后,continue 话语能让大家跳到下个循环。

https://data-flair.training/blogs/python-inheritance/

1>>> {1,3,2,2}=={1,2,3}

2True

不等于号(!=),否则符号两边的值不相等,则返回 True。

1‘AYUSHI’

大家使用 lower() 辦法 。

1TypeError: ‘tuple’ object does not support item assignment

当大家别问我向函数传递有几个参数时,比如大家向传递另另有几个 列表或元组,大家就使用 * args。

13

在 Python 中,大家有 7 种运算符:算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

Help() 函数是另另有几个 内置函数,用于查看函数或模块用途的删剪说明:

Q 11. 有哪些是猴子补丁?

2a7a2c624e587d753020405d5eb1565c0f068b02

Q 3. 列表和元组之间的区别是?

https://data-flair.training/blogs/python-tutorial/

1>>> 'AyuShi'.upper()

1>>> True>=False

2True

等于号(==),否则符号两边的值相等,则返回 True。

1>>> roots={25:5,16:4,9:3,4:2,1:1}

2>>> type(roots)

3

4>>> roots[9]

运行结果为:

1>>> False and True

2False

3

4>>> 7<7 or True

5True

6

7>>> not 2==2

8False

Q 28. 解释一下 Python 中的成员运算符

1>>> for i in range(7):

2 if i==3: break

3print(i)

结果:

Q 17. 解释 Python 中的 join() 和 split() 函数

Flask 是 Python 编写的一款轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask 使用 BSD 授权。其中另另有几个 环境依赖是 Werkzeug 和 jinja2,这原应它不都要依赖内部内部结构库。正因这么,大家将其称为轻量级框架。

1>>> ~2

2-3

1>>> 3|2

23

3

Python 另另有几个多 私有堆空间来保存所有的对象和数据价值形式。作为开发者,大家无法访问它,是解释器在管理它。否则有了核心 API 后,大家都要能访问一点工具。Python 内存管理器控制内存分配。

https://data-flair.training/blogs/python-closure/

答:二者的主要区别是列表是可变的,而元组是不可变的。举个例子,如下所示:

Q 25. 解释一下 Python 中的关系运算符

Q 12. Python 中的字典是有哪些?

1>>> 7/8

20.875

3>>> 1/1

41.0

结果:

下面是使用它的辦法 :

1>>> oct(8)

2‘0o10’

1>>> a=7

2>>> a+=1

3>>> a

48

5

6>>> a-=1

7>>> a

87

9

10>>> a*=2

11>>> a

1214

13

14>>> a/=2

15>>> a

167.0

17

18>>> a**=2

19>>> a

2049

21

22>>> a//=3

23>>> a

2416.0

25

26>>> a%=4

27>>> a

230.0

Q 27. 解释一下 Python 中的逻辑运算符

1>>> from random import shuffle

2>>> shuffle(mylist)

3>>> mylist

运行结果:

1>>> 7-8

2-1

现在大家将有有哪些值解封放到 变量 x,y,z 中:

1>>> 'AyuShi'.isupper()

2False

3

4>>> 'AYUSHI'.isupper()

5True

6

7>>> 'ayushi'.islower()

8True

9

10>>> '@yu$hi'.islower()

11True

12

13>>> '@YU$HI'.isupper()

14True

这么,像 @和 $ 另另另有几个 的字符既满足大写也满足小写。

Q 6. 解释一下 Python 中的继承

1>>> mylist=[0,1,2,3,4,5,6,7,8]

https://data-flair.training/blogs/python-tuples-vs-lists/

1>>> 3^2

21

关键字非要作为标识符,Python 中共有如下关键字:

一共有这些辦法 :

1>>> 'The Corpse Bride'.istitle()

2True

Q 22. Python 中的 pass 话语是有哪些?

1>>> mylist[-3]

作为一门编程入门语言,Python 主要有以下特点和优点:

Q 4. 解释一下 Python 中的三元运算子

1>>> mylist[-6:-1]

17

1>>> 0b110 & 0b010

22

1>>> 2**10

21024

最后,% 执行取模运算,返回除法的余数。

Split() 能让大家用指定字符分割字符串。

运行结果:

1>>> 7+8

215

大家有 7 个算术运算符,能让大家对数值进行算术运算:

1>>> mylist=[1,3,3]

2>>> mylist[1]=2

3>>> mytuple=(1,3,3)

4>>> mytuple[1]=2

5Traceback (most recent call last):

6File "", line 1, in

7mytuple[1]=2

会再次出现以下报错:

与(&),按位与运算符:参与运算的另另有几个 值, 否则另另有几个 相应位都为 1, 则该位的结果为 1, 否则为 0

通过身份运算符‘is’和‘is not’,大家都要能确认另另有几个 值是是否是相同。

在运行期间动态修改另另有几个 类或模块。

1>>> def func(*args):

2 for i in args:

3 print(i)

4>>> func(3,2,1,4,7)

运行结果为:

1[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

答案是 No。循环引用其它对象或引用自全局命名空间的对象的模块,在 Python 退出时不须删剪释放。

1{25: 5, 16: 4, 9: 3, 4: 2, 1: 1}

Q 16. 如保以就地操作辦法 打乱另另有几个 列表的元素?

1>>> True!=0.1

2True

3>>> False!=0.1

4True

Q 26. 解释一下 Python 中的赋值运算符

这在 Python 面试中是个重要的面试大问题。

大家将所有的算术运算符和赋值符号中放去一起去展示:

它要能用于列表中的切片:

Q 18. Python 区分大小写吗?

1[‘__annotations__’, ‘__call__’, ‘__class__’, ‘__closure__’, ‘__code__’, ‘__defaults__’, ‘__delattr__’, ‘__dict__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__get__’, ‘__getattribute__’, ‘__globals__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__init_subclass__’, ‘__kwdefaults__’, ‘__le__’, ‘__lt__’, ‘__module__’, ‘__name__’, ‘__ne__’, ‘__new__’, ‘__qualname__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’]

Q 34. 如保声明多个变量并赋值?

1>>> 'AyuShi'.lower()

Q 1:Python 有有哪些特点和优点?

1>>> 4>>2

21

更多关于运算符的知识,参考这里:

https://data-flair.training/blogs/python-operators/Q 31. 在 Python 中如保使用多进制数字?

非要以下划线否则 A-Z/a-z 中的字母开头

否则表达式为 True,就执行 [on true] 中的话语。否则,就执行 [on false] 中的话语。

更多关于闭包的知识,请参看这里:

Q 21. 如保将字符串转换为小写?

大家先创建另另另有几个 另另有几个 列表:

都要能看到,该字符串既有前导字符,总要后缀字符,调用 Istrip() 去除了前导空格。否则大家想去除后缀空格,就用 rstrip() 辦法 。

当另另有几个 类继承自另另另有几个 类,它就被称为另另有几个 子类 / 派生类,继承自父类 / 基类 / 超类。它会继承 / 获取所有类成员(属性和辦法 )。

1>>> class A:

2 def func(self):

3 print("Hi")

4>>> def monkey(self):

5print "Hi, monkey"

6>>> m.A.func = monkey

7>>> a = m.A()

8>>> a.func()

运行结果为:

该运算符按二进制位对值进行操作。

1Hi

1>>> 7*8

256

1‘Ayushi ‘

结果:

1>>> 1<<2

24

16

Q 5. 在 Python 中如保实现程序运行池池?

从 Q 21 到 Q 35 是为有 Python 经验者准备的进阶版 Python 面试题。

答:深拷贝后后将另另有几个 对象拷贝到另另另有几个 对象中,这原应否则你对另另有几个 对象的拷贝做出改变时,不用影响原对象。在 Python 中,大家使用函数 deepcopy() 执行深拷贝,导入模块 copy,如下所示:

1>>> 1.1+2.2>3.3

2True

不像 C++,大家在 Python 中这么?:,但大家有这些:

1>>> mytuple=3,4,5

2>>> mytuple

3(3, 4, 5)

这将 3,4,5 封放到 元组 mytuple 中。

1>>> x,y,z=mytuple

2>>> x+y+z

得到结果 12.

1>>> a,b,c=3,4,5 #This assigns 3, 4, and 5 to a, b, and c respectively

2>>> a=b=c=3 #This assigns 3 to a, b, and c

Q 35. 元组的解封装是有哪些?

结果:

关于列表和元组的更多内容,都要能查看这里:

1Myname

2NameError: name ‘Myname’ is not defined

都要能看到,这里再次出现了 NameError,所以 Python 是区分大小写的。

1>>> roots={x**2:x for x in range(5,0,-1)}

2>>> roots

运行结果:

其余每段都要能使用 A-Z/a-z/0-9

以下实例展示了 dir 的使用辦法 :

这也是另另有几个 在 Python 面试中常问的大问题。

1>>> dir(copy.copy)

1>>> for i in range(7):

2 if i==3: continue

3print(i)

结果:

为了达到这些目的,大家从 random 模块中导入 shuffle() 函数。

字符串中的前导空格后后再次出现在字符串中第另另有几个 非空格字符前的空格。大家使用辦法 Istrip() 都要能将它从字符串中移除。

1>>> ' Ayushi '.rstrip()

另另有几个 程序运行池后后另另有几个 轻量级程序运行池池,程序运行池池能让大家一次执行多个程序运行池。大家都知道,Python 是程序运行池池语言,其内置有程序运行池池工具包。

否则能区分像 myname 和 Myname 另另另有几个 的标识符,这么它后后区分大小写的。也却话语它很在乎大写和小写。大家都要能用 Python 试一试:

1>>> import copy

2>>> b=copy.deepcopy(a)

670a75841e346627c29b0c4df5234ee5cba66262

而浅拷贝则是将另另有几个 对象的引用拷贝到另另另有几个 对象上,所以否则大家在拷贝中改动,会影响到原对象。大家使用函数 function() 执行浅拷贝,使用如下所示:

1‘ayushi’

13

2

32

4

51

6

74

8

97

在大家别问我该传递有几个关键字参数时,使用 **kwargs 来派发关键字参数。

1Join()能让大家将指定字符加进至字符串中。

2

3>>> ','.join('12345')

运行结果:

1>>> a,b=2,3

2>>> min=a if a3>>> min

运行结果:

1Help on function copy in module copy:

2

3

4copy(x)

5

6Shallow copy operation on arbitrary Python objects.

7

8See the module’s doc string for more info.

Dir() 函数也是 Python 内置函数,dir() 函数不带参数时,返回当前范围内的变量、辦法 和定义的类型列表;带参数时,返回参数的属性、辦法 列表。

1>>> int(0b1010)

210

1>>> hex(16)

2‘0x10’

3

4>>> hex(15)

5‘0xf’

Q 32. 如保获取字典中所有键的列表?

使用 keys() 获取字典中的所有键

1>>> mydict={'a':1,'b':2,'c':3,'e':5}

2>>> mydict.keys()

3dict_keys(['a', 'b', 'c', 'e'])

Q 33. 为什么在么在不建议以下划线作为标识符的开头

1‘1,2,3,4,5’

12

2>>> print("Hi") if a运行结果:

使用 upper() 辦法 都要能将其转换为大写。

在用 Python 写代码时,有时否则还没想好函数为什么在么在写,只写了函数声明,但为了保证语法正确,都要输入一点东西,在这些状况下,大家会使用 pass 话语。

● 单继承:另另有几个 类继承自单个基类

● 多继承:另另有几个 类继承自多个基类

● 多级继承:另另有几个 类继承自单个基类,后者则继承自另另另有几个 基类

● 分层继承:多个类继承自单个基类

● 混合继承:这些或多种类型继承的混合

更多关于继承的内容,参见:

Flask 会话使用签名 cookie 让用户查看和修改会话内容。它会记录从另另有几个 请求到另另另有几个 请求的信息。不过,要想修改会话,用户都要有密钥 Flask.secret_key。

1[3, 4, 5, 6, 7]

1 >>> def func(*args):

2 pass

3>>>

同样,break 话语能让大家再次出现循环。

另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。

字典是不可变的,大家要能用另另有几个 推导式来创建它。

1>>> def func(**kwargs):

2 for i in kwargs:

3 print(i,kwargs[i])

4>>> func(a=1,b=2,c=7)

运行结果为:

1a.1

2

3b.2

4

5c.7

Q 14. 请写另另有几个 Python 逻辑,计算另另有几个 文件中的大写字母数量

Q 20. 为什么在么在移除另另有几个 字符串中的前导空格?

1>>> bin(0xf)

2‘0b1111’

Q 15. 有哪些是负索引?

Q 10. 当退出 Python 时,是是否是释放删剪内存?

1>>> ' Ayushi '.lstrip()

结语

以上后后 Python 面试中一点常见的大问题及其答案。

126

从 Q4 到 Q20 总要针对新手的 Python 面试基础试题,不过有经验的人也都要能看看有有哪些大问题,复习一下基础概念。

Istitle() 能别问大家另另有几个 字符串是是否是为标题格式。

负索引和正索引不同,它是从右边现在开使检索。

Q 8. 在 Python 中是如保管理内存的?

1>>> '1,2,3,4,5'.split(',')

结果:

继承能让大家重新使用代码,要能更容易的创建和维护应用。Python 支持如下种类的继承: