python笔试题22-41
22、[i%2 for i in range(10)]与(i%2 for i in range(10))输出结果分别是什么
答:[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]与一个生成器
23、python2与python3有哪些显著区别
答:
1、Python3中print为一个函数,必须用括号括起来;Python2中print为class
2、Python3中用input,Python2中用row_input,都输入为str
3、Python3中/表示真除,%表示取余,//结果取整;Python2中带上小数点/表示真除,%表示取余,//结果取整
4、python--range(),python2---xrange()
24、请描述Unicode,utf8,gbk等编码之间的关系
答:unicode是字符集,utf8,gbk是unicode的一种编码方式
25、请描述with用法,如果自己的类需要支持with语句,应该如何书写
答:用法 with 通过对象的__entry__()方法进入,无论执行过程中是否有异常,最后通过__exit__()结束
只要保证自己的类中有__entry__()与__exit__()方法即可使用with
26、python中如何判断一个对象是否可调用对象,那些对象是可调用对象,如何定义一个类,使其对象本身就是可调用对象?
答:判断可调用:1、callable(func)
2、hasattr(func, '__call__')
3、from types import FunctionType
isinstance(func, FunctionType)
定义可调用类:实现类中的__call__()方法
27、什么是装饰器,写一个装饰器可以打印输出方法执行时间信息
答:不改变原函数内部结构并能拓展其方法的嵌套函数
import time def outer(func): def inner(*args,**kwargs): start = time.time() ret = func(*args,**kwargs) print(time.time()-start) return ret return inner
28、什么是进程,线程,协程?说一说python对他们的支持?
答:进程:每个进程之间数据独立耗费内存空间比较大 multiprocessing模块实现
线程:每一个进程之间可以开多个线程,线程之间数据共享,占用内存较小 threading模块支持
协程:协程是通过单线程内I/O阻塞实现, yield 或 greenlet包实现
29:def f(a,b=[])这种写法中有什么陷阱
答:b
默认值是指向一个列表对象,程序开始的时候这个列表对象是空。而不是每次调用函数的时候新建一个空列表。
30、哪些情况下,y!=x-(x-y)会成立
答:x,y是两个不相等的非空集合
x = set([2,3])
y = set([2,4])
31、用python实现九九乘法表(两种方法)
for i in range(1,10): for j in range(1,i+1): print('%s * %s = %s' % (i,j,i*j),end=' ') print()
print('\n'.join([ ' '.join([ "%d*%d=%2s" %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
32、算法是指
A、数学的计算公式 B、程序设计语言的语句语序 C、对问题的精确描述 D、解决问题的精确步骤
33、type(1+2L*3.14)的结果是
A、<type 'int'> B、<type 'long'> C、<type 'float'> D、<type 'str'>
34、若k为整形,下述while循环执行次数为
k=1000
while k>1:
print k
k = k/2
A、9 B、10 C、11 D、100
35、以下谁是不合法的布尔表达式
A、x in range(6)B、3=aC、e>5 and 4==fD、(x-6)>5
36、下列表达式值为True的是
A、5+4j>2-3jB、3>2>2C、(3,2)<('a','b')比较ASCII码值D、'abc'>'xyz'
37、python不支持的数据类型
A、charB、intC、floatD、list
38、关于python中的复数,下列说法错误的是
A、表示复数的语法是real+image J B、实部和虚部都是浮点数
C、虚部必须后缀j,且必须是小写 D、方法conjugate返回复数的共轭复数
39、关于字符串,下列说法错误的是
A、字符应该视为长度为1的字符串 B、字符串以\0标志字符串结束
C、即可用单引号,也可用双引号创建字符串 D、在三引号字符串中可以包含换行回车等特殊字符
40、以下不能创建一个字典的语句是
A、dict1={} B、dict2={3:5} C、dict3={[1,2,3]:'uestc'} D、dict4={(1,2,3):'uestc'}
41、下列python语句正确的是
A、min=x if x<y else y B、max=x>y?x:y C、if(x>y) print x D、while True:pass