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

posted @ 2018-02-13 19:12  风火林山  阅读(2178)  评论(0编辑  收藏  举报