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的区别?

  1. 默认编码:2–>ascii,3–>utf-8

  2. print的区别:python2中print是一个语句,不论想输出什么,直接放到print关键字后面即可。python3里,print()是一个函数,像其他函数一样,print()需要你将要输出的东西作为参数传给它。

  3. xrange()

    python2里,有两种方法获得一定范围内的数字:range(),返回一个列表,还有xrange(),返回一个迭代器。 python3 里,range()返回迭代器,xrange()不再存在。

  4. 字符串: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))

 

上一篇:encode()、decode()字符编码问题


下一篇:CString 与 char互相转换,且不用Unicode