11、python递归的最大层数?
一般计算机默认的最大递归深度在1000左右,python最大递归深度一般在4000左右,跟计算 机的性能有关系,这个数不是一个定数,可通过一下方式测试
import sys print(sys.getrecursionlimit()) print(sys.setrecursionlimit(10000))
#“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]
a = [1,2,3]就是一个普通列表
b = [(1),(2),(3) ]
b = [(1,),(2,),(3,) ] 包含一个个元组的列表
a = [i*i for i in range(1,11)]
>>>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字符串
在函数内部,通过global声明,使在函数内部中设置一个全局变量,这个全局变量可以在任何函数中调用
url='http://www.baidu.com' def tt(): global url url = url+'#aa' def aa(): if __name__=="__main__": tt() print(url) aa()
% 占位符,%s 字符串,%d或%i 数字
20、文件操作时:xreadlines和readlines的区别?
readlines返回一个list
xreadlines方法返回一个生成器
import random print(random.randint(0,9))