python面试题汇总_python 面试题整理

1

请教一下列表与元组的区别是什么

.

分别在什么情况下使用

列表中的项目应该包括在方括号中,你可以添加、删除或是搜索列表中的项目。由于你可以增加或

删除项目,所以列表是可变的数据类型,即这种类型是可以被改变的。

元组和列表十分类似,但是元组是不可变的

.

也就是说你不能修改元组。元组通过圆括号中用逗号分

割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,

即被使用的元组的值不会改变。

2

字典

键值对的集合

(map)

字典是以大括号“

{}

”包围的数据集合。

与列表区别:字典是无序的,在字典中通过键来访问成员。字典是可变的,可以包含任何其他类型。

3 Python

是如何进行内存管理的?

Python

提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。

Python

中所有小于

256

个字节的对象都使用

pymalloc

实现的分配器,而大的对象则使用系统的

malloc

另外

Python

对象,如整数,浮点数和

List

,都有其独立的私有内存池,对象间不共享他们的内存池。

也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。

Python

中,许多时候申请的内存都是小块的内存,这些小块内存在申请后,很快又会被释放,由

于这些内存的申请并不是为了创建对象,所以并没有对象一级的内存池机制。这就意味着

Python

在运

行期间会大量地执行

malloc

free

的操作,频繁地在用户态和核心态之间进行切换,这将严重影响

Python

的执行效率。为了加速

Python

的执行效率,

Python

引入了一个内存池机制,用于管理对小块内

存的申请和释放。这也就是之前提到的

Pymalloc

机制。

4

如何在一个

function

里面设置一个全局的变量?

解决方法是在

function

的开始插入一个

global

声明

5 Python

pass

语句的作用是什么?

pass

语句什么也不做,一般作为占位符或者创建占位程序,

pass

语句不会执行任何操作,比如:

while False:

pass

pass

通常用来创建一个最简单的类:

class MyEmptyClass:

pass

pass

在软件设计阶段也经常用来作为

TODO

,提醒实现相应的实现,比如:

def initlog(*args):

pass #please implement this

6 Python

里面如何拷贝一个对象?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值