老男孩Python全栈7期练习题(面试真题模拟)
一、选择题(32分)
1、python不支持的数据类型有
A、char B、int C、float D、list
2.
x = “foo” y = 2 print(x+y) A.foo
3、关于字符串以下说法错误的选项是
4、以下不能创建一个字典的语句是
A、dic1 = {} B、dic2 = {123:345} C、dic3 = {[1,2,3]:'uestc'} D、dic3 = {(1,2,3):'uestc'} A、字符应该视为长度为1的字符串 B、字符串以\\0标志字符串的终止
C、既能够用单引号,也能够用双引号创建字符串 D、在三引号字符串中能够包括换行回车等特殊字符
exception is thrown
5.Kvps = {‘1’:1,’2’:2} theCopy = kvps kvps[‘1’] = 5
sum = kvps[‘1’] + theCopy[‘1’] Print sum
6、以下何者是不合法的布尔表达式: A.x in range(6) =a >5 and 4==f D(x-6)>5
7、以下表达式的值为True的是 A.5+4j>2-3j >2==2 >5 and 4==f D.(x-6)>5
8、已知x=43,ch=‘A’,y = 1,那么表达式(x>=y and ch<‘b’ A、0 B、1 C、犯错
D、True
9、以下表达式中返回 为True的是: A、3>2>2
B、’abc’>’xyz’ C、0x56 > 56
D、(3,2)>(‘a’,’b’)
的值是 and y)
10、以下Python语句正确的事(多项选择)
11.若k为整形,下述while循环执行的次数为: k=1000 while k>1: print k k=k/2
12、以下表达正确的选项是:
13、关于python中的复数,以下说法错误的选项是
A、表示复数的语法是real+image j B、实部和虚部都是浮点数
C、虚部必需后缀j且j不区分大小写 D、方式conjugate返答复数的共轭复数 A、continue语句的作用是终止整个循环的执行 B、只能在循环体内利用break语句
C、在循环体内利用break语句或continue语句的作用相同 D、从多层循环嵌套中退出时,只能利用goto语句 A、min = x if x < y else y B、max = x > y ? x : y C、if(x>y) print(x) D、while True:pass
14、下面的语句哪个会无穷循环下去: A、for a in range(10):
(10)
B、while 1<10:
(10)
C、while True:
break
D、a = [3,-1,','] for i in a[:]:
if not a: break
15、下面的代码,哪些会输出1,2,3三个数字(多项选择,选错不得分): A 、for i in range(3):
B、aList = [0,1,2] for i in aList: C、i = 1 while i < 3:
print(i+1) print(i)
print(i) i+=1
D、for i in range(3):
16、Python如何概念一个函数:
A、class ( arg1, arg2,… argN) B、function (arg1,arg2,…argN) C、def (arg1,arg2,…argN)D、def ( arg1, arg2,… argN) print(i+1)二、填空题(10分)
1、以下函数需要在其中饮用一个全局变量k,请填写语句: def fun()
2、L=range(100)
1) 取第一到第三个元素_______ 2) 取倒数第二个元素_______ 3) 取后十个元素_______ 4) 把L复制给L1用_______
3、判定dict有无某个key用的方式是_______
_________________ k = k+1
4、获取list的元素个数,和向末尾追加元素的方式别离是______ _______
5.以下的代码的输出将是什么: _______ def extendList(val,list=[]):
(val) return list
list1 = extendList(10) list2 = extendList(123,[]) list3 = extendList(‘a’) print “list1 = %s”%list1 print “list2 = %s”%list2 print “list3 = %s”%list3
6.下面程序的输出结果是:_________
三、简答题(20分)
1、如何判定一个变量是不是字符串
x=True y=False z=False if x or y and x:
print \"yes\"
else:
print \"no\"
2、is 和 == 的区别
3、Python里面如何实现tuple和list的转换。
4、list和tuple有什么不同
5、如何取得列表list的交集与差集。
6、Python中概念函数时如何书写可变参数和默许参数?
7、*args和**kwargs在什么情形下会利用到?请给出利用**kwargs的事例
8、请描述unicode,utf-8,gbk等编码之间的关系?
9、如何利用python删除一个文件
10、def func(a,b,c=0,*args,**kwargs):
pass
*args,**kwargs的作用是什么?
四、写代码(38分)
1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分) 2、请写出一段Python代码实现删除一个list里面的重复元素。(6分)
3、利用Python/C 上机解决以下题目(13分) 1)
斐波那契数列1,2,3,5,8,13,21.....依照如此的规律,编程求出400万之内最大的斐波那契数,并求出他是第几个斐波那契数。
def fib(n): a,b,m = 1,1,0
while a < n: a,b = a+b,a m+=1
print('第', m, '个', '值为',b)
fib(4000000) 2)
dicta = {\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"f\":\"hello\ dictb = {\"b\":3,\"d\":5,\"e\":7,\"m\":9,\"k\":\"world\
要求写一段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保留,若是是字符串就拼接,如上例如取得结果为:
dictc = {\"a\":1,\"b\":5,\"c\":3,\"d\":9,\"e\":7,\"m\":9,\"f\":\"hello\
5、什么是装饰器?写一个装饰器,能够打印输出方式执行时长的信息(8分)
6、请写出log的实现(要紧功能是打印函数名)(8分) @log def now():
print ‘2017-08-31’
>>>now() 输出: call now(): 2017-08-31
附加题(20分)
有一个数据结构如下所示,请编写一个函数从该结构数据中返回由指定的字段和对应的值组成的字典。若是指定字段不存在,那么跳过该字段。(10分) data:{\"time\":\"2016-08-05T13:13:05\
\"some_id\":\"ID1234\ \"grp1\":{
\"fld1\":1,
\"fld2\":2},
\"xxx2\":{
\"fld3\":0,
\"fld5\":},
\"fld6\":11, \"fld7\":7, \"fld46\":8}
fields:由\"|\"连接的以\"fld\"开头的字符串,如:fld2|fld3|fld7|fld19
def select(data,fields):
# TODO:implementation return result
def select(data,fields):
fields_lst = (‘|’) for key in data:
if type(data[key]) == dict:
pass
return result