python面试题(11-22)
11、python递归的最大层数?
一般计算机默认的最大递归深度在1000左右,python最大递归深度一般在4000左右,跟计算 机的性能有关系,这个数不是一个定数,可通过一下方式测试
import sys
print(sys.getrecursionlimit())
print(sys.setrecursionlimit(10000))
12,如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ?
如何实现[‘1’,’2’,’3’]变成[1,2,3] ?
#“1,2,3” 变成 [‘1’,’2’,’3’]
a ='1,2,3'.split(',')
#[‘1’,’2’,’3’]变成[1,2,3]
a=['1','2','3']
b = [int(i) for i in a]
13,比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别?
a = [1,2,3]就是一个普通列表
b = [(1),(2),(3) ]
b = [(1,),(2,),(3,) ] 包含一个个元组的列表
14,如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?
a = [i*i for i in range(1,11)]
15,一行代码实现删除列表中重复的值 ?
>>>list=[11,55,11,84,55,96,65,96]
>>> print(sorted(set(list),key=list.index))
[11, 55, 84, 96, 65]
16、ascii、unicode、utf-8、gbk 区别?
-
ASCII (American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,共定义了128个字符 。
-
Unicode:为了统一世界各国语言的不同,统一用2个bytes代表一个字符,特点:速度快,但浪费空间
-
utd8:为了改变Unicode的这种缺点,规定一个英文字符用一个字节表示,一个中文字符用三个字节表示,特点:节省空间,速度慢
-
gbk:是中文的字符编码,用2个字节代表一个字符
17、列举 Python2和Python3的区别?
-
默认编码:2–>ascii,3–>utf-8
-
print的区别:python2中print是一个语句,不论想输出什么,直接放到print关键字后面即可。python3里,print()是一个函数,像其他函数一样,print()需要你将要输出的东西作为参数传给它。
-
xrange()
python2里,有两种方法获得一定范围内的数字:range(),返回一个列表,还有xrange(),返回一个迭代器。 python3 里,range()返回迭代器,xrange()不再存在。
-
字符串:python2中有两种字符串类型:Unicode字符串和非Unicode字符串。Python3中只有一种类型:Unicode字符串
18,如何在函数中设置一个全局变量 ?
在函数内部,通过global声明,使在函数内部中设置一个全局变量,这个全局变量可以在任何函数中调用
url='http://www.baidu.com'
def tt():
global url
url = url+'#aa'
def aa():
if __name__=="__main__":
tt()
print(url)
aa()
19,常用字符串格式化哪几种?
% 占位符,%s 字符串,%d或%i 数字
20、文件操作时:xreadlines和readlines的区别?
-
readlines返回一个list
-
xreadlines方法返回一个生成器
21,如何生成随机数?
import random
print(random.randint(0,9))