-
【Python面试题】有没有一个工具可以帮助查找python的bug和进行静态的代码分析?
答:PyChecker是一个Python代码的静态分析工具,它可以帮助查找Python代码的bug, 会对代码的复杂度和格式提出警告 Pylint是另外一个工具可以进行codingstandard检查 【返回原文】
-
【Python面试题】书写一个函数,用于替换某个字符串或几个字符串
函数原型strreplace(str,oldString,newString) 例如: s = 'Hello World!'; afterReplace = strreplace(s,'World','Tom') 输出结果为:"Hello Tom!" 1 2 3 代码实现: def strreplace(str,oldString,newString): str_list = str.split(oldString) print(newString.join(str_list)) strrepa…
-
【Python面试题】在python中,list,tuple,dict,set有什么区别,主要应用于什么样的场景
解答list:列表(链表的数据结构)有序的项目, 通过索引进行查找,使用方括号”[]”;tuple:元组 元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;dict:字典 字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;set:集合 无序,元素只出现一次, 自动去重,使用”set([])”应用场景list, 简单的数据集合,可以使用索引;tuple, 把一些数据当做一个整体去使用,不能修改;dict,使用键值和值…
-
【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 复制代码 【点击返回】