-
【Python面试题】-iterable(可迭代对象)和iterator(迭代器)的区别?
可迭代对象(list,set,dict)可以重复迭代,只能使用for循环;迭代器只能迭代一次,可以通过next或for进行迭代。 ps:可迭代对象不能使用next函数调用但是可以使用for调用,而迭代器可以使用next,也可以使用for进行调用。 ps:他俩最大的区别就是,可迭代对象可以无限迭代,而迭代器只能迭代一次(是个数据流的形式!)。 判断迭代器 : isinstance([], Iterator)。 判断可迭代对象: isinstance([], Iterable)。 【返回…
-
【Python面试题】简单谈下GIL:
Global Interpreter Lock(全局解释器锁) Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制,Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。在多线程环境中,Python 虚拟机按以下方式执行: 设置G…
-
【Python面试题】Python是怎样管理内存的?
Python的内存管理是由私有heap空间管理的。所有的Python对象和数据结构都在一个私有heap中。程序员没有访问该heap的权限,只有解释器才能对它进行操作。为Python的heap空间分配内存是由Python的内存管理模块进行的,其核心API会提供一些访问该模块的方法供程序员使用。Python有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序使用。 【返回原文】
-
【Python面试题】怎样获取字典中所有键的列表?
【Python面试题答案】: 使用 keys() 获取字典中的所有键 >>> mydict={‘a’:1,’b’:2,’c’:3,’e’:5}>>> mydict.keys()dict_keys([‘a’, ‘b’, ‘c’, ‘e’]) 【返回早报】
-
【Python面试题】在Python中如何使用多进制数字?
【Python面试题答案】: 我们在Python中,除十进制外还可以使用二进制、八进制和十六进制。二进制数字由0和1组成,我们使用 0b 或 0B 前缀表示二进制数。 >>> int(0b1010)10 使用bin()函数将一个数字转换为它的二进制形式。 >>> bin(0xf)‘0b1111’ 八进制数由数字 0-7 组成,用前缀 0o 或 0O 表示 8 进制数。 >>> oct(8)‘0o10’ 十六进数由数字 0-15 组成,用前缀 0x 或者 0X 表示 16 进制数。 >>> hex…
-
【Python面试题】请解释一下Python中的位运算符?
【Python面试题答案】: 该运算符按二进制位对值进行操作。 与(&),按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 >>> 0b110 & 0b0102 或(|),按位或运算符:只要对应的⼆个⼆进位有⼀个为1时,结果位就为1。 >>> 3|23 异或(^),按位异或运算符:当两对应的⼆进位相异时,结果为1 >>> 3^21 取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为…
-
【Python开发面试题】列表和元组之间的区别是?
答:二者的主要区别是列表是可变的,而元组是不可变的。举个例子,如下所示: mylist=[1,3,3] mylist[1]=2 mytuple=(1,3,3) mytuple[1]=2 Traceback (most recent call last): File “”, line 1, in mytuple[1]=2 复制代码 【点击返回】
-
【Python面试题】解释一下Python中的身份运算符
【答案 】: 通过身份运算符‘is’和‘is not’,我们可以确认两个值是否相同。 >>> 10 is ’10’False >>> True is not FalseTrue 【返回早报】
-
【Python面试题】解释一下Python中的成员运算符?
【答案】: 通过成员运算符‘in’和‘not in’,我们可以确认一个值是否是另一个值的成员。 >>> ‘me’ in ‘disappointment’True>>> ‘us’ not in ‘disappointment’True 【返回早报】
-
【Python面试题】请解释一下Python中的逻辑运算符?
【答案】: Python中有3个逻辑运算符: and, or, not。 >>> False and TrueFalse>>> 7<7 or TrueTrue>>> not 2==2False 【返回早报】